SlideShare una empresa de Scribd logo
1 de 67
Descargar para leer sin conexión
.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
Ü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
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
26.09.2006   (c) MARTINSFELD GmbH & Co. KG   4
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
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
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
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
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
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
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
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
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
Mehrschichtige Anwendungen




26.09.2006   (c) MARTINSFELD GmbH & Co. KG   14
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
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
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
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
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
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
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
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
.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
.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
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
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
.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
.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
.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
.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 WinForms-
        Anwendungen nach dem MVC-Konzept




26.09.2006           (c) MARTINSFELD GmbH & Co. KG   32
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
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
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
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
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
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
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
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
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
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
TestDriven.NET (AKA NUnitAddIn)

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




26.09.2006                (c) MARTINSFELD GmbH & Co. KG   43
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Vielen Dank!
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

Más contenido relacionado

La actualidad más candente

Nigh Session Scala
Nigh Session ScalaNigh Session Scala
Nigh Session Scalaadesso AG
 
Metaprogrammierung, praktisch
Metaprogrammierung, praktischMetaprogrammierung, praktisch
Metaprogrammierung, praktischAndi Albrecht
 
Einführung in .NET
Einführung in .NETEinführung in .NET
Einführung in .NETAndreas Heil
 
Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken
Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken
Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken Martin Gfeller
 
Architektur einer Eclipse DLTK IDE für Clojure
Architektur einer Eclipse DLTK IDE für ClojureArchitektur einer Eclipse DLTK IDE für Clojure
Architektur einer Eclipse DLTK IDE für ClojureMatthias Köster
 
Scala und Lift
Scala und LiftScala und Lift
Scala und Liftadesso AG
 
Tech-Talk: Python vs. Ruby
Tech-Talk: Python vs. RubyTech-Talk: Python vs. Ruby
Tech-Talk: Python vs. Rubyschlauch
 
Uni mannheim debuggers
Uni mannheim debuggersUni mannheim debuggers
Uni mannheim debuggerszynamics GmbH
 
IfN Studienarbeit Abschlusspres 18.9.2007
IfN Studienarbeit Abschlusspres 18.9.2007IfN Studienarbeit Abschlusspres 18.9.2007
IfN Studienarbeit Abschlusspres 18.9.2007derDoc
 

La actualidad más candente (11)

Nigh Session Scala
Nigh Session ScalaNigh Session Scala
Nigh Session Scala
 
Metaprogrammierung, praktisch
Metaprogrammierung, praktischMetaprogrammierung, praktisch
Metaprogrammierung, praktisch
 
Einführung in .NET
Einführung in .NETEinführung in .NET
Einführung in .NET
 
Ein Gopher im Netz
Ein Gopher im NetzEin Gopher im Netz
Ein Gopher im Netz
 
Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken
Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken
Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken
 
Bit WiSe 2013 | Basisinformationstechnologie I - 08: Programmiersprachen I
Bit WiSe 2013 | Basisinformationstechnologie I - 08: Programmiersprachen IBit WiSe 2013 | Basisinformationstechnologie I - 08: Programmiersprachen I
Bit WiSe 2013 | Basisinformationstechnologie I - 08: Programmiersprachen I
 
Architektur einer Eclipse DLTK IDE für Clojure
Architektur einer Eclipse DLTK IDE für ClojureArchitektur einer Eclipse DLTK IDE für Clojure
Architektur einer Eclipse DLTK IDE für Clojure
 
Scala und Lift
Scala und LiftScala und Lift
Scala und Lift
 
Tech-Talk: Python vs. Ruby
Tech-Talk: Python vs. RubyTech-Talk: Python vs. Ruby
Tech-Talk: Python vs. Ruby
 
Uni mannheim debuggers
Uni mannheim debuggersUni mannheim debuggers
Uni mannheim debuggers
 
IfN Studienarbeit Abschlusspres 18.9.2007
IfN Studienarbeit Abschlusspres 18.9.2007IfN Studienarbeit Abschlusspres 18.9.2007
IfN Studienarbeit Abschlusspres 18.9.2007
 

