SlideShare a Scribd company logo
1 of 67
Download to read offline
.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
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 2
Über den Referenten
Peter Hecker ist Geschäftsführer der Firma
MARTINSFELD GmbH & Co. KG aus Köln. Er
arbeitet seit über 20 Jahren als IT-Berater,
Programmierer und Trainer.
Die MARTINSFELD GmbH & Co. KG bietet
maßgeschneiderte Beratung, Konzeption und
Entwicklung rund um IT- und Softwareprojekte
an.
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 3
Themen / Stichwörter
• Klassen / Objekte / Komponenten
• Mehrschichtige .NET-Anwendungen
• Bibliotheken / Pattern
• Frameworks / Tools
• Unit Testing / Codeanalyse
• Continous Integration / Versionsverwaltung
• Instrumentation / Dokumentation
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 4
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 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 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 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 8
Ausführungsmodell
ILIL--CodeCode ILIL--CodeCodeILIL--CodeCode
CompilerCompiler CompilerCompilerCompilerCompiler
CLR
Managed
Code
Managed
Code
Managed
Code
Common Language Runtime (CLR)
VBVB VC++VC++C#C#
Unmanaged
Code
UnmanagedUnmanaged
ComponentComponent
BetriebssystemBetriebssystem
Just in Time (JIT) CompilerJust in Time (JIT) Compiler
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 9
Plattformen und Versionen
• Microsoft .NET Framework
– Windows-Varianten: 98/ME, NT/2000/XP/2003, CE
– 01/2002 – .NET 1.0
– 04/2003 – .NET 1.1 (Everett)
– 10/2005 – .NET 2.0 (Whidbey)
– 12/2006 – .NET 3.x (Orcas)
– xx/20xx – .NET 4.x (Hawai)
• ECMA SSCLI (Rotor)
– Windows XP, FreeBSD 4.5, Mac OS/X
– Version 1.0 (.NET 1.0/1.1)
• Novell Mono
– Linux, Mac OS/X, Solaris, BSD, Windows
– Version 1.1 (.NET 1.0/1.1)
– Version 1.2 (.NET 1.0/1.1 + WinForms, VB.NET)
– Version 2.0 (.NET 2.0)
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
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 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 14
Mehrschichtige Anwendungen
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 15
System.Web
System
System.Data System.Xml
Design
ADO
SQLTypes
SQL
Design
ADO
SQLTypes
SQL
Globalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security Runtime
InteropServices
Remoting
SerializationGlobalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security Runtime
InteropServices
Remoting
Serialization
XPath
XSLT Serialization
XPath
XSLT Serialization
System.Drawing
System.Windows.Forms
Imaging
Drawing2D
Text
Printing
Imaging
Drawing2D
Text
Printing
Design ComponentModelDesign ComponentModelServices
Configuration SessionState
Caching Security
UI
HtmlControls
WebControls
Description
Discovery
Protocols
Services
Configuration SessionState
Caching Security
UI
HtmlControls
WebControls
Description
Discovery
Protocols
Klassen im .NET Framework
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 16
System.Web
System
System.Data System.Xml
Design
ADO
SQLTypes
SQL
Design
ADO
SQLTypes
SQL
Globalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security Runtime
InteropServices
Remoting
SerializationGlobalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security Runtime
InteropServices
Remoting
Serialization
XPath
XSLT Serialization
XPath
XSLT Serialization
System.Drawing
System.Windows.Forms
Imaging
Drawing2D
Text
Printing
Imaging
Drawing2D
Text
Printing
Design ComponentModelDesign ComponentModelServices
Configuration SessionState
Caching Security
UI
HtmlControls
WebControls
Description
Discovery
Protocols
Services
Configuration SessionState
Caching Security
UI
HtmlControls
WebControls
Description
Discovery
Protocols
Klassen im .NET Framework
Ca. 9000.NET 3.0
4528.NET 2.0
2303.NET 1.1
2246.NET 1.0
Anzahl Klassen.NET Version
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 17
System.Web
System
System.Data System.Xml
Design
ADO
SQLTypes
SQL
Design
ADO
SQLTypes
SQL
Globalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security Runtime
InteropServices
Remoting
SerializationGlobalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security Runtime
InteropServices
Remoting
Serialization
XPath
XSLT Serialization
XPath
XSLT Serialization
System.Drawing
System.Windows.Forms
Imaging
Drawing2D
Text
Printing
Imaging
Drawing2D
Text
Printing
Design ComponentModelDesign ComponentModelServices
Configuration SessionState
Caching Security
UI
HtmlControls
WebControls
Description
Discovery
Protocols
Services
Configuration SessionState
Caching Security
UI
HtmlControls
WebControls
Description
Discovery
Protocols
Klassen im .NET Framework
Ca. 9000.NET 3.0
4528.NET 2.0
2303.NET 1.1
2246.NET 1.0
Anzahl Klassen.NET Version
A#, Abstract State Machine Language, Active Oberon for .Net, Boo,
Chrome, Comega, CSharp, CULE.NET, Delphi .NET, Delta Forth .NET,
DotLisp, Dyalog.Net, eXtensible C#, Fortran for .NET, FSharp, FTN95 for
Microsoft .NET , Gardens Point Component Pascal , Hugs98 for .NET,
IronPython, ISE Eiffel Studio, JScript.NET, JSharp, Lua.NET,
Mercury.NET, MixNet, Mondrian for .NET, MonoLOGO, Multi-Target
Pascal, Nemerle, NetCOBOL, NetRuby, P#, PerlNet, PHP_Sharp, Python
for .NET, Ruby .NET, Scheme.NET, Sharp Smalltalk, SmallScript.NET,
Squeak .NET, Standard Meta Language, Visual Basic, Visual C++/CLI,
Visual RPG for .NET, Vulcan.NET ...
Programmiersprachen
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 18
System.Web
System
System.Data System.Xml
Design
ADO
SQLTypes
SQL
Design
ADO
SQLTypes
SQL
Globalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security Runtime
InteropServices
Remoting
SerializationGlobalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security Runtime
InteropServices
Remoting
Serialization
XPath
XSLT Serialization
XPath
XSLT Serialization
System.Drawing
System.Windows.Forms
Imaging
Drawing2D
Text
Printing
Imaging
Drawing2D
Text
Printing
Design ComponentModelDesign ComponentModelServices
Configuration SessionState
Caching Security
UI
HtmlControls
WebControls
Description
Discovery
Protocols
Services
Configuration SessionState
Caching Security
UI
HtmlControls
WebControls
Description
Discovery
Protocols
Klassen im .NET Framework
Ca. 9000.NET 3.0
4528.NET 2.0
2303.NET 1.1
2246.NET 1.0
Anzahl Klassen.NET Version
A#, Abstract State Machine Language, Active Oberon for .Net, Boo,
Chrome, Comega, CSharp, CULE.NET, Delphi .NET, Delta Forth .NET,
DotLisp, Dyalog.Net, eXtensible C#, Fortran for .NET, FSharp, FTN95 for
Microsoft .NET , Gardens Point Component Pascal , Hugs98 for .NET,
IronPython, ISE Eiffel Studio, JScript.NET, JSharp, Lua.NET,
Mercury.NET, MixNet, Mondrian for .NET, MonoLOGO, Multi-Target
Pascal, Nemerle, NetCOBOL, NetRuby, P#, PerlNet, PHP_Sharp, Python
for .NET, Ruby .NET, Scheme.NET, Sharp Smalltalk, SmallScript.NET,
Squeak .NET, Standard Meta Language, Visual Basic, Visual C++/CLI,
Visual RPG for .NET, Vulcan.NET ...
Programmiersprachen
„The language doesn‘t matter!“
Dan Appleman
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 19
Design Guidelines for Class Library
Developers
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/
cpconNETFrameworkDesignGuidelines.asp
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
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 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 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 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 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 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 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 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 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 30
.NET EntLib - Anhängigkeiten
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 31
Enterprise Library Configuration
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 32
Weitere Application Blocks - UIP
• User Interface Process Application Block (UIP)
– Wieder verwendbare WebForms und WinForms-
Anwendungen nach dem MVC-Konzept
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 - CAB
• Composite UI Application Block (CAB)
– Entwicklung komplexer, komponentenbasierter
WinForms-Anwendungen für .NET 2.0
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 35
Weitere Application Blocks – GAT/GAX
• Guidance Packages
– Anleitungen für Entwickler bestehend aus
• Rezepten, Aktionen, Textvorlagen, Assistenten,
Typenkonverter, Visual Studio Templates
• Guidance Automation Toolkit (GAT)
– Erweiterung von VS2005 um Anleitungen
zu erstellen
• Guidance Automation Extensions (GAX)
– Erweiterung von VS2005 um Anleitungen
auszuführen
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 36
Software Factories
• Strukturierte Sammlung zusammenhängender
Softwarebausteine
• Integration in VS2005 zur Unterstützung der
Softwareentwicklung
• Verfügbar für unterschiedliche
Softwarearchitekturen
– Smart Client Software Factory
– Mobile Client Software Factory
– Web Service Software Factory
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 37
Smart Client Software Factory
• CAB + EntLib + GAX + GAT
• Rich User Interfaces auf
Basis von Microsoft
Windows Desktop
• Datenaustausch mit
unterschiedlichen Back-End-
Systemen
• Einheitliche Präsentation
von Daten aus unter-
schiedlichen Quellen in
einer einheitlichen
Benutzerschnittstelle
• Lokale Datenhaltung und
Datenverarbeitung mit der
Unterstützung zeitweiliger
Verbindungslosigkeit
• Einfache Verteilung und
Konfiguration
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 38
Mobile Client Software Factory
• CAB + DAAB + GAT
• Rich User Interfaces auf
Basis von Windows Mobile
5.0 Geräten
• Unterschiedliche
Kommunikationswege
• Datenaustausch mit
unterschiedlichen Back-End-
Systemen
• Lokale Datenhaltung und
Datenverarbeitung mit der
Unterstützung zeitweiliger
Verbindungslosigkeit
• Einfache Verteilung und
Konfiguration
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 39
Web Service Software Factory
• Definition von
Nachrichten und
Dienstschnittstellen
• Ausnahmebehandlung
• Definition von
Geschäftsobjekten
• Nachrichtenübermittlung
• Datenzugriff
• Migration nach Windows
Communication
Foundation (WCF)
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 40
Unit Tests
• Ein Unit Test ist ein Verfahren, um die
Korrektheit eines einzelnen Codeblocks zu
testen.
• Ein Unit Test wird für jede Prozedur, Funktion,
Methode geschrieben
• Ein Unit Test erlaubt die automatisierte,
wiederholbare, kontinuierliche Prüfung
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 41
NUnit – Unit Tests unter .NET
• NUnit
– http://www.nunit.org
– Ursprünglich eine
Portierung von JUnit
– In C# geschrieben und
arbeitet für alle .NET-
Sprachen
– Hauptautor ist James W.
Newrik
• Jetzt bei Microsoft im
VSTS-Projekt
– Add-In für VS.NET
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 42
Zusatzwerkzeuge zu NUnit
• TestDriven.NET
– VS-Add-in für NUnit
• NUnitAsp
– Testen von Web Forms-GUIs
• NUnitForms
– Testen von Windows Forms-GUIs
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 43
TestDriven.NET (AKA NUnitAddIn)
• Add-In für Visual Studio
– http://sourceforge.net/projects/nunitaddin/
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 44
NUnitAsp – Web Forms unit testing
• Erweiterung von NUnit für Web Forms
– http://nunitasp.sourceforge.net
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 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 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
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 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 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
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 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 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 56
MS Enterprise Instrumentation
Framework (EMF)
.NET Application
Instrumentation API
Event filtering
WMI
Event
trace
Event
Log
Trace
Log
Event
Log
WMI
subscriber
Configuration
Event schema
Application
object
Application
object
Event source Event source
Trace reader
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
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 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
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 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
Vielen Dank!
26.09.2006 (c) MARTINSFELD GmbH & Co. KG 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

