Upload
code-mitte-gmbh
View
508
Download
3
Embed Size (px)
DESCRIPTION
Vortrag von Johannes Heinen, code mitte GmbH, beim code force Meet-up vom 11. Juni 2012.
Citation preview
Webservice APIWebportale mit Force.com verbinden. PHP 5, Symfony 2 & SOAP. Johannes Heinen, code mitte GmbH
Über mich● Webentwickler bei code mitte
○ PHP, Javascript○ Apex & Visualforce
● Jahrelange Erfahrung in Konzeption, Design &
Implementierung von Websites, -Portalen, -Shops,-Katalogen, -Applikationen, -[...]
● Seit einskommafünf Jahren in der Salesforce-Cloud
Force.com Platform● The good, ...
○ Cloudbasiert: "No Software" (in the meaning of "to install")
○ Ein unkomplizierter Stack für "alles" (Ausgabe, Geschäftslogik, Persistenz)
○ Sofort einsatzbereit (theoretisch)
● ... the bad, ...○ Layout/GUI components, "Rahmenwerk"○ "Intranet" vs. "Internet", CRM Platform
vs. Website○ Erst wachsende Erfahrung mit "großen"
Projekten (Test-Fixtures, Deployment <3)
○ "No Software"?Photo: salesforce.com
... the ugly
Abbildung: Cal Evans [https://secure.flickr.com/photos/calevans]
PHP● Bewährte, stabile
Entwicklungsplattform● Wartungsarm● Kostengünstig● Geringe
Entwicklungszeiten● Verfügbare Experten,
verfügbares Expertenwissen
● Community● "Agil"
● Software! (und HW)
● (Fast) keine Standardisierung => SPL vs. JSR
● (Fast) Keine Interfaces/Contracts => Funktionen() vs. API
● Vorsicht vor dem Spaghetticode!
● Nicht "Enterprise" genug?
PHP vs. Apex/VF● Keine Einschränkungen durch standardisierte GUI-
Components oder das "Salesforce-Layout"
● Beliebige Ausgabe○ HTML(5), JSON, XML○ PDF○ JPEG, PNG, GIF○ Flash○ Video
● Nahezu jedes Design kann umgesetzt, jedes Frontend
"bedient" werden
● "Web application framework"○ lose gekoppelt, komponentenbasiert○ stabil, testabgedeckt○ große Community○ international be- und anerkannt○ implementiert viele Standards und best practices anderer
Sprachen und Frameworks● "State-Of-The-Art"
○ PHP 5.3.x● Reduziert oder verbirgt PHP-Nachteile und
StolpersteineMacht die strukturierte, wartbare und effiziente Entwicklung großer Softwareprojekte auf der PHP-Plattform möglich (bzw. reduziert gelegentlich dabei auftretende Schmerzen auf ein Minimum)
Symfony 2
PHP & Force.com● Force.com-Toolkit für PHP (5.3)
○ via PHP:SOAP■ Webservice API Partner/Enterprise■ Custom Webservices
● Das "M" in MVC
○ SOQL-Queries: query(), queryMore(), retrieve(), ...○ DML-Statements
■ create(), update(), upsert()■ Prepared Statements!
Symfony 2 & Force.comMittels zur Laufzeit zugänglichen Metainformationen ("Reflection")
● describeLayout()● describeSobject()
können Symfony-Formtypes und Validatoren generiert werden, zum Beispiel
● (HTML 5) Formtypes○ Date, Datetime, (dependent) Picklist, Email, Phone, Required
fields, minlength, maxlength-Attributes, etc.● Validators
○ "Contains-Validator" (Picklist)○ Complex (Custom)-Validator (Address Validation, Serialnumber
validity check)
Symfony 2 & Force.com (2)Vorteile:● I18n auf der Plattform (Field-Labels)● Minimaler Pflegeaufwand, bspw. bei Picklist-Values● "Rapid" form development● Absolute Flexibilität bei der Weiterverarbeitung der
gesammelten und validierten POST-Daten.● Einfaches, automatisiertes Rendern ganzer Formulare
auf Basis von describeLayout()-Rastern (foreach row in rows, foreach col in row, [...])
Nachteilig ist ein gewisser overhead an SOAP-Calls und Metadaten-Aggregierung.
=> Caching
Symfony 2 & Force.com (3)Wiederverwendbares Symfony-Modul ("CodemitteForceBundle")
● Form-Extensions (type "sfdc_field")○ Ein Form-Type für "alles"
● Twig-Template-Extensions○ Form-Helptexts○ Form-labels werden auf der Force.com Plattform übersetzt, no
need 4 I18n○ Form-Templates (für bspw. Dependent-Picklists oder Phone-
Type)● Validation-Extension
○ Still under heavy development● Pagelayout2Form-Renderer
○ Still under heavy development
Und nun ...... ein kurzer Blick auf das neue, Force.com & PHP-getriebene Portal
appletini.com
Photo: Sherry Elliott
Danke für die Aufmerksamkeit.