SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Vertriebssysteme / CRM
Johannes HoppeDipl. Inf. (FH) Johannes Hoppe
SRH Hochschule Heidelberg
Fachbereich Informatik
Dipl. Inf. (FH) Johannes Hoppe
MSP – WCF Vorlesung
25.03.2009
90 Minuten, 8 Teilnehmer
3
Vorlesungsinhalt
Ziel des praktischen Teils:
Erwerbung von Grundkenntnissen in der
Anwendungsentwicklung mit der Windows Communication
Foundation
Vorraussetzungen
• C# 3.0 / .NET 3.0 Grundkenntisse
• Microsoft Visual Studio 2005 / 2008
Vertriebssysteme / CRM
4
Einführung
Windows Communication Foundation (WCF):
- Laufzeitumgebung
- erlaubt es .NET CLR Typen für eine verteilte Kommunikation zu
veröffentlichen (d.h. als Service zu agieren)
- andere Services wie Applikations-eigene .NET CLR Typen zu
konsumieren
 SOAP
Vertriebssysteme / CRM
5
Einführung
Windows Communication Foundation (WCF):
- Vorgänger:
- Enterprise Services“ (Namespace: System.EnterpriseServices),
- „.NET Remoting“ (Namespace: SystemRuntime.Remoting)
- ASP.NET Web Services (Namespace: System.Web.Services)
- MSMQ (Microsoft Message Queuing – Namespace:
System.Messaging)
- unterstützt eine Vielzahl von Protokollen und bleibt so zu älteren
Systemen abwärtskompatibel!
Vertriebssysteme / CRM
6
Einführung
Vertriebssysteme / CRM
7
Endpunkte
- das Prinzip des Endpunkts
- Endpunkt: „Anfang oder das Ende eines Nachrichtenaustauschs
zwischen zwei verteilten Anwendungen“
Vertriebssysteme / CRM
8
Endpunkte
- Endpunkt beschreibt drei grundlegende Aspekte
1. den Ort
2. die Art und
3. den inhaltlichen Rahmen der Kommunikation
Vertriebssysteme / CRM
A – Address (Adresse)
B – Binding (Anbindung)
C – Contract (Vertrag)
9
Kommunikationsmuster
- Auch Message Exchange Patterns, „MEP“s
1. Request-Reply
2. Einweg
3. Duplex
Request-Reply
Vertriebssysteme / CRM
10
Kommunikationsmuster
Einweg
Duplex
Vertriebssysteme / CRM
11
Hosting und Instanzen
Hosting:
- innerhalb einer eigenen Anwendung (Self-Hosting)
- Webserver „IIS“ / Service Host in einer ASP.NET Anwendung
- IIS-Dienst „Windows Activation Service“ (WAS)
Vertriebssysteme / CRM
12
Instanzen
Per-Session Service:
• Standardeinstellungen von WCF
• Client und Server treten in eine Session (Sitzung)
• Jede Sitzung verbleibt bis zum zu ihrem Ende im Arbeitsspeicher
• Pro Sitzung gibt es eine spezielle Service-Instanz die sich in
einem eigenen Context (Gültigkeitsbereich) befindet.
[ServiceBehavior(InstanceContextMode =
InstanceContextMode.PerSession)]
Vertriebssysteme / CRM
13
Instanzen
Per-Session Service:
Vertriebssysteme / CRM
Hostender Prozess
App Domain (~ Pseudo-Prozess)
Service Host Theoretisch
möglicher 2.
Service Host
Context
Service-Instanz
Context
Service-Instanz
Context
Service-Instanz
Endpunkte
[ … ]
14
Instanzen
Per-Call Service:
• auf Sitzungen verzichten.
• Statt der Beibehaltung der Daten im Arbeitsspeicher wird für
jeden Methodenaufruf eine Service-Instanz erzeugt
• Der Arbeitsspeicher wird aufgeräumt, alle normalen Member-
Variablen gehen wieder verloren
• Consumer merkt nichts von der verworfenen Instanz: Service
Host lässt alle Verbindungen über einen Proxy bestehe
 Peformance-Empfehlung