Destacado

C# für Fortgeschrittene
C# für FortgeschritteneC# für Fortgeschrittene
C# für Fortgeschrittenemspgermany
 
Hyper-V Administration with PowerShell
Hyper-V Administration with PowerShellHyper-V Administration with PowerShell
Hyper-V Administration with PowerShellDigicomp Academy AG
 
2005 - .NET SummerCamp: C# 2.0
2005 - .NET SummerCamp: C# 2.02005 - .NET SummerCamp: C# 2.0
2005 - .NET SummerCamp: C# 2.0Daniel Fisher
 
Die SOLID-Prinzipien
Die SOLID-PrinzipienDie SOLID-Prinzipien
Die SOLID-PrinzipienTrivadis
 
SOLID Prinzipien, Designgrundlagen objektorientierter Systeme
SOLID Prinzipien, Designgrundlagen objektorientierter SystemeSOLID Prinzipien, Designgrundlagen objektorientierter Systeme
SOLID Prinzipien, Designgrundlagen objektorientierter SystemeMario Rodler
 
.NET Coding Standards For The Real World (2012)
.NET Coding Standards For The Real World (2012).NET Coding Standards For The Real World (2012)
.NET Coding Standards For The Real World (2012)David McCarter
 
imitrix Software Entwicklung Karlsruhe
imitrix Software Entwicklung Karlsruheimitrix Software Entwicklung Karlsruhe
imitrix Software Entwicklung Karlsruheimitrix GmbH
 
Automating C# Coding Standards using StyleCop and FxCop
Automating C# Coding Standards using StyleCop and FxCopAutomating C# Coding Standards using StyleCop and FxCop
Automating C# Coding Standards using StyleCop and FxCopBlackRabbitCoder
 
Misra C Software Development Standard
Misra C Software Development StandardMisra C Software Development Standard
Misra C Software Development StandardVittorio Giovara
 
Microsoft dynamics ax2012 : forms and tables methods call sequences, How To?
Microsoft dynamics ax2012 : forms and tables methods call sequences, How To?Microsoft dynamics ax2012 : forms and tables methods call sequences, How To?
Microsoft dynamics ax2012 : forms and tables methods call sequences, How To?Mohamed Amine HAMDAOUI
 
C# Workshop - Networking
C# Workshop - NetworkingC# Workshop - Networking
C# Workshop - NetworkingQiong Wu
 
Introduction to .net framework
Introduction to .net frameworkIntroduction to .net framework
Introduction to .net frameworkArun Prasad
 
C# coding standards, good programming principles & refactoring
C# coding standards, good programming principles & refactoringC# coding standards, good programming principles & refactoring
C# coding standards, good programming principles & refactoringEyob Lube
 

Destacado (14)

C# für Fortgeschrittene
C# für FortgeschritteneC# für Fortgeschrittene
C# für Fortgeschrittene
 
Hyper-V Administration with PowerShell
Hyper-V Administration with PowerShellHyper-V Administration with PowerShell
Hyper-V Administration with PowerShell
 
2005 - .NET SummerCamp: C# 2.0
2005 - .NET SummerCamp: C# 2.02005 - .NET SummerCamp: C# 2.0
2005 - .NET SummerCamp: C# 2.0
 
25
2525
25
 
Die SOLID-Prinzipien
Die SOLID-PrinzipienDie SOLID-Prinzipien
Die SOLID-Prinzipien
 
SOLID Prinzipien, Designgrundlagen objektorientierter Systeme
SOLID Prinzipien, Designgrundlagen objektorientierter SystemeSOLID Prinzipien, Designgrundlagen objektorientierter Systeme
SOLID Prinzipien, Designgrundlagen objektorientierter Systeme
 
.NET Coding Standards For The Real World (2012)
.NET Coding Standards For The Real World (2012).NET Coding Standards For The Real World (2012)
.NET Coding Standards For The Real World (2012)
 
