Book Image

Mastering ServiceStack

By : Andreas Niedermair
Book Image

Mastering ServiceStack

By: Andreas Niedermair

Overview of this book

Table of Contents (13 chapters)

Index

A

  • Advanced Message Queuing Protocol (AMQP)
    • about / RabbitMQ
  • API design
    • URL / Authentication, authorization, and security
  • ASP.NET MVC Framework
    • about / Incorporating the IoC container in your application
  • ASP.NET session
    • using / Using the ASP.NET session
  • ASP.NET WebForms
    • about / Incorporating the IoC container in your application
  • Authenticate method
    • references / Creating a custom authentication provider, Provide credentials in RequestDTOs
  • authentication
    • about / Authentication and authorization, Authentication
    • providers / Authentication providers
    • repository / Authentication repository
    • access, limiting / Limiting access
    • chain, processing / Processing chain
    • adding, to Ticket application / Adding authentication and authorization to the Ticket application
    • sliding / Sliding authentication
    • requests, filtering / Filtering requests and responses
    • responses, filtering / Filtering requests and responses
    • statistics / Statistics
  • authentication events
    • defining / Authentication events
  • authentication providers
    • basic providers / Authentication providers
    • OAuth providers / Authentication providers
    • OAuth2 providers / Authentication providers
    • OpenId providers / Authentication providers
  • authentication session
    • extending / Extending the authentication session
  • authorization
    • about / Authentication and authorization
    • adding, to Ticket application / Adding authentication and authorization to the Ticket application
  • automatic batching
    • customizing / Customizing automatic batching

C

  • cache
    • defining / Cache
    • session data, caching / Caching session data
    • responses, caching / Caching responses
  • client managers
    • defining / Client managers
    • properties / Client managers
  • Code-First approach
    • about / Domain design
  • create, read, update, and delete (CRUD)
    • about / Data access
  • custom authentication provider
    • creating / Creating a custom authentication provider
  • custom steps
    • adding, for fine-grained profiling / Adding custom steps for fine-grained profiling

D

  • Database Concurrency Control
    • URL / The comment model
  • database requests
    • profiling / Profiling database requests
  • data store
    • used, for requesting log entries / Using another data store for your request log entries
  • DEBUG build / Request logging
  • dependencies, registering
    • auto wired registrations / Registering dependencies
    • custom registration / Registering dependencies
  • distributed systems
    • history / A brief history of distributed systems
    • problems / Problems with distributed systems
    • complexity, in design / Complexity in design, Operating overhead
    • issues, at runtime / Issues at runtime, A shared register
  • domain design, Ticket application
    • defining / Domain design
    • reference / Domain design
    • ticket model / The ticket model
    • Comment model / The comment model
  • DRY (Don’t Repeat Yourself) principle
    • about / Domain design

E

  • endpoints
    • registering / Registering new services and endpoints

F

  • fine-grained profiling
    • custom steps, adding for / Adding custom steps for fine-grained profiling
  • Funq
    • owner scopes, for instances / Disposal of objects

G

  • generic callbacks
    • defining / Receiving messages

H

  • hooks, at client-side
    • subscription events / Subscription events
    • messages, receiving / Receiving messages
    • messages, sending / Sending messages
  • HTTP header
    • authorization information / Authorization information in the HTTP header
  • HTTP requests footprint, minimizing
    • about / Minimizing the footprint of HTTP requests
    • requests, batching / Batching requests
    • requests, compressing / Compressing requests
    • responses, compressing / Compressing responses
    • MessagePack format, adding / Adding MessagePack format
    • Protobuf format, adding / Adding Protobuf format

I

  • IHttpModule interface
    • reference link / Compressing responses
  • information
    • accessing, provided by RequestInfoFeature / Accessing information provided by RequestInfoFeature
  • In Memory MQ
    • defining / In Memory MQ
  • Inversion of Control (IoC)
    • about / The IoC container
  • IoC container
    • about / The IoC container
    • dependencies, registering / Registering dependencies
    • dependencies, resolving / Resolving dependencies
    • lifetime of objects / Lifetime of objects
    • disposal of objects / Disposal of objects
    • instances, initializing / Initialization of instances
    • custom IoC-frameworks / Custom IoC frameworks
    • incorporating, in application / Incorporating the IoC container in your application

L

  • log entries
    • requesting, data store used / Using another data store for your request log entries

M

  • Management Plugin
    • URL / Statistics
  • message-based service
    • about / A message-based service
  • MessagePack
    • URL / Adding MessagePack format
  • Message Pattern
    • about / Message Queue context
  • Message Queues
    • about / Look left and right
  • Message Queue Telemetry Transport (MQTT)
    • about / RabbitMQ
  • methods, CommentService API
    • defining / The CommentService API
  • methods, TicketService API
    • defining / The TicketService API
  • microservices
    • about / A brief history of distributed systems
  • MiniProfiler
    • URL / Profiling requests

N

  • New API outline
    • URL / A message-based service
  • NHibernate
    • about / A brief history of distributed systems

O

  • optimistic concurrency
    • about / The ticket model