[ServiceBehavior(InstanceContextMode =
InstanceContextMode.PerCall)]
Vertriebssysteme / CRM
15
Instanzen
Per-Call Service:
• auf Sitzungen verzichten.
• Statt der Beibehaltung der Daten im Arbeitsspeicher wird für
jeden Methodenaufruf eine Service-Instanz erzeugt
• Der Arbeitsspeicher wird aufgeräumt, alle normalen Member-
Variablen gehen wieder verloren
• Consumer merkt nichts von der verworfenen Instanz: Service
Host lässt alle Verbindungen über einen Proxy bestehe
 Peformance-Empfehlung
[ServiceBehavior(InstanceContextMode =
InstanceContextMode.PerSession)]
Vertriebssysteme / CRM
16
Instanzen
Per-Call Service:
- parallel ablaufende Per-Call Services:
[ServiceBehavior(ConcurrencyMode =
ConcurrencyMode.Multiple)]
- Vorsicht: Zugriff auf gemeinsam genutzte Variablen
- Locks notwendig
 Deadlocks können entstehen
Vertriebssysteme / CRM
17
Instanzen
Singleton Service:
• exakt eine Service-Instanz, die für alle Anfragen verwendet wird
• Bleibt bis zur Beendung des Service Host aktiv
• sind prinzipiell nicht skalierbar
• sollten nur in begründeten Fällen eingesetzt werden!
• z.B. Windows Dienst  Tray Applikation (muss nicht skalieren)
[ServiceBehavior(InstanceContextMode =
InstanceContextMode.Single)]
Vertriebssysteme / CRM
18
Los geht’s!
Vertriebssysteme / CRM
Wir bauen uns einen
Webservice mit Consumer!
Dipl. Inf. (FH) Johannes Hoppe
Vielen Dank für eure Aufmerksamkeit!
ENDE

Weitere ähnliche Inhalte

Andere mochten auch

Nota ; Argentina se integró a la Asociación Mundial de Artes Marciales Mixtas
Nota ; Argentina se integró a la Asociación Mundial de Artes Marciales MixtasNota ; Argentina se integró a la Asociación Mundial de Artes Marciales Mixtas
Nota ; Argentina se integró a la Asociación Mundial de Artes Marciales MixtasProf.Martin Cano Rodriguez
 
Bilderstory: Oberstaufen goes Street View
Bilderstory: Oberstaufen goes Street ViewBilderstory: Oberstaufen goes Street View
Bilderstory: Oberstaufen goes Street ViewBenjamin Buhl
 
Open Data und MIDATA - das Recht auf unsere Daten
Open Data und MIDATA - das Recht auf unsere DatenOpen Data und MIDATA - das Recht auf unsere Daten
Open Data und MIDATA - das Recht auf unsere DatenAndre Golliez
 
Die Digital Concert Hall der Berliner Philharmoniker auf Amazon AWS
Die Digital Concert Hall der Berliner Philharmoniker auf Amazon AWSDie Digital Concert Hall der Berliner Philharmoniker auf Amazon AWS
Die Digital Concert Hall der Berliner Philharmoniker auf Amazon AWStecRacer
 
Klausurergebnisse In Indien
Klausurergebnisse In IndienKlausurergebnisse In Indien
Klausurergebnisse In Indiensabrinageli
 
Social Media 2.5 Conference | Learnings
Social Media 2.5 Conference | LearningsSocial Media 2.5 Conference | Learnings
Social Media 2.5 Conference | LearningsSocial Media Schweiz
 
Überblick Crowdfunding - Wer investiert warum, wie viel und in welche Projekte?
Überblick Crowdfunding - Wer investiert warum, wie viel und in welche Projekte?Überblick Crowdfunding - Wer investiert warum, wie viel und in welche Projekte?
Überblick Crowdfunding - Wer investiert warum, wie viel und in welche Projekte?Jörg Reschke
 
Informatica enfermeria 1_ro (2)
Informatica enfermeria 1_ro (2)Informatica enfermeria 1_ro (2)
Informatica enfermeria 1_ro (2)Jasmin Cárdenas
 
Deber de informática
Deber de informáticaDeber de informática
Deber de informáticaedgarevas
 

Andere mochten auch (18)