More Related Content

Viewers also liked

2008 02 Tidal Power: Management & Mechanisms Gary Shanahan, BERR
2008 02 Tidal Power: Management & Mechanisms Gary Shanahan, BERR2008 02 Tidal Power: Management & Mechanisms Gary Shanahan, BERR
2008 02 Tidal Power: Management & Mechanisms Gary Shanahan, BERRSevernEstuary
 
European Logistics Operator "Brevarex Ukraine" LTD
European Logistics Operator "Brevarex Ukraine" LTDEuropean Logistics Operator "Brevarex Ukraine" LTD
European Logistics Operator "Brevarex Ukraine" LTDAndrii Kuzma, MBA
 
Unite and unite: the power of community celebrations
Unite and unite: the power of community celebrationsUnite and unite: the power of community celebrations
Unite and unite: the power of community celebrationsEdenProjectWebTeam
 
Quelle heure estil
Quelle heure estilQuelle heure estil
Quelle heure estilkatiapgm
 
Gratuit : Le monde du livre et ses coulisses
Gratuit : Le monde du livre et ses coulissesGratuit : Le monde du livre et ses coulisses
Gratuit : Le monde du livre et ses coulissesSerge-André Guay
 
What Matters to Millennials?
What Matters to Millennials?What Matters to Millennials?
What Matters to Millennials?Peter Jordan
 