P

  • plugin
    • writing / Writing your own plugin
  • principles, API
    • designing / The design principles of an API
    • documentation / Documentation
    • consistency / Consistency
    • robustness / Robustness
    • authentication / Authentication, authorization, and security
    • authorization / Authentication, authorization, and security
    • security / Authentication, authorization, and security
  • properties, RequestLogEntry objects
    • Id / Request logging
    • DateTime / Request logging
    • HttpMethod / Request logging
    • AbsoluteUri / Request logging
    • PathInfo / Request logging
    • RequestDto / Request logging
    • FormData / Request logging
    • IpAddress / Request logging
    • ForwardedFor / Request logging
    • Referer / Request logging
    • Headers / Request logging
    • UserAuthId / Request logging
    • SessionId / Request logging
    • Items / Request logging
    • ErrorResponse / Request logging
    • RequestDuration / Request logging
  • properties, RequestLogsFeature object
    • AtRestPath / Request logging
    • EnableSessionTracking / Request logging
    • EnableRequestBodyTracking / Request logging
    • EnableResponseTracking / Request logging
    • EnableErrorTracking / Request logging
    • Capacity / Request logging
    • RequiredRoles / Request logging
    • RequestLogger / Request logging
    • ExcludeRequestDtoTypes / Request logging
    • HideRequestBodyForRequestDtoTypes / Request logging

Q

  • queue types, RedisMQ
    • In / Queues
    • Out / Queues
    • Dead letter queue / Queues
    • Priority / Queues

R

  • RabbitMQ
    • about / RabbitMQ, Statistics
    • URL / RabbitMQ, Setup
    • setting up / Setup
    • processing chain / Processing chain
    • references / Processing chain
    • replying directly back, to producer / Replying directly back to the producer
    • message, broadcasting / Broadcasting a message
    • integrating, in service / Integrate RabbitMQ into your service
  • RCON
    • about / RCON
  • Redis
    • URL / Setup
  • RedisMQ
    • about / RedisMQ, Statistics
    • setup / Setup
    • client managers / Client managers
    • queues / Queues
    • replying back, to producer / Replying directly back to the producer
    • client, integrating in service / Integrate a RedisMQ client into your service
  • RELEASE build / Request logging
  • request
    • intercepting / Intercepting requests and responses
  • request batching
    • about / Batching requests
    • automatic batching, customizing / Customizing automatic batching
    • Request DTO implementation, for representing collection / Implementing a RequestDTO to represent a collection
  • RequestDTOs
    • credentials, providing / Provide credentials in RequestDTOs
  • RequestLogEntry objects
    • properties / Request logging
  • request logging
    • about / Request logging
    • centralizing / Centralizing request logging
  • RequestLogsFeature object
    • properties / Request logging
  • request profiling
    • centralizing / Centralizing request profiling
  • requests
    • tracking, of website / Tracking requests of your website
    • profiling / Profiling requests
  • response
    • intercepting / Intercepting requests and responses
  • RESTful design
    • defining / RESTful design
    • TicketService API / The TicketService API
    • CommentService API / The CommentService API

S

  • scopes
    • defining / Lifetime of objects
  • self-hosted requests
    • profiling / Profiling self-hosted requests
  • server-sent events
    • defining / Server-sent events
    • about / Server-sent events
    • URL / Server-sent events
    • messages, sending from server / Sending messages from the server
    • hooks, at client-side / Hooks at the client-side
    • server-side usage / Server-side usage of server-sent events
    • ServerEventsFeature, configuring / Configure ServerEventsFeature
    • Redis Server events / Redis server events
  • server-side usage, of server-sent events
    • messages, receiving / Receiving messages
    • messages, sending / Sending messages
  • services
    • registering / Registering new services and endpoints
  • ServiceStack
    • processing / The processing chains of ServiceStack
    • HTTP context / HTTP context
    • Message Queue context / Message Queue context
    • reference link / Compressing requests
  • ServiceStack.MiniProfiler.Profiler.Settings object
    • properties / Profiling requests
  • ServiceStack session
    • using / Using the ServiceStack session
  • session
    • about / Sessions
    • temporary sessions / Sessions
    • permanent sessions / Sessions
    • sliding sessions / Sessions
    • sharing, between service and web application / Session sharing between your service and a web application
    • URL / Session sharing between your service and a web application
  • SignalR
    • about / Server-sent events
  • sliding
    • about / Sessions
  • Smart Thread Pool
    • URL / HTTP context
    • pipeline / HTTP context
  • SOLID
    • about / The IoC container
  • Streaming Text Oriented Messaging Protocol (STOMP)
    • about / RabbitMQ
  • Swagger
    • about / Documentation
  • System.Random
    • URL / Sessions

T

  • Test Driven Development (TDD)
    • about / The Ticket application
  • Ticket application
    • defining / The Ticket application
    • domain design / Domain design
    • RESTful design / RESTful design
    • data access / Data access
    • functional contract testing / Functional contract testing
    • authentication, adding to / Adding authentication and authorization to the Ticket application
    • authorization, adding to / Adding authentication and authorization to the Ticket application

U

  • user entity
    • customizing / Customizing the user entity

V

  • Visual Studio Development Server
    • about / Server-sent events

W

  • website
    • requests, tracking of / Tracking requests of your website
  • Windows Communication Framework (WCF)
    • about / A message-based service

X

  • X-Forwarded-For header
    • reference link / Request logging