Nota ; Argentina se integró a la Asociación Mundial de Artes Marciales Mixtas
Nota ; Argentina se integró a la Asociación Mundial de Artes Marciales MixtasNota ; Argentina se integró a la Asociación Mundial de Artes Marciales Mixtas
Nota ; Argentina se integró a la Asociación Mundial de Artes Marciales Mixtas
 
Documental "Caridad"
Documental "Caridad"Documental "Caridad"
Documental "Caridad"
 
Scrum 2009 10_23
Scrum 2009 10_23Scrum 2009 10_23
Scrum 2009 10_23
 
Bilderstory: Oberstaufen goes Street View
Bilderstory: Oberstaufen goes Street ViewBilderstory: Oberstaufen goes Street View
Bilderstory: Oberstaufen goes Street View
 
Tlb Newsletter Juni 2012
Tlb Newsletter Juni 2012Tlb Newsletter Juni 2012
Tlb Newsletter Juni 2012
 
Ccna1 identi.es
Ccna1 identi.esCcna1 identi.es
Ccna1 identi.es
 
Narración san ignacio
Narración san ignacioNarración san ignacio
Narración san ignacio
 
Musculacion
MusculacionMusculacion
Musculacion
 
Vitaminas
VitaminasVitaminas
Vitaminas
 
Open Data und MIDATA - das Recht auf unsere Daten
Open Data und MIDATA - das Recht auf unsere DatenOpen Data und MIDATA - das Recht auf unsere Daten
Open Data und MIDATA - das Recht auf unsere Daten
 
Die Digital Concert Hall der Berliner Philharmoniker auf Amazon AWS
Die Digital Concert Hall der Berliner Philharmoniker auf Amazon AWSDie Digital Concert Hall der Berliner Philharmoniker auf Amazon AWS
Die Digital Concert Hall der Berliner Philharmoniker auf Amazon AWS
 
Klausurergebnisse In Indien
Klausurergebnisse In IndienKlausurergebnisse In Indien
Klausurergebnisse In Indien
 
Social Media 2.5 Conference | Learnings
Social Media 2.5 Conference | LearningsSocial Media 2.5 Conference | Learnings
Social Media 2.5 Conference | Learnings
 
Paradigmas emergentes copia
Paradigmas emergentes   copiaParadigmas emergentes   copia
Paradigmas emergentes copia
 
Überblick Crowdfunding - Wer investiert warum, wie viel und in welche Projekte?
Überblick Crowdfunding - Wer investiert warum, wie viel und in welche Projekte?Überblick Crowdfunding - Wer investiert warum, wie viel und in welche Projekte?
Überblick Crowdfunding - Wer investiert warum, wie viel und in welche Projekte?
 
Informatica enfermeria 1_ro (2)
Informatica enfermeria 1_ro (2)Informatica enfermeria 1_ro (2)
Informatica enfermeria 1_ro (2)
 
Deber de informática
Deber de informáticaDeber de informática
Deber de informática
 
Das gesetz der energie.
Das gesetz der energie.Das gesetz der energie.
Das gesetz der energie.
 

Ähnlich wie WCF Einführung

Lotus Foundations Branch Office
Lotus Foundations Branch OfficeLotus Foundations Branch Office
Lotus Foundations Branch OfficeAndreas Schulte
 
Office 365 administrieren per Power Shell
Office 365 administrieren per Power ShellOffice 365 administrieren per Power Shell
Office 365 administrieren per Power ShellPeter Monadjemi
 
Camunda Community Day_Wiener BPM Offensive
Camunda Community Day_Wiener BPM OffensiveCamunda Community Day_Wiener BPM Offensive
Camunda Community Day_Wiener BPM Offensivecamunda services GmbH
 
Lotus Foundations Workshop Teil1
Lotus Foundations Workshop Teil1Lotus Foundations Workshop Teil1
Lotus Foundations Workshop Teil1Andreas Schulte
 
BPMN 2.0 und die X4 BPM Suite
BPMN 2.0 und die X4 BPM SuiteBPMN 2.0 und die X4 BPM Suite
BPMN 2.0 und die X4 BPM SuiteSoftProject GmbH
 
IBM Chat/Sametime Migration (CCTY 2016 Munich)
IBM Chat/Sametime Migration (CCTY 2016 Munich)IBM Chat/Sametime Migration (CCTY 2016 Munich)
IBM Chat/Sametime Migration (CCTY 2016 Munich)Novakenstein
 
