2007 - Basta!: Nach soa kommt soc

Click here to load reader

  • date post

    12-Apr-2017
  • Category

    Software

  • view

    151
  • download

    0

Embed Size (px)

Transcript of 2007 - Basta!: Nach soa kommt soc

Nach SOA kommt SOC

Nach SOA kommt SOCService-Orientierung auf dem ClientSOFTWARE://DEVELOPMENT + ARCHITECTURE + CONSULTING

Daniel Fisher | devcoach

devcoachMichael Willers und Daniel Fisher+10 Jahre Erfahrung in ProjektenDevelopmentArchitectureConsultingEchte Projekte Nicht blo coole Demos!Tiefgehendes technisches Wissen und Praxis-Know-how Service-OrientierungWebDatenzugriffSecurity

Speaker | Topic [edit in Master view]2

devcoach Cont.Architektur BeratungProjektbegleitung von der Analyse bis zum Roll-out, vom Back-End zum UIScalability & Performance Integration & InteroperabilityMaintainability & DeploymentProof-of-Concepts und Prototyping/Individual bitsCoachingVor Ort, am Telefon, per Mail, in Video-Konferenzen oder ber Remote DesktopKnowledge transferQ&ASpeaker | Topic [edit in Master view]3

Nach SOA kommt SOCService-Orientierung auf dem ClientSpeaker | Topic [edit in Master view]4

SOA? Aber nicht auf dem Server?Ja, da war doch noch wasClients die SO-Services nutzen, gehren zur Architektur dazu und mssen/sollten wie die Services gewissen Implikationen folgenGenauso, Wie auf dem Service Back-End-Logik anders verteilt wirdDie Rolle der Datenbank sich ndert

SOAAutonomFormale KommunikationDisconnectedAsynchron

auch auf dem Client!

AnforderungenFront-Ends fr SO-Systeme

Input HandlingDaten mssen gesammelt werden, bevor sie verschickt werdenWie im wahren LebenWenn Sie sowas haben ;-)Beispiel: Steuererklrung

Daten mssen zwischengelagert werden, wenn das Back-End nicht erreichbar istOffline Fhigkeit

Multiple Front End TypesASP.NETWindows FormsWPFSilverlight

DWXLDPENur ein Scherz Aber wer wei schon, was uns morgen beglckt

TestabilityTest sind wichtig! Um so wichtiger mit jedem zustzlichenFront-End!

Fr Sie nicht interessant?Und wie garantieren Sie Ihre Code Qualitt?

MaintainabilityBusiness Logic im UI == Spaghetti CodeEnge Koppelung (Tightly Coupled)Un-testableUn-maintainableUn-extensibleUn-sexy

User Interface PAtternsEine Lsung?

UX Patterns?Definierter Weg Oberflchen zu schreibenLose Koppelung zwischen UI und LogikErsetzbarkeit der PrsentationsschichtTestbarkeit der Logik und UI-InteraktionWeniger Code?

Was der Martin sagtThe Model-View-Controller metaphor is a way to design and implement interactive application software that takes advantage of modularity, both to help the conceptual development of the applications, and to allow pieces already developed for one application to be reused in a new application.

The metaphor imposes a separation of behavior between the actual model of the application domain, the views used for displaying the state of the model, and the editing or control of the model and views.

MVC/PModel ist die fachliche Domne (Business-Objekte). Oft auch die Komponente des Systems, welche die Arbeit verrichtet.View ist die Oberflche. Eng assoziiert mit einem Controller und exakt einem Model, wobei ein Model mehrere Views und Controller haben kann.Controller/Presenter definieren die Schnittstelle zwischen View und Model.

Nochmal der Martin Many UI frameworks provide the ability to easily map between the view and model, often using some kind of Data Binding. These approaches are very effective in allowing you to declaratively set up a relationship between elements in the view and model. Usually, however, there are more complex relationships which require you to have more complex view logic. This logic can be hard to manage, and in particular hard to test, while embedded in the view.

MVCControlerModelView(Interface)

View(Implementation)Load DataGet DataSet DataAsk to save DataSave DataBubble ChangeEvent

