alexanderzeitler.com - Microsoft Web API – den REST macht WCF (Teil 1)









Search Preview

Microsoft Web API – den REST macht WCF (Teil 1) | Alexander Zeitler

alexanderzeitler.com

.com > alexanderzeitler.com

SEO audit: Content analysis

Language Error! No language localisation is found.
Title Microsoft Web API – den REST macht WCF (Teil 1) | Alexander Zeitler
Text / HTML ratio 59 %
Frame Excellent! The website does not use iFrame solutions.
Flash Excellent! The website does not have any flash contents.
Keywords cloud der und die das nicht mit sich im den werden auf wie Web URI zB auch des Buch für dem
Keywords consistency
Keyword Content Title Description Headings
der 29
und 23
die 22
das 15
nicht 12
mit 12
Headings
H1 H2 H3 H4 H5 H6
1 0 4 0 0 0
Images We found 4 images on this web page.

SEO Keywords (Single)

Keyword Occurrence Density
der 29 1.45 %
und 23 1.15 %
die 22 1.10 %
das 15 0.75 %
nicht 12 0.60 %
mit 12 0.60 %
sich 11 0.55 %
im 11 0.55 %
den 11 0.55 %
werden 10 0.50 %
auf 10 0.50 %
wie 9 0.45 %
Web 9 0.45 %
URI 8 0.40 %
zB 8 0.40 %
auch 8 0.40 %
des 7 0.35 %
Buch 7 0.35 %
für 7 0.35 %
dem 7 0.35 %

SEO Keywords (Two Word)

Keyword Occurrence Density
das Buch 5 0.25 %
Web API 5 0.25 %
in der 4 0.20 %
gibt es 4 0.20 %
mit der 4 0.20 %
der Web 3 0.15 %
die Ressource 3 0.15 %
als PDF 3 0.15 %
Buch nicht 2 0.10 %
a URI 2 0.10 %
in dem 2 0.10 %
nicht gefunden 2 0.10 %
des Requests 2 0.10 %
for That 2 0.10 %
URI for 2 0.10 %
Web Services 2 0.10 %
There's a 2 0.10 %
hat sich 2 0.10 %
PDF zur 2 0.10 %
zB mit 2 0.10 %

SEO Keywords (Three Word)

Keyword Occurrence Density Possible Spam
der Web API 3 0.15 % No
wie es die 2 0.10 % No
mit der Web 2 0.10 % No
There's a URI 2 0.10 % No
a URI for 2 0.10 % No
das Buch nicht 2 0.10 % No
bei einer RESTArchitektur 2 0.10 % No
PDF zur Verfügung 2 0.10 % No
als PDF zur 2 0.10 % No
URI for That 2 0.10 % No
die in der 2 0.10 % No
auf applicationpdf gesetzt 1 0.05 % No
applicationpdf gesetzt Die 1 0.05 % No
gesetzt Die URI 1 0.05 % No
Die URI für 1 0.05 % No
URI für das 1 0.05 % No
für das Buch 1 0.05 % No
das Buch bleibt 1 0.05 % No
Toggle navigation Home 1 0.05 % No
somit gleich httpmybookstorecombookRESTInPractice 1 0.05 % No

SEO Keywords (Four Word)

Keyword Occurrence Density Possible Spam
a URI for That 2 0.10 % No
als PDF zur Verfügung 2 0.10 % No
There's a URI for 2 0.10 % No
mit der Web API 2 0.10 % No
Toggle navigation Home Feed 1 0.05 % No
bleibt somit gleich httpmybookstorecombookRESTInPractice 1 0.05 % No
Header auf applicationpdf gesetzt 1 0.05 % No
auf applicationpdf gesetzt Die 1 0.05 % No
applicationpdf gesetzt Die URI 1 0.05 % No
gesetzt Die URI für 1 0.05 % No
Die URI für das 1 0.05 % No
URI für das Buch 1 0.05 % No
für das Buch bleibt 1 0.05 % No
das Buch bleibt somit 1 0.05 % No
Buch bleibt somit gleich 1 0.05 % No
gleich httpmybookstorecombookRESTInPractice Den Header 1 0.05 % No
somit gleich httpmybookstorecombookRESTInPractice Den 1 0.05 % No
im HTTP Header auf 1 0.05 % No
httpmybookstorecombookRESTInPractice Den Header wertet 1 0.05 % No
Den Header wertet der 1 0.05 % No