imitrix Software Entwicklung Karlsruhe
imitrix Software Entwicklung Karlsruheimitrix Software Entwicklung Karlsruhe
imitrix Software Entwicklung Karlsruhe
 
Automating C# Coding Standards using StyleCop and FxCop
Automating C# Coding Standards using StyleCop and FxCopAutomating C# Coding Standards using StyleCop and FxCop
Automating C# Coding Standards using StyleCop and FxCop
 
Misra C Software Development Standard
Misra C Software Development StandardMisra C Software Development Standard
Misra C Software Development Standard
 
Microsoft dynamics ax2012 : forms and tables methods call sequences, How To?
Microsoft dynamics ax2012 : forms and tables methods call sequences, How To?Microsoft dynamics ax2012 : forms and tables methods call sequences, How To?
Microsoft dynamics ax2012 : forms and tables methods call sequences, How To?
 
C# Workshop - Networking
C# Workshop - NetworkingC# Workshop - Networking
C# Workshop - Networking
 
Introduction to .net framework
Introduction to .net frameworkIntroduction to .net framework
Introduction to .net framework
 
C# coding standards, good programming principles & refactoring
C# coding standards, good programming principles & refactoringC# coding standards, good programming principles & refactoring
C# coding standards, good programming principles & refactoring
 

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

Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Jürg Stuker
 
DACHNUG50 Volt MX & AppScan_20230615.pdf
DACHNUG50 Volt MX & AppScan_20230615.pdfDACHNUG50 Volt MX & AppScan_20230615.pdf
DACHNUG50 Volt MX & AppScan_20230615.pdfDNUG e.V.
 
Verteidigung - "Migration zu Kubernetes: Anforderungen, Umsetzung und Auswert...
Verteidigung - "Migration zu Kubernetes: Anforderungen, Umsetzung und Auswert...Verteidigung - "Migration zu Kubernetes: Anforderungen, Umsetzung und Auswert...
Verteidigung - "Migration zu Kubernetes: Anforderungen, Umsetzung und Auswert...Stephan Lindauer
 
Entity Framework Core - Der Umstieg auf Core
Entity Framework Core - Der Umstieg auf CoreEntity Framework Core - Der Umstieg auf Core
Entity Framework Core - Der Umstieg auf CoreNETUserGroupBern
 
Java für eingebettete Systeme
Java für eingebettete SystemeJava für eingebettete Systeme
Java für eingebettete Systemerdmeyer
 
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5Digicomp Academy AG
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & DominoUlrich Krause
 
On the Portability of Applications in Platform as a Service
On the Portability of Applications in Platform as a ServiceOn the Portability of Applications in Platform as a Service
On the Portability of Applications in Platform as a ServiceStefan Kolb
 
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine ÜbersichtJürgen Gutsch
 
Lotus Foundations Workshop Teil1
Lotus Foundations Workshop Teil1Lotus Foundations Workshop Teil1
Lotus Foundations Workshop Teil1Andreas Schulte
 
Architekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenArchitekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenRobin Sedlaczek
 
Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS esentri AG
 
Dataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesDataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesQAware GmbH
 
Referat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler AnwendungenReferat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler AnwendungenDigicomp Academy AG
 

Similar a ".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices (20)

.NET und jetzt!
.NET und jetzt!.NET und jetzt!
.NET und jetzt!
 
profil_2017
profil_2017profil_2017
profil_2017
 
Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001
 
DACHNUG50 Volt MX & AppScan_20230615.pdf
DACHNUG50 Volt MX & AppScan_20230615.pdfDACHNUG50 Volt MX & AppScan_20230615.pdf
DACHNUG50 Volt MX & AppScan_20230615.pdf
 
CodeFluent Entities and AppSofa
CodeFluent Entities and AppSofaCodeFluent Entities and AppSofa
CodeFluent Entities and AppSofa
 