Breve historia de la psicología precientífica
Breve historia de la psicología precientíficaBreve historia de la psicología precientífica
Breve historia de la psicología precientíficaVale Prieto Codutti
 
An Eden Project Field Guide to community-owned places and spaces
An Eden Project Field Guide to community-owned places and spacesAn Eden Project Field Guide to community-owned places and spaces
An Eden Project Field Guide to community-owned places and spacesEdenProjectWebTeam
 
Purpose&Play Co-Creative Coaching Group Session: Growth Hacking for Social E...
Purpose&Play Co-Creative Coaching Group Session:  Growth Hacking for Social E...Purpose&Play Co-Creative Coaching Group Session:  Growth Hacking for Social E...
Purpose&Play Co-Creative Coaching Group Session: Growth Hacking for Social E...B. Laszlo Karafiath, PhD
 
GAVIONES- ESTABILIZACION DE TALUDES Y DEFENSA RIBEREÑA
GAVIONES- ESTABILIZACION DE TALUDES Y DEFENSA RIBEREÑAGAVIONES- ESTABILIZACION DE TALUDES Y DEFENSA RIBEREÑA
GAVIONES- ESTABILIZACION DE TALUDES Y DEFENSA RIBEREÑAKevin Vasquez
 
Les meilleurs trucs du marketing interactif au service du recrutement
Les meilleurs trucs du marketing interactif au service du recrutementLes meilleurs trucs du marketing interactif au service du recrutement
Les meilleurs trucs du marketing interactif au service du recrutementNurun
 