Internal links in - alexanderzeitler.com

Fixing Chrome 58+ [missing_subjectAltName] with openssl when using self signed certificates
Fixing Chrome 58+ [missing_subjectAltName] with openssl when using self signed certificates | Alexander Zeitler
Accessing an HTTP API running on your MacBook in a Docker container from your iPhone/iPad using dnsmasq
Accessing an HTTP API running on your MacBook in a Docker container from your iPhone/iPad using dnsmasq | Alexander Zeitler
Deploying Ubuntu Mate Desktop as a developer environment in a Azure VM
Deploying Ubuntu Mate Desktop as a developer environment in a Azure VM | Alexander Zeitler
Deploying Ubuntu Mate Desktop as a developer environment in AWS EC2
Deploying Ubuntu Mate Desktop as a developer environment in AWS EC2 | Alexander Zeitler
Debugging mocha tests in a Docker container using Visual Studio Code
Debugging mocha tests in a Docker container using Visual Studio Code | Alexander Zeitler
Debugging mocha tests with Visual Studio Code when Node.js is installed using nvm
Debugging mocha tests with Visual Studio Code when Node.js is installed using nvm | Alexander Zeitler
Debugging a ES6 Node.js application in a Docker container using Visual Studio Code
Debugging a ES6 Node.js application in a Docker container using Visual Studio Code | Alexander Zeitler
Some thoughts on Open Source Software
Some thoughts on Open Source Software | Alexander Zeitler
Resizing a VMware Workstation VM partition using GParted - get the swap partition out of my way!
Resizing a VMware Workstation VM partition using GParted - get the swap partition out of my way! | Alexander Zeitler
Workflows: using Docker Machine and Docker Compose together in development
Workflows: using Docker Machine and Docker Compose together in development | Alexander Zeitler
Chrome crashes on Ubuntu in VMware Workstation
Chrome crashes on Ubuntu in VMware Workstation | Alexander Zeitler
Rename Visual Studio project including files, folders and namespaces
Rename Visual Studio project including files, folders and namespaces | Alexander Zeitler
A lap around AWS and docker-machine
A lap around AWS and docker-machine | Alexander Zeitler
Integration-testing ASP.NET 5 / MVC 6 Controllers on DNX Beta 4
Integration-testing ASP.NET 5 / MVC 6 Controllers on DNX Beta 4 | Alexander Zeitler
Deploying a ASP.NET MVC 6 API as Azure API App in Azure App Services
Deploying a ASP.NET MVC 6 API as Azure API App in Azure App Services | Alexander Zeitler
lowerCamelCase JSON with ASP.NET MVC 6
lowerCamelCase JSON with ASP.NET MVC 6 | Alexander Zeitler
Running ASP.NET 5 Beta 4 in Docker with DNX runtime #aspnet5 #docker
Running ASP.NET 5 Beta 4 in Docker with DNX runtime #aspnet5 #docker | Alexander Zeitler
Stop complaining or improve yourself
Stop complaining or improve yourself | Alexander Zeitler
#NodeJS / #ExpressJS: Adding routes dynamically at runtime
#NodeJS / #ExpressJS: Adding routes dynamically at runtime | Alexander Zeitler
mongoose: Referencing schema in properties or arrays
mongoose: Referencing schema in properties or arrays | Alexander Zeitler
MongoDB development environment journal size management using mongoctl
MongoDB development environment journal size management using mongoctl | Alexander Zeitler
Farewell...
Farewell... | Alexander Zeitler
Inspecting AngularJS $scope using Firebug and Chrome Developer Tools
Inspecting AngularJS $scope using Firebug and Chrome Developer Tools | Alexander Zeitler
Useful @Brackets extensions for Web Developers
Useful @Brackets extensions for Web Developers | Alexander Zeitler
.NET User Group Karlsruhe: StreamInsight: Complex Event Processing by Microsoft
.NET User Group Karlsruhe: StreamInsight: Complex Event Processing by Microsoft | Alexander Zeitler
“Commit all must be called when a managed buffer has focus” in Microsoft SQL Server Data Tools
“Commit all must be called when a managed buffer has focus” in Microsoft SQL Server Data Tools | Alexander Zeitler
.NET User Group Karlsruhe: Git
.NET User Group Karlsruhe: Git | Alexander Zeitler
Open Source Windows 8 App: Sprudelsuche
Open Source Windows 8 App: Sprudelsuche | Alexander Zeitler
Open Source– Scheissegal?
Open Source– Scheissegal? | Alexander Zeitler
Lowercase JSON with ASP.NET Web API
Lowercase JSON with ASP.NET Web API | Alexander Zeitler
.NET Usergroup Karlsruhe: Think Big – Entwicklung skalierbarer Anwendungen mit Windows Azure
.NET Usergroup Karlsruhe: Think Big – Entwicklung skalierbarer Anwendungen mit Windows Azure | Alexander Zeitler
ASP.NET Web API and RavenDb
ASP.NET Web API and RavenDb | Alexander Zeitler
ASP.NET Web API Round-Up Slides
ASP.NET Web API Round-Up Slides | Alexander Zeitler
ASP.NET MVC 4 public beta including ASP.NET Web API
ASP.NET MVC 4 public beta including ASP.NET Web API | Alexander Zeitler
Hash Bang Urls in Single Page Applications mit ASP.NET MVC
Hash Bang Urls in Single Page Applications mit ASP.NET MVC | Alexander Zeitler
.NET User Group Karlsruhe: Know your Tools
.NET User Group Karlsruhe: Know your Tools | Alexander Zeitler
Git flow init liefert: flags: FATAL unable to determine getopt version unter Cygwin
Git flow init liefert: flags: FATAL unable to determine getopt version unter Cygwin | Alexander Zeitler
Using JsonValue and JsonArray in WCF Web API
Using JsonValue and JsonArray in WCF Web API | Alexander Zeitler
.NET User Group Karlsruhe: PowerShell 3.. 2.. 1..
.NET User Group Karlsruhe: PowerShell 3.. 2.. 1.. | Alexander Zeitler
What’s new in WCF Web API Preview 5 – introducing the test client
What’s new in WCF Web API Preview 5 – introducing the test client | Alexander Zeitler
Externe Templates in KnockoutJS laden
Externe Templates in KnockoutJS laden | Alexander Zeitler
WCF Web API: Role based access control with basic authentication
WCF Web API: Role based access control with basic authentication | Alexander Zeitler
.NET User Group Karlsruhe: Produce Cleaner Code with Aspect-Oriented Programming (AOP)
.NET User Group Karlsruhe: Produce Cleaner Code with Aspect-Oriented Programming (AOP) | Alexander Zeitler
REST using the WCF Web API – POST it!
REST using the WCF Web API – POST it! | Alexander Zeitler
REST using the WCF Web API – getting more RESTful responses (Part 5)
REST using the WCF Web API – getting more RESTful responses (Part 5) | Alexander Zeitler
TypeLoadException when mocking COM objects - Could not load type … from assembly. The type is marked…
TypeLoadException when mocking COM objects - Could not load type … from assembly. The type is marked… | Alexander Zeitler
REST using the WCF Web API – getting RESTful the BDD way (Part 4)
REST using the WCF Web API – getting RESTful the BDD way (Part 4) | Alexander Zeitler
REST using the WCF Web API – refactoring to IoC style (Part 3)
REST using the WCF Web API – refactoring to IoC style (Part 3) | Alexander Zeitler
REST using the WCF Web API – Basics (Part2)
REST using the WCF Web API – Basics (Part2) | Alexander Zeitler
Microsoft Web API – the REST is done by WCF (Part 1)
Microsoft Web API – the REST is done by WCF (Part 1) | Alexander Zeitler
Microsoft Web API – den REST macht WCF (Teil 1)
Microsoft Web API – den REST macht WCF (Teil 1) | Alexander Zeitler
.NET User Group Karlsruhe: Flexible Softwarearchitekturen mit Inversion of Control (IoC)
.NET User Group Karlsruhe: Flexible Softwarearchitekturen mit Inversion of Control (IoC) | Alexander Zeitler
machine.fakes ReSharper Templates
machine.fakes ReSharper Templates | Alexander Zeitler
CreateCert.cmd aus dem Windows Azure Platform Training Kit funktioniert nicht
CreateCert.cmd aus dem Windows Azure Platform Training Kit funktioniert nicht | Alexander Zeitler
JSON via jQuery direkt an einen ASP.NET MVC 3 Controller senden
JSON via jQuery direkt an einen ASP.NET MVC 3 Controller senden | Alexander Zeitler
POSTing Json data using the HttpClient from WCF Web API
POSTing Json data using the HttpClient from WCF Web API | Alexander Zeitler
Using the new WCF Web APIs HttpClient with ASP.NET Forms Authentication
Using the new WCF Web APIs HttpClient with ASP.NET Forms Authentication | Alexander Zeitler
Keyboard Jedi unter x64
Keyboard Jedi unter x64 | Alexander Zeitler
Using WCF Web APIs / WCF Http with ASP.NET Forms Authentication
Using WCF Web APIs / WCF Http with ASP.NET Forms Authentication | Alexander Zeitler
WCF Web APIs / WCF Http mit ASP.NET Forms Authentication verwenden
WCF Web APIs / WCF Http mit ASP.NET Forms Authentication verwenden | Alexander Zeitler
ILSpy – Open Source .NET Assembly Browser und Decompiler
ILSpy – Open Source .NET Assembly Browser und Decompiler | Alexander Zeitler

