Skip to content

Latest commit

 

History

History
38 lines (23 loc) · 1.95 KB

Architecture.md

File metadata and controls

38 lines (23 loc) · 1.95 KB

image

Crazor Architecture

Crazor is made using layers so you can mix and match use just the parts you need.

Libraries

Crazor is made up of 5 libraries

  • Crazor - Defines the CardApp application programming model independent of hosting. It needs ICardView implementations to create Cards.
  • Crazor.Server - Defines a Controller and IBot which implements all of the hosting infrastructure for serving up a Crazor App in Teams/Outlook.
  • Crazor.Blazor - Defines a implementation of ICardView which uses .razor template files to define cards.
  • Crazor.Test - Defines infrastructure for you to write unit tests for your cards.

Crazor Server hosting CardApps

image-20230107140457543

The Crazor is running on a server and servicing any of the CardApps defined there. The 2 mechanisms for interaction are:

  • CardAppController - When the card is running a s teams/outlook/office integration, the card UI is delivered via the CardAppController to the client. All rendering is client side and all logic is running server side.
  • Card Host Page - When someone navigates to the card app host page the card is is hosted via HTML, with all rendering client side and all logic running server side.

Concepts

  • Architecture - Describes overall structure of Crazor application
  • Card Apps - How to create a CardApp class to define state and operations against state.
  • Card Views - General information about Card Views
  • Memory - Information on persistence and memory
  • Validation - Model validation
  • Routing - Information on customizing urls to support deep linking into cards
  • Authentication - Authentication
  • Unit tests - Writing unit tests for your cards.