MVPPresenterModelView(Interface)

View(Implementation)Load DataUpdate ViewBubble ChangeEventSave Data

Page flowPage flow controlMulti-page-formsNeested flowsPaused flows

IKEA bitte nur fr Mbel

StateJa Was ist eigentlich State?Nein, nicht der Session-State von ASP.NET

User Interface PAtterns

Model View Controller/PresenterPresenter

NavigationService

ModelService

StateService

ModelViewEvents (Data and Commands)ControllerData

ModelBusiness-ObjekteIm schlimmsten Fall auch ein DataSetberflssiger Verbrauch von CPU/Speicher66% langsamer als Business-Objekt und DataReader

ViewEnthalten UI (Controls)Enthalten UI-Logik

View Cont.Ermglichen ber Bind-Methoden DatenbindungBusiness-Objekt-Eigenschaften/KollektionenBenachrichtigen Abonnenten per Events ber AktionenWindows AnwendungenWeb Anwendungen (Postbacks)Und was ist mit AJAX?

ControllerInitialisierungDurch die AnwendungNicht durch das View!Deswegen der Name Controller!

Web AnwendungLebenszyklus eines RequestHTTPHandler Helper to catch URLsWindows AnwendungLebenszyklus des ProzessesHook-up/Navigation Service

Controller Cont.Enthlt die Business-LogikUse CaseLdt Model(s) und bindet diese(s) an View(s)Bind-Methode mit Kollektion/Business-Objekt-EigenschaftenAbonniert Ereignisse der View-DefinitionPersistenz

Model ServiceModelService

ModelProvides access to models

Model ServiceZugriffs/Persistenz API fr ModelDatabaseSQL ServerWeb ServiceWCFNHibernate

Navigation ServicePage Flow Provider

NavigationService

Page FlowInstance StoreProvides navigation methods to navigate between views onpage flow instances.Loads and provides access to page flowsView ProviderView StoreLoads and provides access toviews

Navigation ServiceLiest Liste der ViewsWeb Form URLsFormular TypenVerbindet PageFlow eines Providers mit ViewsNavigation APIWeb/WinProvider?

State ServiceStateService

State ProviderState StoreLoads and provides access to state objectsProvides access to the state data.

State ServiceSpeichert *unfertiges* Model auf dem ClientBis alle Daten fr das Model gesammelt sindBeispiel: SteuereklrungAPI fr Page-Flow-State (Benutzer/Instanz)API fr Cross-Page-Flow DatentransferProviderIn-MemorySQL-Server

Page FlowPlattform-unabhngige DefinitionGraphen mit Namen der ViewsKeine Typen/URLs!Einzelne Views in n Page-FlowsPage-Flow A und B benutzen EntryForm1Parallele Page-Flows (unfinished tasks)GUID identifiziert InstanzPage Flow Store ProviderXML, Database, Windows Workflow Foundation

ZusammenspielAutonome KomponentenSpeaker | Topic [edit in Master view]35

Loose koppelungViewsKeine Referenz zum ControllerSollte auch ohne Pattern laufen (UI-Logik) ControllerSteuert View/Model-Interaktion und Page-Flow-NavigationModelDomain Modell/Business-ObjekteNur Controller/Presenter bekanntPresenterThe Glue In Between

Model Editing MessagesBusiness ObjectsINotifyChangedPropertyDataSets*GetChanges()

* Wer sich schon Gedanken um eine saubere Architektur macht sollte wissen warum er das DataSet nicht verwenden sollte

Wohin mit der Logik?Model: Domnenspezifisches VerhaltenController: Business-LogikPersistenzViewOberflchen-LogikBeispiel: Steuerelement-Hoover, Expand, Collaps, Sort, Popup

CopyrightCopyright 2007, all rights reserved

devcoachpassstrae 10952070 aachengermany

[email protected]

The presentation content is provided for your personal information only. Any commercial or non-commercial use of the presentation in full or of any text or graphics requires a license from copyright owner.

This presentation is protected by the German Copyright Act, EU copyright regulations and international treaties.