Alexanderzeitler.com Spined HTML


Microsoft Web API – den REST macht WCF (Teil 1) | Alexander Zeitler Toggle navigation Home Feed Microsoft Web API – den REST macht WCF (Teil 1) Written on April 15, 2011 SOA -- So Oder Anders? (c) geek&poke Wenn heute über SOA gesprochen wird, denken viele Entwickler nach wie vor an Web Services (im Falle von .NET sind dies entweder ASP.NET Web Services oder die Windows Communication Foundation, kurz WCF), welche SOAP mittels XML und anderen Standards realisiert und so Remote Procedure Calls (sprich Aufrufe von Funktionen auf fremden Rechnern) ermöglichen. Da sich die fremden Systeme, auf denen die Dienste bereitgestellten werden, nicht selten in fremden Netzen oder gar im Internet befinden, bestand natürlich schnell der Bedarf für Authentifizierung und Authorisierung, welche z.B. mit der SOAP-Erweiterung WS-Security ermöglicht wurde. Natürlich wollte man sich auch auf die zuverlässige Zustellung der SOAP-Nachrichten verlassen können und schuf eine weitere Erweiterung namens WS-Reliability. Damit man die SOAP-Messages beschreiben konnte wurde WSDL ins Leben gerufen. Wie man sieht, ein ziemlicher Aufwand, um Daten zwischen zwei Endpunkten im Netz austauschen zu können. Die Aufzählung der Erweiterungen und Formate ist dabei bei weitem nicht vollständig, ganz zu schweigen von den Problemen, die in der Praxis zu lösen sind. Und jetzt: der REST Trotz der o.g. Erweiterungen hat man mit SOAP nicht wirklich das Gefühl, elegant und effezient zu arbeiten und SOA, so behaupte ich, hat sich nicht in dem Maße durchgesetzt, wie es die Buzzword-Bingo-Szene aller Orten Glauben machen möchte. Auf der anderen Seite gibt es seit Jahren das Internet, das sich rasent schnell verbreitet hat und praktisch in allen Bereiche unseres Lebens eindringt. Nun wäre das Internet sicher nicht so erfolgreich gewesen, wenn es langsam, unzuverlässig und schwer zu bedienen gewesen wäre. Das Internet, wie es die meißten Anwender im Browser Ihrer Wahl verwenden, basiert auf dem HTTP-Protokoll, das die Funktionen des Webs über die in der Spezifikation festgelegten HTTP-Operationen realisiert. Wer sich mit Web-Entwicklung befasst, ist sicher bereits mit HTTP-Verben (oft auch Methoden genannt) wie GET oder POST konfrontiert gewesen. Neben diesen beiden Verben gibt es noch andere, allerdings eher unbekannte Verben in der HTTP-Spezifikation wie z.B. PUT oder DELETE. Außerdem arbeitet HTTP mit sogenannten Status-Codes, die den Browser (z.B. mit dem Wert 200 für OK) und manchmal auch den Anwender (z.B. 404 Seite nicht gefunden) direkt über den Status des aktuellen Requests informieren. Basierend auf diesen und einigen weiteren Elementen der HTTP-Spezifikation verfasste Roy Fielding bereits im Jahr 2000 seine Dissertation, in welcher er eine neue Architektur für verteilte Anwendungen unter Verwendung von Webtechnologien beschrieb: Representational State Transfer, kurz REST. Dabei sei hier bereits klargestellt, dass REST-basierte Architekturen nicht zwingend im Web verwendet werden müssen, sondern nur die hierfür entwickelten Technologien und Prinzipien anwenden. There's a URI for That Im Mittelpunkt einer REST-basierten Architektur stehen Ressourcen, welche jeweils über eine eindeutige URI angesprochen werden können, wie z.B.: http://mybookstore.com/book/RESTInPractice Damit ist das Buch "Rest in Practice" für jeglichen Client (ggf. nach Authentifizierung) verfügbar, sofern er diese URI kennt. Eine Auflistung aller Bücher würde sich bei einer REST-Architektur z.B. hier finden: http://mybookstore.com/books/ Dabei ist derzeit weder klar, welches Format sich hinter den beiden URIs verbirgt, noch welche HTTP-Methode verwendet wird, um die URI aufzurufen. Auch hierzu gibt es klare Vorstellungen bei einer REST-Architektur: Eine URI, unter der Daten gelesen werden können, sollte immer per GET aufgerufen werden. Dies bedingt allerdings auch, dass der Aufruf die zugrunde liegenden Daten niemals verändert, sodass das die Operation beliebig oft aufgerufen werden kann und immer die gleichen Daten liefert (sofern diese nicht durch andere, hierfür vorgesehene Methoden, geändert wurden). Das zurückgegebene Format der aufgerufenen Methode kann der Client selbst bestimmen (sofern die Ressource mehrere Formate bereitstellt). Dies geschieht allerdings nicht, wie vielleicht zunächst vermutet über http://mybookstore.com/book/RESTInPractice/PDF. Vielmehr werden die HTTP-Header des Requests entsprechend konfiguriert. Um nun das o.g. Buch im PDF-Format unter der bereits genannten URI anzufordern, wird der Accept-Type im HTTP Header auf "application/pdf" gesetzt. Die URI für das Buch bleibt somit gleich: http://mybookstore.com/book/RESTInPractice Den Header wertet der Server entsprechend aus und die Ressource liefert, sofern das Buch als PDF zur Verfügung steht, dieses im Response als PDF aus. Steht das Buch nicht als PDF zur Verfügung, kann dies ebenfalls mit HTTP-Boardmitteln im Reponse angezeigt werden: Über den Status-Code im HTTP-Header (z.B. 404, wenn das Buch nicht gefunden wurden) des Response lassen sich praktisch alle Zustände einer Resource, des Requests oder gar des gesamten Servers, auf dem die Ressource gehostet wird, darstellen. Weitere Details und konkrete Implementierunen für .NET und JAVA-basierte REST-Services und Clients finden sich in dem Buch "REST in Practice", das ich jedem, der sich mit dem Thema befassen will oder muss (darf?), empfehlen kann. Microsoft und REST Natürlich gibt es auch von Microsoft einen Lösungsansatz für REST Architekturen. Bereits seit einigen Jahren existiert das WCF Starter Kit, welches allerdings nicht wirklich in die Ruhmeshallen von Microsoft gehört. Da REST-Architekturen heutzutage immer wichtiger werden und natürlich auch .NET-Entwickler solche entwickeln wollen oder müssen, hat sich Microsoft nun mit der WCF Web API des Themas nochmals angenommen und wie ich finde, nun eine wirklich gelungene Implementierung auf Basis der WCF auf den Weg gebracht. Der derzeitige Stand ist unter http://wcf.codeplex.com abrufbar. Glenn Block, der Verantwortliche hinter dem Projekt, wird auf der Mix 2011 in der Session "WCF Web APIs: "There's a URI for That" den aktuellen Entwicklungsstand mit Beispielen sowie weiteren Details zur Roadmap etc. präsentieren. Da ich mich bereits seit einiger Zeit mit der Web API beschäftige, werde ich hier in den nächsten Tagen mehrere Postings zum Umgang mit der Web API bereitstellen. Dabei kommen in den Beispielen neben der Web API auch das BDD-Framework machine.specifications/machine.fakes sowie der IoC-Container LightCore zum Einsatz. Es wird z.B. die Anpassung und testgetriebene Entwicklung der MIX-Beispiele gezeigt. Außerdem werden auch HTTP-Methoden wie PUT und DELETE behandelt und weitere Vorteile REST-basierter Architekturen vorgestellt. .aspx&bgcolor=3169AD&fgcolor=FFFFFF&border=000000&cbgcolor=D4E1ED&cfgcolor=000000) Please enable JavaScript to view the comments powered by Disqus. Copyright © Alexander Zeitler 2003 - 2016 | Impressum