Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[4Developers 2014] Współczesna architektura serwera web w oparciu o Microsoft Web Stack - Wprowadzenie do OWIN i Katana

[4Developers 2014] Współczesna architektura serwera web w oparciu o Microsoft Web Stack - Wprowadzenie do OWIN i Katana

OWIN to specyfikacja interfejsu pomiędzy serwerem web opartym o .Net Framework a aplikacją webową, natomiast projekt Katana to obecnie jego najbardziej popularna implementacja.

W ramach tej sesji przedstawione zostaną szczegóły specyfikacji OWIN, jej rozszerzenie a także pojęcia i zasady przyjęte przez społeczność. Następnie omówiony zostanie projekt Katana, a w szczególności udostępniane w jego ramach opcje hostowania aplikacji oraz moduły. Oczywiście nie zabraknie przykładów.

Tomasz Pęczek

April 07, 2014
Tweet

More Decks by Tomasz Pęczek

Other Decks in Programming

Transcript

  1. Współczesna architektura serwera web w oparciu o Microsoft Web Stack

    - Wprowadzenie do OWIN i Katana Tomasz Pęczek | @tpeczek http://tpeczek.blogspot.com
  2. Poglądy i stwierdzenia zawarte w tej prezentacji są moje własne

    i nie muszą odzwierciedlać poglądów mojego pracodawcy.
  3. Delegat aplikacji u s i n g A p p

    F u n c = F u n c < I D i c t i o n a r y < s t r i n g , o b j e c t > , T a s k > ;
  4. Middleware Klocki z których budujemy naszą aplikację F u n

    c < I D i c t i o n a r y < s t r i n g , o b j e c t > , T a s k > F u n c < A p p F u n c , T a s k > F u n c < A p p F u n c , A p p F u n c >
  5. IAppBuilder Interfejs pozwalający na komponowanie aplikacji p u b l

    i c i n t e r f a c e I A p p B u i l d e r { . . . I A p p B u i l d e r U s e ( o b j e c t m i d d l e w a r e , p a r a m s o b j e c t [ ] a r g s ) ; }
  6. Anonimowa funkcja jako Middleware a p p . U s

    e ( n e w F u n c < A p p F u n c , A p p F u n c > ( n e x t = > ( a s y n c e n v i r o m e n t = > { C o n s o l e . W r i t e L i n e ( " M i d d l e w a r e B e g i n R e q u e s t " ) ; a w a i t n e x t . I n v o k e ( e n v i r o m e n t ) ; C o n s o l e . W r i t e L i n e ( " M i d d l e w a r e E n d R e q u e s t " ) ; } ) ) ) ;
  7. Delegat jako Middleware a p p . U s e

    ( n e w F u n c < A p p F u n c , A p p F u n c > ( n e x t = > e n v = > I n v o k e ( n e x t , e n v i r o n m e n t ) ) ) ; p r i v a t e a s y n c T a s k I n v o k e ( A p p F u n c n e x t , I D i c t i o n a r y < s t r i n g , o b j e c t > e n v i r o n m e n t ) { C o n s o l e . W r i t e L i n e ( " M i d d l e w a r e B e g i n R e q u e s t " ) ; a w a i t n e x t . I n v o k e ( e n v i r o m e n t ) ; C o n s o l e . W r i t e L i n e ( " M i d d l e w a r e E n d R e q u e s t " ) ; } ;
  8. Typ jako Middleware a p p . U s e

    ( t y p e o f ( M i d d l e w a r e ) ) ; p u b l i c c l a s s M i d d l e w a r e { p r i v a t e r e a d o n l y A p p F u n c _ n e x t ; p u b l i c M i d d l e w a r e ( A p p F u n c n e x t ) { _ n e x t = n e x t ; } p u b l i c a s y n c T a s k I n v o k e ( I D i c t i o n a r y < s t r i n g , o b j e c t > e n v i r o n m e n t ) { C o n s o l e . W r i t e L i n e ( " M i d d l e w a r e B e g i n R e q u e s t " ) ; a w a i t _ n e x t . I n v o k e ( e n v i r o n m e n t ) ; C o n s o l e . W r i t e L i n e ( " M i d d l e w a r e E n d R e q u e s t " ) ; } }