Viewers also liked (15)

2008 02 Tidal Power: Management & Mechanisms Gary Shanahan, BERR
2008 02 Tidal Power: Management & Mechanisms Gary Shanahan, BERR2008 02 Tidal Power: Management & Mechanisms Gary Shanahan, BERR
2008 02 Tidal Power: Management & Mechanisms Gary Shanahan, BERR
 
European Logistics Operator "Brevarex Ukraine" LTD
European Logistics Operator "Brevarex Ukraine" LTDEuropean Logistics Operator "Brevarex Ukraine" LTD
European Logistics Operator "Brevarex Ukraine" LTD
 
Unite and unite: the power of community celebrations
Unite and unite: the power of community celebrationsUnite and unite: the power of community celebrations
Unite and unite: the power of community celebrations
 
Quelle heure estil
Quelle heure estilQuelle heure estil
Quelle heure estil
 
Gratuit : Le monde du livre et ses coulisses
Gratuit : Le monde du livre et ses coulissesGratuit : Le monde du livre et ses coulisses
Gratuit : Le monde du livre et ses coulisses
 
What Matters to Millennials?
What Matters to Millennials?What Matters to Millennials?
What Matters to Millennials?
 
9 мая
9 мая9 мая
9 мая
 
Breve historia de la psicología precientífica
Breve historia de la psicología precientíficaBreve historia de la psicología precientífica
Breve historia de la psicología precientífica
 
Mkt 421 final exam 2016
Mkt 421 final exam 2016Mkt 421 final exam 2016
Mkt 421 final exam 2016
 
An Eden Project Field Guide to community-owned places and spaces
An Eden Project Field Guide to community-owned places and spacesAn Eden Project Field Guide to community-owned places and spaces
An Eden Project Field Guide to community-owned places and spaces
 
Purpose&Play Co-Creative Coaching Group Session: Growth Hacking for Social E...
Purpose&Play Co-Creative Coaching Group Session:  Growth Hacking for Social E...Purpose&Play Co-Creative Coaching Group Session:  Growth Hacking for Social E...
Purpose&Play Co-Creative Coaching Group Session: Growth Hacking for Social E...
 
GAVIONES- ESTABILIZACION DE TALUDES Y DEFENSA RIBEREÑA
GAVIONES- ESTABILIZACION DE TALUDES Y DEFENSA RIBEREÑAGAVIONES- ESTABILIZACION DE TALUDES Y DEFENSA RIBEREÑA
GAVIONES- ESTABILIZACION DE TALUDES Y DEFENSA RIBEREÑA
 
Les meilleurs trucs du marketing interactif au service du recrutement
Les meilleurs trucs du marketing interactif au service du recrutementLes meilleurs trucs du marketing interactif au service du recrutement
Les meilleurs trucs du marketing interactif au service du recrutement
 