Verteidigung - "Migration zu Kubernetes: Anforderungen, Umsetzung und Auswert...
Verteidigung - "Migration zu Kubernetes: Anforderungen, Umsetzung und Auswert...Verteidigung - "Migration zu Kubernetes: Anforderungen, Umsetzung und Auswert...
Verteidigung - "Migration zu Kubernetes: Anforderungen, Umsetzung und Auswert...
 
Entity Framework Core - Der Umstieg auf Core
Entity Framework Core - Der Umstieg auf CoreEntity Framework Core - Der Umstieg auf Core
Entity Framework Core - Der Umstieg auf Core
 
Amazon Web Services
Amazon Web ServicesAmazon Web Services
Amazon Web Services
 
Java für eingebettete Systeme
Java für eingebettete SystemeJava für eingebettete Systeme
Java für eingebettete Systeme
 
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & Domino
 
On the Portability of Applications in Platform as a Service
On the Portability of Applications in Platform as a ServiceOn the Portability of Applications in Platform as a Service
On the Portability of Applications in Platform as a Service
 
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
 
Lotus Foundations Workshop Teil1
Lotus Foundations Workshop Teil1Lotus Foundations Workshop Teil1
Lotus Foundations Workshop Teil1
 
Architekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenArchitekturen für .NET Core-Anwendungen
Architekturen für .NET Core-Anwendungen
 
Infrastructure Solution Day | Core
Infrastructure Solution Day | CoreInfrastructure Solution Day | Core
Infrastructure Solution Day | Core
 
Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS
 
Dataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesDataservices - Data Processing mit Microservices
Dataservices - Data Processing mit Microservices
 
Referat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler AnwendungenReferat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler Anwendungen
 
OSLC in Aktion
OSLC in AktionOSLC in Aktion
OSLC in Aktion
 

Más de GFU Cyrus AG

Social Media im Unternehmen
Social Media im UnternehmenSocial Media im Unternehmen
Social Media im UnternehmenGFU Cyrus AG
 
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...GFU Cyrus AG
 
Clean Code Developer
Clean Code DeveloperClean Code Developer
Clean Code DeveloperGFU Cyrus AG
 
Cross-Apps-Entwicklung für iPhone, Android und Co.
Cross-Apps-Entwicklung für iPhone, Android und Co.Cross-Apps-Entwicklung für iPhone, Android und Co.
Cross-Apps-Entwicklung für iPhone, Android und Co.GFU Cyrus AG
 
Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsGFU Cyrus AG
 
Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...
Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...
Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...GFU Cyrus AG
 
Requirements Engineering in agilen Projekten - Flexibilität ist gefordert
Requirements Engineering in agilen Projekten - Flexibilität ist gefordertRequirements Engineering in agilen Projekten - Flexibilität ist gefordert
Requirements Engineering in agilen Projekten - Flexibilität ist gefordertGFU Cyrus AG
 
SharePoint 2010 - Was ist neu, was wird besser!
SharePoint 2010 - Was ist neu, was wird besser!SharePoint 2010 - Was ist neu, was wird besser!
SharePoint 2010 - Was ist neu, was wird besser!GFU Cyrus AG
 
Java Persistence 2.0
Java Persistence 2.0Java Persistence 2.0
Java Persistence 2.0GFU Cyrus AG
 
Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...
Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...
Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...GFU Cyrus AG
 
Liferay Portal - ein Webportal für viele Unternehmensanforderungen
Liferay Portal - ein Webportal für viele UnternehmensanforderungenLiferay Portal - ein Webportal für viele Unternehmensanforderungen
Liferay Portal - ein Webportal für viele UnternehmensanforderungenGFU Cyrus AG
 
PostgreSQL im Produktivbetrieb
PostgreSQL im ProduktivbetriebPostgreSQL im Produktivbetrieb
PostgreSQL im ProduktivbetriebGFU Cyrus AG
 
Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...
Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...
Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...GFU Cyrus AG
 
Wieviel Web2.0 braucht Ihr Unternehmen?
Wieviel Web2.0 braucht Ihr Unternehmen?Wieviel Web2.0 braucht Ihr Unternehmen?
Wieviel Web2.0 braucht Ihr Unternehmen?GFU Cyrus AG
 