AdminCamp 2014: Client Performance - Probleme verstehen und beheben
AdminCamp 2014: Client Performance - Probleme verstehen und behebenAdminCamp 2014: Client Performance - Probleme verstehen und beheben
AdminCamp 2014: Client Performance - Probleme verstehen und behebenpanagenda
 
OSMC 2016 - Hello Redfish, Goodbye IPMI - The future of Hardware Monitoring
OSMC 2016 - Hello Redfish, Goodbye IPMI - The future of Hardware MonitoringOSMC 2016 - Hello Redfish, Goodbye IPMI - The future of Hardware Monitoring
OSMC 2016 - Hello Redfish, Goodbye IPMI - The future of Hardware MonitoringNETWAYS
 
OSMC 2016 | Hello Redfish, goodbye IPMI - Die Zukunft des Hardware-Monitorings
OSMC 2016 | Hello Redfish, goodbye IPMI - Die Zukunft des Hardware-MonitoringsOSMC 2016 | Hello Redfish, goodbye IPMI - Die Zukunft des Hardware-Monitorings
OSMC 2016 | Hello Redfish, goodbye IPMI - Die Zukunft des Hardware-MonitoringsNETWAYS
 
Webinar SharePoint auf AWS
Webinar SharePoint auf AWSWebinar SharePoint auf AWS
Webinar SharePoint auf AWSAWS Germany
 
Grundlagen puppet
Grundlagen puppetGrundlagen puppet
Grundlagen puppetinovex GmbH
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersUlrich Krause
 
Continuous Delivery as a Way of Life
Continuous Delivery as a Way of LifeContinuous Delivery as a Way of Life
Continuous Delivery as a Way of LifeKremer Consulting
 