Hydraulics RO
Hydraulics ROHydraulics RO
Hydraulics RO
 
Agribusiness 2015
Agribusiness 2015Agribusiness 2015
Agribusiness 2015
 

Similar to .NET und jetzt!

Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core ApplicationsRobin Sedlaczek
 
.NET Core Architecture (UI)
.NET Core Architecture (UI).NET Core Architecture (UI)
.NET Core Architecture (UI)Robin Sedlaczek
 
Codewiederverwendung in Xamarin-Apps maximieren
Codewiederverwendung in Xamarin-Apps maximierenCodewiederverwendung in Xamarin-Apps maximieren
Codewiederverwendung in Xamarin-Apps maximierenAndré Krämer
 
ICIS User Group - Oberflächentests mittels LCT deklarativ angehen
ICIS User Group - Oberflächentests mittels LCT deklarativ angehenICIS User Group - Oberflächentests mittels LCT deklarativ angehen
ICIS User Group - Oberflächentests mittels LCT deklarativ angehenKai Donato
 
Einführung in .NET
Einführung in .NETEinführung in .NET
Einführung in .NETAndreas Heil
 
Using openArchitectureWare 4.0 in domain "registration"
Using openArchitectureWare 4.0 in domain "registration"Using openArchitectureWare 4.0 in domain "registration"
Using openArchitectureWare 4.0 in domain "registration"joergreichert
 
.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
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalQAware GmbH
 
Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Jürg Stuker
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalQAware GmbH
 
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis NachhaltigkeitDWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis NachhaltigkeitNico Orschel
 
Architekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenArchitekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenRobin Sedlaczek
 
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
 
Windows 8 Business-App-Entwicklung
Windows 8 Business-App-EntwicklungWindows 8 Business-App-Entwicklung
Windows 8 Business-App-EntwicklungMatthias Jauernig
 
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.
 
ASP.NET Core – Troublemaker oder Problemsolver?
ASP.NET Core – Troublemaker oder Problemsolver?ASP.NET Core – Troublemaker oder Problemsolver?
ASP.NET Core – Troublemaker oder Problemsolver?POINT. Consulting GmbH
 
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
 

Similar to .NET und jetzt! (20)

Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core Applications
 
.NET Core Architecture (UI)
.NET Core Architecture (UI).NET Core Architecture (UI)
.NET Core Architecture (UI)
 
Codewiederverwendung in Xamarin-Apps maximieren
Codewiederverwendung in Xamarin-Apps maximierenCodewiederverwendung in Xamarin-Apps maximieren
Codewiederverwendung in Xamarin-Apps maximieren
 
ICIS User Group - Oberflächentests mittels LCT deklarativ angehen
ICIS User Group - Oberflächentests mittels LCT deklarativ angehenICIS User Group - Oberflächentests mittels LCT deklarativ angehen
ICIS User Group - Oberflächentests mittels LCT deklarativ angehen
 
Einführung in .NET
Einführung in .NETEinführung in .NET
Einführung in .NET
 
Using openArchitectureWare 4.0 in domain "registration"
Using openArchitectureWare 4.0 in domain "registration"Using openArchitectureWare 4.0 in domain "registration"
Using openArchitectureWare 4.0 in domain "registration"
 
.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
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue Normal
 
Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue Normal
 
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis NachhaltigkeitDWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
 
Architekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenArchitekturen für .NET Core-Anwendungen
Architekturen für .NET Core-Anwendungen
 
Kevin Hofer
Kevin HoferKevin Hofer
Kevin Hofer
 
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
 
CodeFluent Entities and AppSofa
CodeFluent Entities and AppSofaCodeFluent Entities and AppSofa
CodeFluent Entities and AppSofa
 
Windows 8 Business-App-Entwicklung
Windows 8 Business-App-EntwicklungWindows 8 Business-App-Entwicklung
Windows 8 Business-App-Entwicklung
 
DACHNUG50 Volt MX & AppScan_20230615.pdf
DACHNUG50 Volt MX & AppScan_20230615.pdfDACHNUG50 Volt MX & AppScan_20230615.pdf
DACHNUG50 Volt MX & AppScan_20230615.pdf
 
ASP.NET Core – Troublemaker oder Problemsolver?
ASP.NET Core – Troublemaker oder Problemsolver?ASP.NET Core – Troublemaker oder Problemsolver?
ASP.NET Core – Troublemaker oder Problemsolver?
 
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...
 

More from Peter Hecker