Neue Features der Java EE 6
Neue Features der Java EE 6Neue Features der Java EE 6
Neue Features der Java EE 6GFU Cyrus AG
 
Das Java-Spring-Framework in der Praxis
Das Java-Spring-Framework in der PraxisDas Java-Spring-Framework in der Praxis
Das Java-Spring-Framework in der PraxisGFU Cyrus AG
 
Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung
Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer SeminarverwaltungAgile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung
Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer SeminarverwaltungGFU Cyrus AG
 
Wissensmanagement bei Volkswagen
Wissensmanagement bei VolkswagenWissensmanagement bei Volkswagen
Wissensmanagement bei VolkswagenGFU Cyrus AG
 
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...GFU Cyrus AG
 
Grenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalk
Grenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalkGrenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalk
Grenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalkGFU Cyrus AG
 

Más de GFU Cyrus AG (20)

Social Media im Unternehmen
Social Media im UnternehmenSocial Media im Unternehmen
Social Media im Unternehmen
 
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
 
Clean Code Developer
Clean Code DeveloperClean Code Developer
Clean Code Developer
 
Cross-Apps-Entwicklung für iPhone, Android und Co.
Cross-Apps-Entwicklung für iPhone, Android und Co.Cross-Apps-Entwicklung für iPhone, Android und Co.
Cross-Apps-Entwicklung für iPhone, Android und Co.
 
Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration Tools
 
Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...
Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...
Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...
 
Requirements Engineering in agilen Projekten - Flexibilität ist gefordert
Requirements Engineering in agilen Projekten - Flexibilität ist gefordertRequirements Engineering in agilen Projekten - Flexibilität ist gefordert
Requirements Engineering in agilen Projekten - Flexibilität ist gefordert
 
SharePoint 2010 - Was ist neu, was wird besser!
SharePoint 2010 - Was ist neu, was wird besser!SharePoint 2010 - Was ist neu, was wird besser!
SharePoint 2010 - Was ist neu, was wird besser!
 
Java Persistence 2.0
Java Persistence 2.0Java Persistence 2.0
Java Persistence 2.0
 
Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...
Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...
Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...
 
Liferay Portal - ein Webportal für viele Unternehmensanforderungen
Liferay Portal - ein Webportal für viele UnternehmensanforderungenLiferay Portal - ein Webportal für viele Unternehmensanforderungen
Liferay Portal - ein Webportal für viele Unternehmensanforderungen
 
PostgreSQL im Produktivbetrieb
PostgreSQL im ProduktivbetriebPostgreSQL im Produktivbetrieb
PostgreSQL im Produktivbetrieb
 
Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...
Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...
Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...
 
Wieviel Web2.0 braucht Ihr Unternehmen?
Wieviel Web2.0 braucht Ihr Unternehmen?Wieviel Web2.0 braucht Ihr Unternehmen?
Wieviel Web2.0 braucht Ihr Unternehmen?
 
Neue Features der Java EE 6
Neue Features der Java EE 6Neue Features der Java EE 6
Neue Features der Java EE 6
 
Das Java-Spring-Framework in der Praxis
Das Java-Spring-Framework in der PraxisDas Java-Spring-Framework in der Praxis
Das Java-Spring-Framework in der Praxis
 
Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung
Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer SeminarverwaltungAgile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung
Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung
 
Wissensmanagement bei Volkswagen
Wissensmanagement bei VolkswagenWissensmanagement bei Volkswagen
Wissensmanagement bei Volkswagen
 
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
 
Grenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalk
Grenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalkGrenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalk
Grenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalk
 

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

  • 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. Ü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. 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. 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 4
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Mehrschichtige Anwendungen 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 14
  • 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. 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. 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. 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. 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. 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. 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. 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. .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. .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. 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. 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. .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. .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. .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. .NET EntLib - Anhängigkeiten 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 30
  • 31. Enterprise Library Configuration 26.09.2006 (c) MARTINSFELD GmbH & Co. KG 31
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  • 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