Sap hcm reportingtool zur erstellung von queries in nur 10 minuten (query man...
Sap hcm reportingtool zur erstellung von queries in nur 10 minuten (query man...Sap hcm reportingtool zur erstellung von queries in nur 10 minuten (query man...
Sap hcm reportingtool zur erstellung von queries in nur 10 minuten (query man...EPI_USE_Labs_Germany
 
Optimiertes Lizenzmanagement für das Rechenzentrum
Optimiertes Lizenzmanagement für das RechenzentrumOptimiertes Lizenzmanagement für das Rechenzentrum
Optimiertes Lizenzmanagement für das RechenzentrumFlexera
 
Webservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbindenWebservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbindenAptly GmbH
 
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?adesso AG
 

Ähnlich wie WCF Einführung (20)

Lotus Foundations Branch Office
Lotus Foundations Branch OfficeLotus Foundations Branch Office
Lotus Foundations Branch Office
 
NSI Autostore
NSI Autostore NSI Autostore
NSI Autostore
 
Office 365 administrieren per Power Shell
Office 365 administrieren per Power ShellOffice 365 administrieren per Power Shell
Office 365 administrieren per Power Shell
 
Camunda Community Day_Wiener BPM Offensive
Camunda Community Day_Wiener BPM OffensiveCamunda Community Day_Wiener BPM Offensive
Camunda Community Day_Wiener BPM Offensive
 
Lotus Foundations Workshop Teil1
Lotus Foundations Workshop Teil1Lotus Foundations Workshop Teil1
Lotus Foundations Workshop Teil1
 
BPMN 2.0 und die X4 BPM Suite
BPMN 2.0 und die X4 BPM SuiteBPMN 2.0 und die X4 BPM Suite
BPMN 2.0 und die X4 BPM Suite
 
IBM Chat/Sametime Migration (CCTY 2016 Munich)
IBM Chat/Sametime Migration (CCTY 2016 Munich)IBM Chat/Sametime Migration (CCTY 2016 Munich)
IBM Chat/Sametime Migration (CCTY 2016 Munich)
 
Lotus Foundations
Lotus FoundationsLotus Foundations
Lotus Foundations
 
AdminCamp 2014: Client Performance - Probleme verstehen und beheben
AdminCamp 2014: Client Performance - Probleme verstehen und behebenAdminCamp 2014: Client Performance - Probleme verstehen und beheben
AdminCamp 2014: Client Performance - Probleme verstehen und beheben
 
OSMC 2016 - Hello Redfish, Goodbye IPMI - The future of Hardware Monitoring
OSMC 2016 - Hello Redfish, Goodbye IPMI - The future of Hardware MonitoringOSMC 2016 - Hello Redfish, Goodbye IPMI - The future of Hardware Monitoring
OSMC 2016 - Hello Redfish, Goodbye IPMI - The future of Hardware Monitoring
 
OSMC 2016 | Hello Redfish, goodbye IPMI - Die Zukunft des Hardware-Monitorings
OSMC 2016 | Hello Redfish, goodbye IPMI - Die Zukunft des Hardware-MonitoringsOSMC 2016 | Hello Redfish, goodbye IPMI - Die Zukunft des Hardware-Monitorings
OSMC 2016 | Hello Redfish, goodbye IPMI - Die Zukunft des Hardware-Monitorings
 
Webinar SharePoint auf AWS
Webinar SharePoint auf AWSWebinar SharePoint auf AWS
Webinar SharePoint auf AWS
 
Grundlagen puppet
Grundlagen puppetGrundlagen puppet
Grundlagen puppet
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
Continuous Delivery as a Way of Life
Continuous Delivery as a Way of LifeContinuous Delivery as a Way of Life
Continuous Delivery as a Way of Life
 
Sap hcm reportingtool zur erstellung von queries in nur 10 minuten (query man...
Sap hcm reportingtool zur erstellung von queries in nur 10 minuten (query man...Sap hcm reportingtool zur erstellung von queries in nur 10 minuten (query man...
Sap hcm reportingtool zur erstellung von queries in nur 10 minuten (query man...
 
Optimiertes Lizenzmanagement für das Rechenzentrum
Optimiertes Lizenzmanagement für das RechenzentrumOptimiertes Lizenzmanagement für das Rechenzentrum
Optimiertes Lizenzmanagement für das Rechenzentrum
 
Webservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbindenWebservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbinden
 
camunda BPM launch party - 04.2013
camunda BPM launch party - 04.2013camunda BPM launch party - 04.2013
camunda BPM launch party - 04.2013
 
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
 

Mehr von Johannes Hoppe

2017 - NoSQL Vorlesung Mosbach
2017 - NoSQL Vorlesung Mosbach2017 - NoSQL Vorlesung Mosbach
2017 - NoSQL Vorlesung MosbachJohannes Hoppe
 
Einführung in Angular 2
Einführung in Angular 2Einführung in Angular 2
Einführung in Angular 2Johannes Hoppe
 
MDC kompakt 2014: Hybride Apps mit Cordova, AngularJS und Ionic
MDC kompakt 2014: Hybride Apps mit Cordova, AngularJS und IonicMDC kompakt 2014: Hybride Apps mit Cordova, AngularJS und Ionic
MDC kompakt 2014: Hybride Apps mit Cordova, AngularJS und IonicJohannes Hoppe
 
2015 02-09 - NoSQL Vorlesung Mosbach
2015 02-09 - NoSQL Vorlesung Mosbach2015 02-09 - NoSQL Vorlesung Mosbach
2015 02-09 - NoSQL Vorlesung MosbachJohannes Hoppe
 
2012-06-25 - MapReduce auf Azure
2012-06-25 - MapReduce auf Azure2012-06-25 - MapReduce auf Azure
2012-06-25 - MapReduce auf AzureJohannes Hoppe
 
2013-06-25 - HTML5 & JavaScript Security
2013-06-25 - HTML5 & JavaScript Security2013-06-25 - HTML5 & JavaScript Security
2013-06-25 - HTML5 & JavaScript SecurityJohannes Hoppe
 
2013-06-24 - Software Craftsmanship with JavaScript
2013-06-24 - Software Craftsmanship with JavaScript2013-06-24 - Software Craftsmanship with JavaScript
2013-06-24 - Software Craftsmanship with JavaScriptJohannes Hoppe
 
2013-06-15 - Software Craftsmanship mit JavaScript
2013-06-15 - Software Craftsmanship mit JavaScript2013-06-15 - Software Craftsmanship mit JavaScript
2013-06-15 - Software Craftsmanship mit JavaScriptJohannes Hoppe
 
2013 05-03 - HTML5 & JavaScript Security
2013 05-03 -  HTML5 & JavaScript Security2013 05-03 -  HTML5 & JavaScript Security
2013 05-03 - HTML5 & JavaScript SecurityJohannes Hoppe
 
2013-03-23 - NoSQL Spartakiade
2013-03-23 - NoSQL Spartakiade2013-03-23 - NoSQL Spartakiade
2013-03-23 - NoSQL SpartakiadeJohannes Hoppe
 
2013 02-26 - Software Tests with Mongo db
2013 02-26 - Software Tests with Mongo db2013 02-26 - Software Tests with Mongo db
2013 02-26 - Software Tests with Mongo dbJohannes Hoppe
 
2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best Practices
2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best Practices2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best Practices
2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best PracticesJohannes Hoppe
 
2012-10-16 - WebTechCon 2012: HTML5 & WebGL
2012-10-16 - WebTechCon 2012: HTML5 & WebGL2012-10-16 - WebTechCon 2012: HTML5 & WebGL
2012-10-16 - WebTechCon 2012: HTML5 & WebGLJohannes Hoppe
 
2012-10-12 - NoSQL in .NET - mit Redis und Mongodb
2012-10-12 - NoSQL in .NET - mit Redis und Mongodb2012-10-12 - NoSQL in .NET - mit Redis und Mongodb
2012-10-12 - NoSQL in .NET - mit Redis und MongodbJohannes Hoppe
 
2012-09-18 - HTML5 & WebGL
2012-09-18 - HTML5 & WebGL2012-09-18 - HTML5 & WebGL
2012-09-18 - HTML5 & WebGLJohannes Hoppe
 
2012-09-17 - WDC12: Node.js & MongoDB
2012-09-17 - WDC12: Node.js & MongoDB2012-09-17 - WDC12: Node.js & MongoDB
2012-09-17 - WDC12: Node.js & MongoDBJohannes Hoppe
 
2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)
2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)
2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)Johannes Hoppe
 
2012-05-14 NoSQL in .NET - mit Redis und MongoDB
2012-05-14 NoSQL in .NET - mit Redis und MongoDB2012-05-14 NoSQL in .NET - mit Redis und MongoDB
2012-05-14 NoSQL in .NET - mit Redis und MongoDBJohannes Hoppe
 
2012-05-10 - UG Karlsruhe: NoSQL in .NET - mit Redis und MongoDB
2012-05-10 - UG Karlsruhe: NoSQL in .NET - mit Redis und MongoDB2012-05-10 - UG Karlsruhe: NoSQL in .NET - mit Redis und MongoDB
2012-05-10 - UG Karlsruhe: NoSQL in .NET - mit Redis und MongoDBJohannes Hoppe
 

Mehr von Johannes Hoppe (20)

2017 - NoSQL Vorlesung Mosbach
2017 - NoSQL Vorlesung Mosbach2017 - NoSQL Vorlesung Mosbach
2017 - NoSQL Vorlesung Mosbach
 
NoSQL - Hands on
NoSQL - Hands onNoSQL - Hands on
NoSQL - Hands on
 
Einführung in Angular 2
Einführung in Angular 2Einführung in Angular 2
Einführung in Angular 2
 
MDC kompakt 2014: Hybride Apps mit Cordova, AngularJS und Ionic
MDC kompakt 2014: Hybride Apps mit Cordova, AngularJS und IonicMDC kompakt 2014: Hybride Apps mit Cordova, AngularJS und Ionic
MDC kompakt 2014: Hybride Apps mit Cordova, AngularJS und Ionic
 
2015 02-09 - NoSQL Vorlesung Mosbach
2015 02-09 - NoSQL Vorlesung Mosbach2015 02-09 - NoSQL Vorlesung Mosbach
2015 02-09 - NoSQL Vorlesung Mosbach
 
2012-06-25 - MapReduce auf Azure
2012-06-25 - MapReduce auf Azure2012-06-25 - MapReduce auf Azure
2012-06-25 - MapReduce auf Azure
 
2013-06-25 - HTML5 & JavaScript Security
2013-06-25 - HTML5 & JavaScript Security2013-06-25 - HTML5 & JavaScript Security
2013-06-25 - HTML5 & JavaScript Security
 
2013-06-24 - Software Craftsmanship with JavaScript
2013-06-24 - Software Craftsmanship with JavaScript2013-06-24 - Software Craftsmanship with JavaScript
2013-06-24 - Software Craftsmanship with JavaScript
 
2013-06-15 - Software Craftsmanship mit JavaScript
2013-06-15 - Software Craftsmanship mit JavaScript2013-06-15 - Software Craftsmanship mit JavaScript
2013-06-15 - Software Craftsmanship mit JavaScript
 
2013 05-03 - HTML5 & JavaScript Security
2013 05-03 -  HTML5 & JavaScript Security2013 05-03 -  HTML5 & JavaScript Security
2013 05-03 - HTML5 & JavaScript Security
 
2013-03-23 - NoSQL Spartakiade
2013-03-23 - NoSQL Spartakiade2013-03-23 - NoSQL Spartakiade
2013-03-23 - NoSQL Spartakiade
 
2013 02-26 - Software Tests with Mongo db
2013 02-26 - Software Tests with Mongo db2013 02-26 - Software Tests with Mongo db
2013 02-26 - Software Tests with Mongo db
 
2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best Practices
2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best Practices2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best Practices
2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best Practices
 
2012-10-16 - WebTechCon 2012: HTML5 & WebGL
2012-10-16 - WebTechCon 2012: HTML5 & WebGL2012-10-16 - WebTechCon 2012: HTML5 & WebGL
2012-10-16 - WebTechCon 2012: HTML5 & WebGL
 
2012-10-12 - NoSQL in .NET - mit Redis und Mongodb
2012-10-12 - NoSQL in .NET - mit Redis und Mongodb2012-10-12 - NoSQL in .NET - mit Redis und Mongodb
2012-10-12 - NoSQL in .NET - mit Redis und Mongodb
 
2012-09-18 - HTML5 & WebGL
2012-09-18 - HTML5 & WebGL2012-09-18 - HTML5 & WebGL
2012-09-18 - HTML5 & WebGL
 
2012-09-17 - WDC12: Node.js & MongoDB
2012-09-17 - WDC12: Node.js & MongoDB2012-09-17 - WDC12: Node.js & MongoDB
2012-09-17 - WDC12: Node.js & MongoDB
 
2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)
2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)
2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)
 
2012-05-14 NoSQL in .NET - mit Redis und MongoDB
2012-05-14 NoSQL in .NET - mit Redis und MongoDB2012-05-14 NoSQL in .NET - mit Redis und MongoDB
2012-05-14 NoSQL in .NET - mit Redis und MongoDB
 
2012-05-10 - UG Karlsruhe: NoSQL in .NET - mit Redis und MongoDB
2012-05-10 - UG Karlsruhe: NoSQL in .NET - mit Redis und MongoDB2012-05-10 - UG Karlsruhe: NoSQL in .NET - mit Redis und MongoDB
2012-05-10 - UG Karlsruhe: NoSQL in .NET - mit Redis und MongoDB
 

WCF Einführung

  • 1. Vertriebssysteme / CRM Johannes HoppeDipl. Inf. (FH) Johannes Hoppe SRH Hochschule Heidelberg Fachbereich Informatik
  • 2. Dipl. Inf. (FH) Johannes Hoppe MSP – WCF Vorlesung 25.03.2009 90 Minuten, 8 Teilnehmer
  • 3. 3 Vorlesungsinhalt Ziel des praktischen Teils: Erwerbung von Grundkenntnissen in der Anwendungsentwicklung mit der Windows Communication Foundation Vorraussetzungen • C# 3.0 / .NET 3.0 Grundkenntisse • Microsoft Visual Studio 2005 / 2008 Vertriebssysteme / CRM
  • 4. 4 Einführung Windows Communication Foundation (WCF): - Laufzeitumgebung - erlaubt es .NET CLR Typen für eine verteilte Kommunikation zu veröffentlichen (d.h. als Service zu agieren) - andere Services wie Applikations-eigene .NET CLR Typen zu konsumieren  SOAP Vertriebssysteme / CRM
  • 5. 5 Einführung Windows Communication Foundation (WCF): - Vorgänger: - Enterprise Services“ (Namespace: System.EnterpriseServices), - „.NET Remoting“ (Namespace: SystemRuntime.Remoting) - ASP.NET Web Services (Namespace: System.Web.Services) - MSMQ (Microsoft Message Queuing – Namespace: System.Messaging) - unterstützt eine Vielzahl von Protokollen und bleibt so zu älteren Systemen abwärtskompatibel! Vertriebssysteme / CRM
  • 7. 7 Endpunkte - das Prinzip des Endpunkts - Endpunkt: „Anfang oder das Ende eines Nachrichtenaustauschs zwischen zwei verteilten Anwendungen“ Vertriebssysteme / CRM
  • 8. 8 Endpunkte - Endpunkt beschreibt drei grundlegende Aspekte 1. den Ort 2. die Art und 3. den inhaltlichen Rahmen der Kommunikation Vertriebssysteme / CRM A – Address (Adresse) B – Binding (Anbindung) C – Contract (Vertrag)
  • 9. 9 Kommunikationsmuster - Auch Message Exchange Patterns, „MEP“s 1. Request-Reply 2. Einweg 3. Duplex Request-Reply Vertriebssysteme / CRM
  • 11. 11 Hosting und Instanzen Hosting: - innerhalb einer eigenen Anwendung (Self-Hosting) - Webserver „IIS“ / Service Host in einer ASP.NET Anwendung - IIS-Dienst „Windows Activation Service“ (WAS) Vertriebssysteme / CRM
  • 12. 12 Instanzen Per-Session Service: • Standardeinstellungen von WCF • Client und Server treten in eine Session (Sitzung) • Jede Sitzung verbleibt bis zum zu ihrem Ende im Arbeitsspeicher • Pro Sitzung gibt es eine spezielle Service-Instanz die sich in einem eigenen Context (Gültigkeitsbereich) befindet. [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] Vertriebssysteme / CRM
  • 13. 13 Instanzen Per-Session Service: Vertriebssysteme / CRM Hostender Prozess App Domain (~ Pseudo-Prozess) Service Host Theoretisch möglicher 2. Service Host Context Service-Instanz Context Service-Instanz Context Service-Instanz Endpunkte [ … ]
  • 14. 14 Instanzen Per-Call Service: • auf Sitzungen verzichten. • Statt der Beibehaltung der Daten im Arbeitsspeicher wird für jeden Methodenaufruf eine Service-Instanz erzeugt • Der Arbeitsspeicher wird aufgeräumt, alle normalen Member- Variablen gehen wieder verloren • Consumer merkt nichts von der verworfenen Instanz: Service Host lässt alle Verbindungen über einen Proxy bestehe  Peformance-Empfehlung [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)] Vertriebssysteme / CRM
  • 15. 15 Instanzen Per-Call Service: • auf Sitzungen verzichten. • Statt der Beibehaltung der Daten im Arbeitsspeicher wird für jeden Methodenaufruf eine Service-Instanz erzeugt • Der Arbeitsspeicher wird aufgeräumt, alle normalen Member- Variablen gehen wieder verloren • Consumer merkt nichts von der verworfenen Instanz: Service Host lässt alle Verbindungen über einen Proxy bestehe  Peformance-Empfehlung [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] Vertriebssysteme / CRM
  • 16. 16 Instanzen Per-Call Service: - parallel ablaufende Per-Call Services: [ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple)] - Vorsicht: Zugriff auf gemeinsam genutzte Variablen - Locks notwendig  Deadlocks können entstehen Vertriebssysteme / CRM
  • 17. 17 Instanzen Singleton Service: • exakt eine Service-Instanz, die für alle Anfragen verwendet wird • Bleibt bis zur Beendung des Service Host aktiv • sind prinzipiell nicht skalierbar • sollten nur in begründeten Fällen eingesetzt werden! • z.B. Windows Dienst  Tray Applikation (muss nicht skalieren) [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] Vertriebssysteme / CRM
  • 18. 18 Los geht’s! Vertriebssysteme / CRM Wir bauen uns einen Webservice mit Consumer!
  • 19. Dipl. Inf. (FH) Johannes Hoppe Vielen Dank für eure Aufmerksamkeit! ENDE