Ist Open Source ein Ersatz für kommerzielle RPA-Tools?
Ist Open Source ein Ersatz für kommerzielle RPA-Tools?Ist Open Source ein Ersatz für kommerzielle RPA-Tools?
Ist Open Source ein Ersatz für kommerzielle RPA-Tools?Peter Hecker
 
Vom Framework zur App - Ein Blick in das React-Ökosystem
Vom Framework zur App - Ein Blick in das React-ÖkosystemVom Framework zur App - Ein Blick in das React-Ökosystem
Vom Framework zur App - Ein Blick in das React-ÖkosystemPeter Hecker
 
Was darf’s denn sein: Angular, React, Vue.js – Über Frontend-Entwicklung im J...
Was darf’s denn sein: Angular, React, Vue.js – Über Frontend-Entwicklung im J...Was darf’s denn sein: Angular, React, Vue.js – Über Frontend-Entwicklung im J...
Was darf’s denn sein: Angular, React, Vue.js – Über Frontend-Entwicklung im J...Peter Hecker
 
TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für...
TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für...TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für...
TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für...Peter Hecker
 
AngularJS für .NET-Entwickler
AngularJS für .NET-EntwicklerAngularJS für .NET-Entwickler
AngularJS für .NET-EntwicklerPeter Hecker
 
Cross Plattform Apps mit Visual Studio und Apache Cordova
Cross Plattform Apps mit Visual Studio und Apache CordovaCross Plattform Apps mit Visual Studio und Apache Cordova
Cross Plattform Apps mit Visual Studio und Apache CordovaPeter Hecker
 
NRWConf - Workshop Mobile Apps
NRWConf - Workshop Mobile AppsNRWConf - Workshop Mobile Apps
NRWConf - Workshop Mobile AppsPeter Hecker
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...Peter Hecker
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...Peter Hecker
 
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...Peter Hecker
 
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...Peter Hecker
 
Mobile Websites und (Web)-Apps mit jQuery Mobile
Mobile Websites und (Web)-Apps mit jQuery MobileMobile Websites und (Web)-Apps mit jQuery Mobile
Mobile Websites und (Web)-Apps mit jQuery MobilePeter Hecker
 
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.Peter Hecker
 
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.Peter Hecker
 
Internet Marketing
Internet MarketingInternet Marketing
Internet MarketingPeter Hecker
 

More from Peter Hecker (15)

Ist Open Source ein Ersatz für kommerzielle RPA-Tools?
Ist Open Source ein Ersatz für kommerzielle RPA-Tools?Ist Open Source ein Ersatz für kommerzielle RPA-Tools?
Ist Open Source ein Ersatz für kommerzielle RPA-Tools?
 
Vom Framework zur App - Ein Blick in das React-Ökosystem
Vom Framework zur App - Ein Blick in das React-ÖkosystemVom Framework zur App - Ein Blick in das React-Ökosystem
Vom Framework zur App - Ein Blick in das React-Ökosystem
 
Was darf’s denn sein: Angular, React, Vue.js – Über Frontend-Entwicklung im J...
Was darf’s denn sein: Angular, React, Vue.js – Über Frontend-Entwicklung im J...Was darf’s denn sein: Angular, React, Vue.js – Über Frontend-Entwicklung im J...
Was darf’s denn sein: Angular, React, Vue.js – Über Frontend-Entwicklung im J...
 
TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für...
TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für...TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für...
TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für...
 
AngularJS für .NET-Entwickler
AngularJS für .NET-EntwicklerAngularJS für .NET-Entwickler
AngularJS für .NET-Entwickler
 
Cross Plattform Apps mit Visual Studio und Apache Cordova
Cross Plattform Apps mit Visual Studio und Apache CordovaCross Plattform Apps mit Visual Studio und Apache Cordova
Cross Plattform Apps mit Visual Studio und Apache Cordova
 
NRWConf - Workshop Mobile Apps
NRWConf - Workshop Mobile AppsNRWConf - Workshop Mobile Apps
NRWConf - Workshop Mobile Apps
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
 
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...
 
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...
 
Mobile Websites und (Web)-Apps mit jQuery Mobile
Mobile Websites und (Web)-Apps mit jQuery MobileMobile Websites und (Web)-Apps mit jQuery Mobile
Mobile Websites und (Web)-Apps mit jQuery Mobile
 
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.
 
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.
 
Internet Marketing
Internet MarketingInternet Marketing
Internet Marketing
 

.NET und jetzt!

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