Creating ServicesDefine Service contracts.
May include: change the namespace of the service; expose service metadata; create service callbacks; create and specify fault contracts; select XML serialization (data contract serializer versus XML serializer); define service contract hierarchy; ATOM/RSS syndication Define Data contracts.
May include: change the namespace of the data contract; versioning; manage data contract hierarchy; use of XML serialization attributes; use of data contract serializer; use of required and order attributes on data members Define Operation contracts.
May include: overloaded; configure to be consumed by an HTTP verb; customize the URI for the operation; message exchange patterns (one-way, request-reply, duplex); change SOAP action name; manage streaming Define Message contracts.
May include: body; headers; message contract versus inject message inspector; specify protection levels on different message parts; encoding and format of message
Note: NOT data contracts Process generic messages.
May include: create a catch-all contract; write the message and read the message; work with properties; work with headers Exposing and Deploying ServicesCreate and configure service endpoints.
May include: by using declarative methods; by using the programming model; use different built-in bindings; expose the same service by using multiple bindings; expose service metadata; customize bindings with specific parameters (streaming, time-to-live (TTL), dead letter queues); create custom bindings by composing different binding elements (transaction flow, security, reliability, composite duplex, encoding, transport) Manage consistency between life cycle, sessions, concurrency, and bindings.
May include: MSMQ and one-way services; duplex contract and dual bindings; consistency between transports and encoders Host a service in a managed application.
May include: host in a console app, Windows service, or in process; configure the base address of the host Host a service on a Web server.
May include: host with Windows Activation Services (WAS), in an ASPX application; host by using *.svc file; point to service implementation; svc extension registration tool; deploy a service to a medium-trust environment; create a service host factory Create custom behaviors.
May include: endpoint; operation; service; implement configuration support for custom behaviors; implement attribute support; add a custom error handler to the service side May include but is not limited to: StyleSheet controls; List controls; Container controls Securing ServicesImplement transport-level security.
May include: select appropriate binding; use Windows credentials; configure certificates; use username/password credentials over HTTPS; when to implement transport security versus message security versus both versus mixed Implement message-level security. May include: select appropriate binding; use Windows credentials; configure certificates; use username/password credentials over HTTPS; when to implement message security versus transport security versus both versus mixed Authenticate clients.
May include: federated authentication; membership providers; custom username/password validator; Windows authentication; X.509 certificates; extract caller identity on the service side; cardspace Authorize clients.
May include: role-based authorization; role providers; Windows groups; access control checks; authorize with a principal (principal permission attribute); claims-based authorization; use authorization policies Impersonate clients.
May include: Internet Information Services (IIS); configure impersonation level; declarative versus programmatic; operation-based versus service-based Envisioning and Designing an ApplicationAnalyze and refine the logical design of the application. This objective may include but is not limited to: clarify logical design; evaluate the layers; evaluate application workflow; evaluate data flow diagrams; evaluate performance; evaluate maintainability; evaluate extensibility; evaluate availability; evaluate design against use cases; evaluate recoverability; evaluate data integrity Analyze and refine the physical design of the application. This objective may include but is not limited to: evaluate the tiers; evaluate migration strategy; clarify physical design; evaluate component specification; evaluate performance; evaluate maintainability; evaluate extensibility; evaluate scalability; evaluate availability; evaluate recoverability; evaluate data integrity Analyze and refine the database design of the application. This objective may include but is not limited to: evaluate stored procedure requirements; evaluate schema requirements; identify whether triggers are required; identify required data types Analyze and refine the integration strategy. This objective may include but is not limited to: evaluate integration of application with other systems; internal vs. external integration; enable future integration with other systems; evaluate WCF as an integration component Identify the appropriate technology. This objective may include but is not limited to: identify the technology and format for transport; identify the technology and format for messages; identify the technology and format for required client interoperability; choose a platform—Windows vs. Web; choose a communication technology—Windows Communication Foundation (WCF), Web services, Remoting, message queueing; define a component communication strategy; recommend build vs. buy; choose a platform—Windows Presentation Foundation (WPF), ASP.NET, AJAX, Windows Forms, Windows service Analyze technical feasibility. This objective may include but is not limited to: develop a proof of concept; perform a technical risk assessment; recommend changes to the design to meet the same technical goals; analyze feasibility of design in planned environment; determine whether the proposed design could integrate with other systems by using WCF Analyze security requirements. This objective may include but is not limited to: recommend an authentication method; recommend an authorization method; recommend a secure communication method Designing and Developing an Application FrameworkChoose an appropriate implementation approach for the application design logic. This objective may include but is not limited to: choose data storage mechanisms; choose data flow structure; choose decision flow structure; state management techniques; security implementation; finalize component specification Define the interaction between framework components. This objective may include but is not limited to: determine types of clients that will access the application; define data APIs, security APIs, abstract classes, class interfaces, and data contracts; map data to object model; messaging and transport methods such as WCF, Remoting, Web services, MSMQ, Enterprise Services Define a validation strategy. This objective may include but is not limited to: define where in the framework each type of validation will happen; choose a validation method Define an event-logging strategy.
This objective may include but is not limited to: choose a storage mechanism for logged events; choose a systemwide event logging method; decide logging levels based on severity or priority; define a reporting strategy Define a monitoring strategy for specific characteristics or aspects of an application. This objective may include but is not limited to: decide whether to monitor data; decide which characteristics to monitor; choose event monitoring mechanisms; decide monitoring levels based on requirements; choose a system-wide monitoring method from the available monitoring mechanisms; define a reporting strategy Designing Application ComponentsCreate the high-level design of a component. This objective may include but is not limited to: establish the life cycle of a component; define user interface for each component; define interoperability requirements; identify and extract reusable components; document the design of a component by using pseudo code, class diagrams, sequence diagrams, activity diagrams, and state diagrams; decide whether to require constructor input Define the internal architecture of a component.
This objective may include but is not limited to: decide whether existing functionality can be implemented or inherited; decide how to handle unmanaged and managed resources; decide which extensibility features are required; determine state management implementation; decide whether a component must be multithreaded; decide which functions to implement in the base class, abstract class, or sealed class Define the data handling for a component.
This objective may include but is not limited to: define data access; analyze data relationships; analyze the data handling requirements of a component Consume components. This objective may include but is not limited to: identify reusable components; handle unmanaged components; identify whether a component needs to be extended; identify whether a component needs to be wrapped; identify whether any existing functionality needs to be hidden; test that reused components meet the specifications Define a strategy for exceptions and other component feedback. This objective may include but is not limited to: identify expected exceptions; decide how to deal with expected exceptions; decide how to deal with unhandled exceptions; decide how to deal with WCF faults; define other component feedback, such as events, callbacks, and messages; define a reporting strategy
|
No comments:
Post a Comment