You are on page 1of 32

ccccc ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc

Introducing the .NET Framework 3.5


c

c c
c c c  ccc
ccccc
c

c
c
ccc
c

cccc ccc c c c


   cc c  c!"c

{ cccccc
{
c c  ccccc
c ## c c$#  c  c %%#  cc!c
 cc ## &c%# cc c  c!"c'c
î îî 
    î  c

  !
 " # î $ $%c
& # ''
 (
   
   )  î  %c
& & * (
   
 & *  î  +c
&   (
   î, î - $ ,  .c
& #  # , #   $ /c
   cc
# &cc c  c!"c cc% cc(c
 c c  cccc{  ccc
    c c  ccc c {  ccc
% c ) *cc(!c
#      c+ cc('c
 c   c   cc("c
  #0%c

    1î)20.c
# ''
 )  03c

"45"4   03c
 
0/c
& # ''
 (
   )- 2  -  0/c
 c #c   ccc
& * 60c
-î"5  "60c
  & & * (
   -& * $ 66c
-
' 
'  67c
& * 5   6c
& & * (
   )- 2  -  6c
 c%   c   cc"c
-# 5 &   (
  6%c
î "&   (
  6+c
  &   (
  6.c
&   (
   )- 2  -  6.c
 c  % cc,c
& #  - "2"'63c
(---70c
& #  )- 2  -  70c
{ {  ccc

 c c ccc
c c

c

c
   cc c  c!"c

Mescribing the .NET Framework 3.5

c cc c c c - cc &ccc c  c -cc


c  c .c c c c c c  c . c  
c  c  c c .  c
 ccc c
cc  c  c. cccc cc. c
. cccc/c. c cc

c c -0c cc c1 cc c  c  cc


c ccc
c -0ccc c cc c -0c!
c  cc2
c- cc
3c .c c c c .c c -c  
c - c c  c  
c c  c
-0c!"
c . cc. . c c  c c .
c 4 c  c
 ccc c  c c cc-cc  c  
c
 . c.c
,
c cccc ccc c  cc cc cc
 c c c c c c c cc .c cc c  c -c
c- c -c

 c -c  c c  .c -c c c  c -0c !"c  c c  c
0- ccc c -0c c .
c c c.  ccc  c
ccc c -0c!cc!"cc c cc0c c-c c- c. c
.cc- c  c cc

The Challenges of Building Modern Applications

c c c  c  c c c  c  0/c 5. c c .  c
 c c .c ccc.  c cc -c cccc
- cc  c
c.c4cc c.cc  c ccc
c-c 
c .cc -&cc

·c   c  c1cc- c ccc 0c  c- c


  c#cc-cc-c c cc cc c
./4 c3. cc -c4 cc cc
   5  
  cc

·c c c cc c  c-ccccc 


c
-
c c1c  c  cc c  c
c c cc
-c3 cc  c cc.ccc c. c*#c
. cc 
ccc4 cc 0 ccc cc.c4 cc
 - c-cc c-
cc.c4 c3 c ccc c
 cc -c     c-. c c  c
c  cc  ccc-c-c c

·c   c c.c-cc 


cc cc. c
c6cc  c c. ccccc  c
.c7 8
c1 c ccc. c c c  c
  ccc -c c c c5. c
  
   c

!c

c
   cc c  c!"c

·c 6 cc  c0cc c-cc-cccc


 c  c.c cccc.  c
cccc. . cc0c
c  cc c c1 cccc cc-ccc c cc. c
-0 -c 
cccc5. c
  * 5 
  c

·c c5. cccc. ccc-c  c%c c


.  c .cc c5.c-0c-c. c0 cc.
c. c
- cc   c
c  c
cccc c
 c5. cc
  -   
  c

·c c c-c. cc c ccc-cccc


.c-ccccc  cccc. cc c
ccc. 
cc  c .c c cccc
ccc
 ccc c-c. ccccc 
     
 c

cc4 c  c ccc0 c cc cc c 


cc
 c c  cc. cc . c c c cccc ccc c
-0c!"c ccc cc- c -c

Addressing the Challenges: Spotlighting the .NET Framework 3.5

c c -0c!"c cc.cc  ccc c  c  c


c  c3. c cc-cccc c -0c!
c- c cc-c
-cc!"c  c c c. cc ccc c  c

ASP.NET AJAX: Support for Responsive Browser Applications


c -  c c c  c . c . c c c -c   c 
c 4c
 c .c c c c &c c -c 5. c c c . c 5. c c
. cccc 
c c . cc cc-cc cc /
c  /c -. c c c  c c c c 0.c -c   
c c
.c  c  c  c c c c c c   c -. c c .c c   c
 
c cc-. c c  cc-cc-c ccc c

 c c1 c-4 cccc ) *ccc. cc  ccc


cc-cccc. c5. 
cc- c . c5.  cccc
c c c 0 c  c 5. c  c  c -c c )
c c c c  c c
7 .c c  - 8c c c *#c  c c   / . c
)cc*#/cc .cccîîc

cc.ccc  cc. c ) *c cccc(999c  cc


c 1 c "
c  c c 0c  c  c c c . c 
c -
c
) *c  c c c c  c c -c c - c   c  
c c
 c -0c!"c-c cc c c % c ) *c c1 cc
c c % 
cc c cc0cc cc  ccc ) *c  c

'c

c
   cc c  c!"c

Õanguage-Integrated Query: Consistent Access to Miverse Mata


 c  c-0c-ccc c-ccccc ccccc
-
c .c c  ccc  c 
cc*#c.
ccc3 c cc
c  c c c  c 0 c c c  c  c 5.c . c c c
c4 ccc. c+#cc-0c-c  c
cc1 
c*+.cc*#c

c c . c c c  c c c c c c  c c / c
/-ccccccc cc c  :c

 c cc cc#. c+.c7# +8


cc c4 c-c-cc c
-0c !"c c c 5.c  6c . c c c c c c
c0cc
c# +c cc cc1  cc;cc
$cc -cc cc
 cc c c cc c
c .c3<  cc
c c c  c  c c 0c c  c c c c c c -c  c c
 c c -0c  cc-0c-ccc

Windows Communication Foundation: Support for Service-Oriented


Applications
c c 
c c  c -0c  c c  c c  c c
.c c c .cc -&c

·c % cc c7 c0-c c *8


cc c
 %  c.c

·c  c
c. cc.c-c c  c

·c  c
cc .cc   
c  c  c

·c   
c .c5..c cc c c+..c
7+8c

·c c c c78


cc1 cc % cc cc
 c .cccc  c .c c .c

cc c  cccc cc c c-cc  cc  . cc
 c-c c  cc c :ccc ccc  c.cc
 c.:c

 c  c 1 c -4 c c c - c .c .c 7 8c c c
5.c   c c . c c c  c -c c c  c c
c c c 0c c .
c  c  c c c c . c c
c %c c  c cccc c -0c!
c c c-c 4 c
c c c .c  c   c c c c . c c c
c  c3. c  c . c c. c cc.c

cc.c -c -


cc c cc c c  &c c c  c c 
c
0c c c5.c c 4ccc. c 
cc c  c
ccc. c c.c c cc c c
c

"c

c
   cc c  c!"c

 c c c .cc c.cc %


cc  ccc
c.c c . c .cc  ccc c 
c .c
.
c     
c c   c  c  4c 5.c  %
c
-
cc cc cc cc. 
c .cc6cc
c
5..c c. c+
ccc  c  cc. c cc%cc

.c-c 
c-c-cc6cc c6
c
 cc. cccc -cc c -0c!"c  c c c
cc  ccc c

Windows Workflow Foundation: Support for Workflow-Based Applications


c -0 -c  c c  c &c4 c 3. c c  c c  c c c c ccc
c .c c c  c   c c -0 -
c c c  c 1. c
c c cc ccccc c. c;cc
 . c$ c
c ccc .c cc0cc  cc c c cccc
 c c-0
c.cc c cc c  c ccc4 c 
c0c
c cc. cccccc

 c-0 -c cc c c ccccc-cc c c


 c c c -c c c c c 
c c c c c  c  c
1  c
cc1.ccc * cc . c cc c cc
c  c   cc- c0 -c .c 7 8
c  c  c c c
-0 -c  c c -
c c c -0 -  c  c c c
.cc. ccc c  ccc c -0c!
c c cc. ccc
-c c c  
c .c  c - c %c 
c c c   c
ccc6 cc

$.c-ccc  c ccc c cc5. c ccc


-0 -c  :cc -ccc c cc0ccc c-cc-0 -c
cc.c -c -
cc c-0 -c c3. cc.ccccc1.ccc
 ccc cccc c. cc 
cccccc-0ccc
-0 -4 c c  c  c  c c  c c . c  c c
-0 -
c0cc ccc.c  . cc-c  c

2c

c
   cc c  c!"c

$cccc-0 -c cc-


c c0 c c. . ccc
. c -c  c   c c   c c c  c -c c -c
. cccc. 
cc. cc-0 -c- c 0 c-c c- cc

Windows Presentation Foundation: A Unified Approach to Miverse User


Interfaces
c. cc ccccc cc c c-c.  c1cc
 c c cc  c c. c cc  c5.
cc
. 
c.c  cc ccc  c
c.c
c. c- cc
  c 
c c -0c -c . c 0 c c . c c  c c  c . c c
  c-cc c c ccc  c 0c ccccc
- c

 
c cc c  ccc. ccccccc- cc
- c c1 
cc cc. c- c 
cccc c -0
cc
. cc- ccccc- cc5. c. c#cc c
)c   c c )c c   c c c  c c - c c % c c
c  
c - c .c  c c c c c  c c c % c c c
c -c c  c c   c  c  &c . c c c . c c c
c0 cc  c. c c  c 4c  c

cc cc- c% c .c7% 8


c c  c-cc c
-0c!
c cc c c c$ccc  c c.cc
 cc c. cc 
c% c0 c c  cc  c$c0ccc
c
c .c .cc
c
c- cc   c
c
c. c0 cc.
c% cc c.  c-0c-ccc-c- c cc
ccc.cc 0c  cc- c 
c% c0 cc c
c. c  cc cc

c 1 c c -c  -


c c 
c c 
c    c
-
c c 
c  .  c c c -c % c  c c c 5.c   c
-c 0 cc c 
c. c c 0c ccc-cccccc
  c-c

c

c
   cc c  c!"c

cc

c cc c ccc cc. c c  cccc  c


5.cc. cc c-c  cccccc c
cc
c.c4c cc c cccc4 c 0cc c
 
c    cc.<c
cc cc.cccc c
 c c c  c .c c- c  cc. c ccc c
4 c c . c c -c c   c c   c c  c c  c  c
 
c% c  ccc*  c  c0.c#.c7* #8c c*#  c
.
c * #c  - c c c . c c   c c c c c  c
0 cc.c cc cccc-0c-ccc c cc
c . c cccc cc
c c c1 c$ cc
c1 c c   cc. c c c7c cccc 8cccc
0c c c 
c c c c * #c c c c c c c c c
 c c ccc
 . c.
cc cc ccc5. c

cc c cc  c% c 


ccc. c cc-
c
c  c  c c c % c  c c c c  c c . c  c c c
- 
c-
cc cc. ccî25    
c ccc
 ccî$. ccc c.c cc  c% c 
cc*$ %c - c
 c c c  c c . c c -c c -  c - c  c c
ccc cc. ccc0 cc 
c-c cc  c
c ccc 0 c  cc 0cc- c  c c c cc c0cc
c

,c

c
   cc c  c!"c

c c  


c c *$ %c - c c c c . c c c .c 1
c
-c  c-cc ccc
cc c . ccc. cc. c
  ccc  c% c cc cc. ccc*$ %cc

$c% c  c  cc*$ % cc0ccc% 4 cc c


.
c  .c c  c c . c -c  
c .c cc 
c c
c $c 0c c  c c c ! c 
c % c 0 c   c c c c c
 . 6c  c c 4c   c -c - c  c c c  c   c
% c  c  c c .c c c *#c %c c 7*%8
c -c  c c
ccc-
c .
ccc1 c. cc

 c ccc 1cccccc  c.c%


cc
 c -0c !"c   c c c  c c   c  .c c c   c
 c  c  c c  c  c c c  c -c c . c  /c
  cc  /cc3 cc c

Windows CardSpace: Consistent User Control of Migital Identities


0c.c-c c c   ccccccc3cc 
cc
 4 c cc c1 c cc  c. cc-cc -
c c
c  c . c c  c  c .
c c 
c c c  c 0 c c
c  c  . c c  c c . 
c .  c c  - c c
 c-0 cccc-c c&c

·c % cccccc ccc.  cc - c4c


 ccc  cc c. cc c . ccc 
c c
cc c.c cc .c 0c

·c  
c -
ccc  cccc  cc  c$c
cc
c  ccccc cccc cc 0 c
3. c 0
c 
cc ccc4 c0cc c c. c ccc 
c
-
cc cccc c c. cc -
cc cc
. c ccc 5.c cc. ccc c cc

.c c c c  c   c 5. c c -c c c c  c
 c - c 
c  c   c -c c  c -0c !
c  c c
cccccc c c0c0ccc c
cc
  ccc cc c '  cccc c cc 
c
c. ccc ccc c- c ccc  c c 0ccc -c
$c cc
cc. c c  cc ccc- cc. cc c c c
c cccc
c -cc. cc c1 c-cc
c  c.cc

9c

c
   cc c  c!"c

c c cc c ccccccc "   c c


6c c c c c 
c c c   c  c  . c c    .c
ccc. cc c cc c
c.  cccc-c
 c c 4c  c c  - c c .c c  c c c  c  
 .c c  c c c  c c c . . c  -  c 
c
.cc  cc - ccc

- cc c. cccc c "'"'c$ c cc


c
. c 
c  c  c  c c -c c . c c  c c   c
   c c  c  c7 .cc   ccc- 8cc
 c   c 7 .c c -  c c c c 1 8c $c c c
c -c c  c  c c c c -
c c  c c 0c  c c c
  c cc cc. c cc
cc c  cc
cccc c -0c!"c

Summarizing the Evolution: The .NET Framework 3.5 and its Predecessors

c c -0c!"c cc  c ccc .cc 4 c  c c
 
c-cc c. cc-ccc c cc  c cc . c
cc c -0c!
ccc cc0c c  
cc c -0c
!c - c c . c c c c   
c c c  c c c 0c  c c  c
c

(c

c
   cc c  c!"c

0cc  cc c .c 


cc.c -c - c-4 ccccc!c
c!"c   c

c c c  c -0c 


c  c c  - c 
c c c c #.c
.c7#8c c c.cc  
c0-c cc c -0c  c 
c c. c
cccc#c c c c1c-cc  
c cc.c - cc c
-0cccc. cccc c
c .c
c c  c 
c % 
c  
cc.ccc c -0c!c4c
c c c 
c .c c c c .c c -c   &c 
c 
c %
c c
- ccc

c ccc c -0c!"cc  c ccc!c  c % c c
) *c .
c - c # +c  c   c c . c -c  c c c c - c
. c
 c -c c c c  c   c 
c .c  c c c cc .c  /
.c  cc.5.c  /ccc .c
c
cc
% ccc c c-
c c c cc c-cc ccc
  cc-cc -0c. c- c c.&cc c -0c!"c. c c
c- cc,
c- cc!
c- c
 
cc- c*%c

$. cc  c cc c 


cccc c  c. cc c
   c c6c 
c. c ccc c  cc.c . . 
c4 c  c
  cc.c  cc c  ccc -0cc c
 . c.c,c
c - cc3 cccc. c ccc -0c c c
. cc c-c- c. c cc ccc 
ccc c- c c c c
  cc
 . c.ccc -0c  cc-0cc c c- c c c
-c  cc. cc-c ccc c -0c
cc1 
cc
0c c- c 0c3. c cc c c c ccc -0c-c  cc

((c

c
   cc c  c!"c

Applying the .NET Framework 3.5: A Scenario

c-cc. c-cc.cc  c-0cc cc 0ccc1 cc


-cccc. c
cc1 
cc cc  c.  cc c
.c  .c   c c c -c  c . c c  c -0c !"
c  c
 cc 0c c 0cc.c -c

c 4 c.  c 


c -ccc.c ccc
c c c. c
c  c -0 -c  c c  c c  .c  c c .  c 
c  .c
 .cc c c c64 c.-c. 
c c0cc
 4 c 
c cc c c c4 c  cc -0 -c   c
cc c  c cc
c ccc -c ccc c c
c
c cc c-0 -c. cc# +ccc .c+#c5. c

 c .cc cc c


c -c c.  cc cc .c
cccc c -c. ccc c cc c
c -ccc
.c c c c 
c  c  c  c c  c % c  c  c  c
. c-cc 4 c.  c cc
c. ccc c6c
c  c.c cc.c -
cc cc-0 c cc- c
cc  cccc- c. c-c cc c c
c

(c

c
   cc c  c!"c

.  c c  c  c c  .c c c c c  -c 
c c  c .  c
% c ) *cc.c-cc- 
ccc  c. ccc
.  c c -c c c -c c c c c 
c c . c  c  c
 cccc- cc. ccc  cccc-  cc cc

 .c  c -c  c  c  c c c c c - c c c c
. ccc-c.  c c  
ccc ccc*$ %cc
cc ) *cc c -ccc -cccc
c c c c cc
c ccc. cc. cccc% c 0c c. cc
c cc$cc. ccc c.
cc cc 4 c  cc
. cc cccc-c cc  c c c-ccc0 cc 
c c
c. ccc  cccc- cc ccc c

 
c 4 c 0 c c  c  c - c c c  c c c  c c c
  cccc. c5. ccc0
cc1 
c c- c c 0 c
c c .c c  c c c 1 c c c  c c  c  c 5.  c
 ccc -
c1 c  cc c1 c  cc0c c
  c 0c  
c -c c c -c c c c .
c c  c   c c  c c
.c. c cc  cc c c  cc. c

c 4 c .cc %c0 cc-cc -cc

 c c .  c-c ccc c -0c!"4 c ccc. cc
c  c  c +.c c -c  c c c 
c c c 4c -c  c  c
1 c cc c . cc-c c c c c 
cc c c
ccc ccc-cc. c ccc c -0ccc. ccc
 c c.  c  c

Understanding the .NET Framework 3.5: The Technologies

cccc cc-cc c -0c!"c


c4 c. . cccc  cc
c  c  c  c c  c c c . c c c c c   c
 c cc

ASP.NET AJAX

% c  c c c c 4 c  c . c   c c c   c
  c ) *c cccccc c c  c c
-c  c cc % c ) *c- ccccc c- c. c ccc c
-0c!"cc.c -c .  cc-cc cc c c

c
c

(!c

c
   cc c  c!"c

c c .c -


c c % c  c c . c c % c c ) *c 1  c
 c c c c c  c  ccc -c cc cc - c c
 cc c c  c c %
c -c - c .c  c c c c . 
  cccc cc- ccc % cc ) *c1  c c
c c  c c - c c c 0c c  c c c c c
 c

c  
c % c ) *c  c c  c ) *c #c  c c   c c
-0ccc c 
ccc. ccc1 
c 1
c
ccc
c c  c ) *c  
c  c  c c c . c c 3c c c c c
- c c*#5. c$c cccc c3
cc cc5. cc
c%ccc c. c. c % ccc 
c .c c%%c c
5. cccc . 
c -ccccc-.ccc. cc
 0c- c-ccc  cccc. cccc c c*#c. cc
.c 3c  c 7 8c c -c *#
c % c ) *c  c  - c 1c
c c. cc)c3c c7) 8c

c ) *c  ccc c- cccc -ccc c .cc(999c


 c-4ccc -c  c cc cccc c-ccc 
c
) *c   c c -c c c c  4 c  c c  .c % c
) *ccc c -0c!"c ccc c ccc c. . cc

Õanguage-Integrated Query

c c c c c  c  c c  4c c  c  0c 0c c
c   c c   /c c c -c c c  1/ c
ccc c
c# +c  ccccc5.c c 1cc-0c
-cc

4 cc  c# +c5.


c1 cc;
cc c&c

d   
 
   
  
  

 c 5.c . c c  c c  c  c . c  c c  c c  c c c c  c
1 +.ccc.cc  
ccccc &c

    



  !" #
$

c 1c c c 5.c  c  c c +#
c 4 c c .c c  c
  c c  c 0 c  
c c +#c  c c - c . c .
c c c c
  c 0-c c 4 c c c . c c c .c c 0 c -c 0c
+#
cc# +c5.c -cc 4ccc+#c c 
c4 c.c;
c
c c c .c   c  c  c c c 5.c c . c c c 
c c
 c c c .
c c c c c c  c  c  c =#. c
c

('c

c
   cc c  c!"c

+.>ccc &cc  cc5.c c0 ccccc c


ccc .c

c c c  cc+#


c c1 c5.c 4c cc c c  c
cc
cc c -0c!"c . c  cc# +c
c cc-c
. cc c c 1cc5. c c c .cc -&c

·c # +cc  &c% c3<  c7<8cc c cc# +c


 . c-c cc 
c# +cc+#
c  cc5.c 0cccc
cc+#c5.
cc . cc c  ccc+#cc cc c

c# +cc 
c1. cc5.c 0ccc -cccc c
cc c.cc  c

·c # +cc3 &c - c5.c  cc cc ..


c .c c
3c cc5.cc. c cc .c c c0cc/
 c c  cc+#
c4 cc cc c ccc  c

·c # +cc*#&c - c5.c*#cc cc.  cc  cc


1
c cc.5.c ccc-cc- cc*#ccc
c .
c.cc c ..ccc# +c5.c cc c

#0c+#
c# +c c cc cc5. cc .c c .c c$
c
-c  c -c  .  c c ?c .$
c -c 6 c  c c c
. ?ccc c .c c.c cc
c ccc. c c
 cc# +c /4cc3. ccc# +cc+#cc

# +4 c  c c c  c 


c  .c c <c c c  c
 
c -ccc 1cc-0c-cc0 cc
ccc
1c cccc .
ccc c-cc c cc
 c.
cc c cc0c ccc  c-0c-c
 . c.c,c
cc c -0c!"c

Windows Communication Foundation

c c c  c .c 0 c c c c -c   c c
1  c cc .c  c 
c c  c c c c c
  cc cc  cc
c .c  cc 
c.c

cc .cc .
c  c.
cc  c

Services and Clients


c. ccc c c  &cc c1  cccccc c
c c  c c c c c c . c c c  c  c #.c
7 #8
cc.cc
cccccc ccc .c .c c;cc
 . c
$ c c c  cc 1 c c  .c  c 
cc c c
c 0c c 0c &c

Ëd  %


 &&  
c

("c

c
   cc c  c!"c


Ë     %
 ' 
(
)*  #

Ë     %
'  +      '#

Ë     %
'      '#
$

c c c  c ;c c  c 0c -c c d  c .c  c
.c  c c  c c 1 c  c c  c c  c     c
 cccc4 c cc1 c cc-cc0c-c
c     c.cc c  c1 
ccc c0c-c c
.
cc c ccc- cc1 ccc  c c 4c5.
c-/4 c
 c c  c     c c  c c c c 4 c  c c
c c
c c  ccc c. c c c
cc. c
ccc ccc cc c c
c c. c0 cc
 c0c-c     c  cc  cc c c

c.c -c cc  cc c-cc-cc c c. c1 cc c
  c c c  c c c  
c c  c  c  c c c c
 c c c c 1 c .  c 
c  c  -c c   c c
 cccc- cc

cc.c -
ccc  cc &c

(2c

c
   cc c  c!"c

·c c cc-c cccc.c c -ccc.


cc
 c c1 c cc#c

·c c5 cc-cc4 c ccc0ccc


 c  c
c .c-c c . cc. cc0cc

c-c0cc .c . cc. 
ccc c . cc cc
 c
c .c cc$ $c -c
ccc cc
 
cc4 c c  ccc. c c$. cc  c cc
1 c.  c
cc-ccc
ccc . . c -c
 ccc0 cc  ccc cc-cc .c
 c

·c c  c cc cccc0cc ccc


cccc. c3. ccccccc c c

c-cc c .c

c  cc cc  c c-c c.c 


cc ccc
 1/ccc /.ccc c  c 4cc

Support for REST and RSS/ATOM


c c c  ccc c -0c!
c 4 cc  c .c- c. c
c %c cccc  ccccc c 
c-c-c
 c   c c  c 78
c 4 c . c  c c c  c c c c
  ccccc-c
c ccc cc %
cc  ccc
.  c cc%&c
c%
cc c ccccccc
c c -c ccc*#
c c %c c
cc . cc
c cc-cc#cc

c .c  c 


c  c c c  c -0c !"c  c c -c 
c
$
cc  cc cc%cc c c-c-c.
c c
 c1 c - &c

Ëd  %


 &* 

Ë     %
Ë!'%
,    #

Ë     %
Ë!'&d +%
- ,    )  #
$

 c  cc1  cc. c cccc.cc0c cc
c c c  c c $ c . c c c  c c c %c 
c  c
c  c 0c -c c c .c   
c . c c $ c
c c0c-cc0c.
cc- ccccc%c%c74 c
 c   c c c c c c 0c -c  c .c . c . c c c
c

(c

c
   cc c  c!"c

%c
c .c c%cc #8ccc. c %ccc c
c
 c  c . c  c  c c c  c . c c   c
.c$. ccc0 c  cc c .
c ccc c
-0c!"c . cc

c  c c c c *#c  c c c c c c  c  c c c
c c c c c  
c c  c -0c !"c c c c
 c.  c .cc c-c cc ..c. ccccc
c c c  c 
c  .c c -c $c  c 0 c c c c  c
c c  c  . c 
c c  c -0c !"c  c c
c c  .c c c c c 
c 0c c -c c -0c -c  c
  cc0ccc

Communication Options
c 0 c c   c . c c c 0 c c   c c c - c c
.c c   c c c  c   c  c c .c  c 7%8
c
-c  cc c0cc c.c 0c  c cccc -c
 
cc1 
cc c. c0ccccc. . c . c-
c-c
 c . c c   c  c 0c  c c  c  c c  
c c 4 c c c
cc c.  c

 c c c  cc


c-cc .cc -&c

·c  cccc  c0c-cc.c !

c c0cc
.ccc. . cc c ccc -c c

·c . c   c.


c. cc  cc cc
+c

·c 1 c. cc %c 


c .cc cc c  c
 ccc %cc

 c c - cc cc c. c  c  cc-cc c c c
c d, d c .
cc 1 
c c c c -c c c  c  c c
.  
c -c c -c  c c c c  c c c c 
c c c
 c

Security, Reliability, and Transactions


$ c ./c  c c c c -c   / c . .
c .c 4 c  c
.c  c   c c c c 1 
c c c 3c c  .c
  cc c0cc .c%c .ccc 1
ccccc
c  c c  c c   c c . c c c c   c c
.c .c  c-.cccc. c ccc
c c  c
 c c  c c .c c 1 
c c $ $c -c  c c c
.cc . c %c c c  c %
c c c  c cc .c
 c  $
c c  
c . c  .
c  -c  c  %

(,c

c
   cc c  c!"c

 c .
c c 
c c c  c c  c c  c c c
. ccc cc1c .c  c c c c

0c .c c .c  c   c  c  c   c c c   c c
 cc  c
c c %cc%
c c .cc c 
cc
4 c-4 cc-cc$ $c c. ccc cc .
c-
c
-c  c -  . c c  4c .c   c c c .c c c c  %c

c c  
c 4c  c c  c  c c c   c   c c
 c 
c c  c    c$c cccc . c
 c 
c .c  c $
c c  cc . c c c   c
 c c

 .c   c c  c c c c c   c  c .  c c
  
c  c   c c c  c -0c 
c c  -c c
  c -c ccc. cc   , d c.cccc
c 5. c c  c c c c -c c  c  c c  -c  .c
  c c c  c  c c .
c  c   c c c 
 c c cc ccc c.  c
c
 c  cccc  cc c c  cc

Tool Support
c c0cc 4 c cc  
cc cc c .ccc
 c -0c!"c c .cc
 . c.c,cc c .c cc -&c

·c %3c cc c  cc cc c  c c .c
3 cc. &c

·c c ccc cc  cc c ?c

·c c c ccc c ?c

·c c c cc1  c c c. ccc ?c

·c c c c cc. ccc ) *c c c c c. c


.cc. c$c-cc)c3c c7) 8
ccc
cc c cc c

·c c c . ccc. c cc   c c c

·c cc.c
cc cc0 cccc c
.c  c cc

Windows Communication Foundation and Other Microsoft Technologies


c c  
c  c .  c  c  c  c   c c c
 .c   c  c   c c -. c c c . c . c % c c

c  c 
c  c 
c cc - c c c . c c c c
  c c c -c % c c  c   /c .c

(9c

c
   cc c  c!"c

c %/ c- c c  c. cc c


c+
cc c!c
cc cc.c-c c -0c!"c  c-4c c. c
c
 ccc  cc c .  cc  ccc c ccc -0
cc
4 c cc .c c. . c   c. c. c c  cc c  c
- c.cc.c ?c  cc. cc c -0c!"c-4c0c1 c
cc

Windows Workflow Foundation

c  c  


c c c c -0 -
c c c c c cc c c
c c - c -c c . c c  c  c c c   c c c 1.c
 c-0 -  c  ccc -c - cc c c cc
c c

ccccccccccccccc c

c  c  


c c -0 -c  c . cc c .c c  c0 - c c
 c c 3. c   
c c c c c c  c c c  c  c  c c
0 -c  
cc
 . c.  c c cc .c-0 - c-c
c-0 -c c
c c ccc-ccc$ c c#c7$ #8cc
-c ccccc .c

cc-0 -c cc


c4 c. c1.ccc c.cc c
c   c c c .c c .c  c c   c c -0 -4 c 
c 0c c
-0 -4 c1.
ccc cc c /c.c 
cc.c
c
c c -0 -c   /c c -c c  c  c  c  c c c c
- c
cccc  c  cc% c c.ccc 0cc
c   c c c

c

c
   cc c  c!"c

 c c5. c0-cc  cc  c.c cc c cc -c
 c0ccc 0cccc

Workflows
cc c 
cc-0 -c ccccc.cc c c c
.  c .cc-c   cc-0 -&c

·c 5. c-0 -
c-c1.c ccccc#0cc c
 -c
cc 5. c-0 -ccc
c 
ccc c
.. c$c. 
c-
c c1.cc 5.
cccc

·c cc-0 -
c-c cc cc cc#0cc
c
c-cc1. ccc. cc cccc
ccc.c cc-cc ccccc

c 5. c c  c . . c c - c -0 -


c .c  c  c . c c . c
-  c   c 4c   c  c c c c . 
c c c
 c  c c . c c  c   c c c -0 - c c c c c
-c c c c 1.c  c  c  c c c 1 c c  c  c c -0 -c c
  c  c -c  
c c c -c c  c c -0 -c c c c
 c  c .c -c c 5. c -0 -c  c   
c .c c c . c c c
&c c ccc-0 -c 4c 
cc c ccc c c c c
0ccc. cc cc c  c  
c cc5. cc cc
-0 -c c3. cccccccc cccc

.cc cc-0 - c cc1 cc-c c ccc .c


c.c c- c c  c-0 -c c1 cc c c 4 c .cccc
.c-0 -c% ccc.
cc4 cc.cc c ccc
-0 -cc- cccc 
c cc 
cc0c ccccc c- c
4 c.-ccc ccc c-
c c - cc c-c c
c-0 -cc c-cc-cc-0 -cccc- c4 c1.c

The Base Activity Õibrary


  ccccc. c cc
c 4 c c cc cc-c
cc c  c. cc.  c c
c c-ccc cc. c
 c0 c c  ccc%c cc c cc ccc$ c
c#c7$ #8c

c-0 -c 4c5.cc. cccc$ #c


cc  c- cccc
$ #c0 cc  c  
c  cc c cc cccc$ #cc
c -&c

·c  &c1. cc ccc-ccc  c c cc


-ccc cc

·c  &c c1. cccc c c c ccc c.c

(c

c
   cc c  c!"c

·c 5.&c1. cc.cc ccccccccc

·c %  &c1. c-ccc. cc cc  c

·c &c1. ccc.0ccc

·c # &c- ccc c


cc1. cccc c-ccc
 cc

·c 0&c ccc c. c % cc c

·c &c  cc ccc-0 -4 c cc

·c  &c cc ccccc cc . cc


1.c-cc cc cc- ccc. c c

·c % &c - c1.c.  c.  c. cc . c.  cc

cccc. c .cc c-0 -


c c c0 ccc
 ccc. c cc$ #c cc= .>
c.cc. c c
 cccc c-c c- c

Tools for Windows Workflow Foundation: The Workflow Mesigner


c c c  c c c   c . c -0 - c  c c  c c c c
-0 -c  c 4 c 0 -c  c  - c 
c  c -c  -c $c . 
c c
 ccc$ #cccc 1
c cc ccccccc
 4 c c .cccc-0 -c

c

c
   cc c  c!"c

c   c c c -c /c 4c 0c  c   c  c  - c  c

cc7c  c5. c&c cc c. c cc8c4 c c
  c c c c -c 
c c c -0 -c . c c c 0 -c
 c c c c c  c  c c c   c . c c c 4 c  c
.ccc cc -ccc c .
c-0 - cc cc1 cc
* #
c c c .c . c c % c c 
c -0 - c c . c c 0 -c
 c. ccc* #cc

The Runtime Engine and Runtime Services


c  c  
c c  c .c c  c c 3c c 1.c c  c c c
-0 -c cccc
cc  ccc.cc.c  c c . c c
  c c  c 
c .c . c   c c  c c c  c
 c  c .cc-cc
c.c-c c.c c c &c

·c %  &c c-0 -c4 c 0c-cc ccc. c c cc


c c c c. c  cc 0cccc.
cc
c- c. c cc-0 -4 c cc c1.c c c
  c. . cc-0 - cc c 
c c.
c
cccc
  c- c-ccc  c

!c

c
   cc c  c!"c

·c 0&cc ccc-0 -c  ccc1.ccc c


c c 4 c0c c - cc cc. cc.c
c-0 -4 c1.ccc. c-ccc c c1 
cc
 cc- cc0c-cc-0 -c  cc
c-ccc c
 c  cc
cccc

Workflow-Enabled Services
 c c  c 0c c . c c 0 - c - c  c c c 0c

c c  c c c -c c -0 -c c c c c c c c  c
  c c  c c c  c -0c !c 4c 0c c  c -c   c
  c 
c.cc .c cc  ccc c -0c!"cc c
 
c4 c -cc. c cc cccc-0 -  c  cc

 cc cc-c-c c &c

·c &c cc5. c. c


cc- ccc  c c c  c
ccc . cc0ccccc-ccccc
.cc

·c &c ccc5. cc


cc  cc  cc
 c  c3. ccccccc c cc5. c

 c -c  c c c c c c c c c -0 -c 0c c 
c c
.c cccc cc -cc cc cc. . c- c

Windows Workflow Foundation and Other Microsoft Technologies


.c-c c c . c-c c1  cc
c c .c
 c c  c  c  c c - c %c 
c c  c c c
 
cc$6 0cc

c c   c c   c c -0 -c   c c .c  c c
c 0 c c c 
c - c %c 
c  c !c   c c  c
.c c %c c 
c c c c c c  
c .  c c c  c
.c c - c %c  c c c 
c c  c c  - c
  c %c  c  c c c c  c   c c . c c c c 
c-0 - ccc  c .c ccc.cc

c c -c $6 0c c  c  c c c -c c  c -c  c
.4 c  c   c c -c  c  c c 
c c 1c 3c   c
 -c$6 0cc2cc c . cc cc.4 c1 c c
.c-c
cc cc cc1 c  cc c-0 - cc

$. c 4 c c c -0 -c  cc-


c c - c  c -c .c c c
 c. cc  c c c c.ccccc.cc  c
c c c -c c 7
8c c   c c c c- c
 c . c c . c  c c -0 -
c  c c 0c c  4 c c .c  c c
 ccc

'c

c
   cc c  c!"c

Windows Presentation Foundation

$c  c .c c -0 -  c c c c c c
  c c.  ccc c.c-cc &cc. ccc cc
% c  c c  c c   c c c . c  c c c   c c
 c1
c% c cccc  ccc c

The Capabilities of Windows Presentation Foundation


c c ccccc% c 4 cc cc;
c
 . c$ 
cc c
c #  c .c c  c  
c -
c % c  c  - c c c
c . c c *#  c * #c   c c . c c * #cc  c cc
   c c  c c % c  c c 1 
c 4 c c  c .c c c
* #&cc

ù,  , +  ./0


 
ù ,  0

 c 1 c c c c .c c c c 1c = >c c 1c c  . c . c
 cc.c-cc -c&c

,  ' ,  #


', +  , .#
'  / #

-c 4 c 


c c % c  c c  c c c c  c .c c  c
 c c  
cc ccc% c .c$.
c1$1
c$1
c
.
cccc-c c cc c cc-ccc c c
 c c 
cc 
c  - c  c  cc c c 
c - c c  c
 c c  c  c  c -c -c  c . c c  c . . c c c 
c
 c c c c . c c .c c  c c c . c  c c c
   ccc c4 c c  cc c   cc  cc. cc
c
-c0 cc cc  cccc.c 0c

% c . c.ccc c c. cc.


c .cc -&c

·c . &c c% c cc  c*%c. c. c* #4 c


1 .cc c cc c  c  
'c. cc
- .cc c -c.ccc 0cc c c
.
c -cc. cc  c.c c c$c c. c. c
c c
c-
cc cc0cc.cccc c
.. c c.cc  ccccc
cc1 
cc c
ccccc  c0cccc c cc -c c
. ccc c c c  cc

·c  &c% c . c .ccc-   cc   c
c c c c-0
c% c c c  c .c c 
c
. 
cc
c- c! c c -ccc cccc c
c

"c

c
   cc c  c!"c

ccc cc 0c c  c .c c- c



c-c  cc cc
c% c c4ccc. cc
c cc cc  c. c. c 
cc* #c
  c. cc cccc. c-c c. ccc
 ccc. ccc

·c  &c c* #4 cc


cc% c cc  c cc. c

c .c)%
c
cc cc

·c &c c% c cc. cc ccc  ccc.c


c. c
c .c

c

cc%cc

·c &c% c c.  c .ccc c ccc. cc


c cc-cc 0
cc1 
ccc.cc  cc 6c
  cc cc  cc 
c -cc
5. cc cc.cc

·c c$&c$. cc% c  c  c


c4 c. . ccc
.c .ccccc. cc  c% c c c
0cccccccc3 ccc . cc

Applying Windows Presentation Foundation


% c cc c cc. cc. 
c -c  cc  cc
c c  c . c  c c c c -c  c c  c  c 0
c
c 6 c c   c . c c . c c  c . c c  c .c c -c
 ccc c5. c  c.cc 0ccc c c c
  c
cc cc. ccc ccc-ccc c c
c  c c c -   c  
c  c . c ) *
c c c c - c
  c cc-c ) *
cc- c  ccc c
cc  c
. c cc-  cc cc cc c c 
c  c
% c  ccc c. c 0c c cc cccc
 c -0c
c 0c  cc1 c.  c  cc ccc
c
ccc. c  ccc  ccc  
cc cc
 cc. c.c-cc-c c cc  cc c ccc
c  cc1 c cccc c-cc-cc. ccc
 c% c c

  c-c4c c. c 0


c  c% c  cccc
c c c . c  
c c . c c - c c *$ %c  c c c
- c  c  c c c  c c . c -c c %  c . c c c
cc. cc . c 
c c*$ % c- cccc.ccc
 c . c 1c $ c c c c  c .c c c c  c
-0
c c 1c  c-c*$ % ccc c cc  c cc
c 1
cc*$ %cc  c. cc ccc% c. 
c .c cc! c

c
c c.
c
c
ccc

c  c  


c % c  c   c   c c . c . c * #4 c
- .c  c . c - c c  c  c c -c 4c
c

2c

c
   cc c  c!"c

  c4c - cc c  .


c.c 1 c.
c-c - c 0c
c ccc ccc
cc  cccc% 4 c*%c. c
 c c c c. cc . cc* #
c*%c. cccccc
 c c  c c *%c c c  c c c -c c c c -
c
 -c 1c cccc-cc cc

Tools for Windows Presentation Foundation


4 c  cccc% c. cc ccc<c* #c. cc c1c
c c c-. ccc-0c-cc
c-
cc c
 . c.c,c
 c c % c  c  c  c 
c c  c c  c c c . c
c c-  cc 
cc cc ccccc ccc

c   c c 4c c  c  c c c . c  c   c c . . c
.c c c  c 0c c -0
c c c  6c c .c -c  c  c
  c 4c -c 
c .
c c c c% c  c  4c c c  c c  c
.c c c   c -0c  c c c % c - 
c  c  c  c c
1 c$ cc.c -c - c-c c c cccc

cc.c . 
cc cc. c1 c$ cccc 0cc ccc

c c
cc
cc cc ccc* #c cc-c4 c
c c ccc c* #cc
 . c.ccccc c .c c
 c  c $. c c
 . c .c c 1 c $ c . c c c . c
 
c4 c  cc  cc  cc-0ccc3c 
cc. c
c c4c c-cc c cc c cccc   cc
 cc -cc-0cc c

Windows Presentation Foundation and Other Microsoft Technologies


#0c c  c -0c !"c 
c % c  c c   c -c c  c
  cc ccc ccc -&c

·c - c  &cc c -04 c cccc c



c- c  c c. ccc.c  cc-cccc
c

c

c
   cc c  c!"c

%
c- c  c c  cccccc c-c -
c .c c
  .  c7#$8c  cc c c  cc. c
c% c
  cc c- c  c
c- c% c ccc cc
- c  c  c c1 
cc- c  c cc c
c% c cc c   cc . 6
ccc% c
 cc. cc 
-c ccc- c  c c
cc c 
cc  cc. cc  c c c
  cc

·c   &c c*$ % c -cc%  c cc.cc- 


c
4c cc- c   cccc c -0c  cc
c  c7 8c cccc  ccc0cc cc
c c
c c c  c c c-  c c
 cc . cc. c% c. 
c .c c
c
cc

ccc. ccccc-  cc-
c 
cc7.c
 8c#.1c   cc

·c % cc % c ) *&c- c  cc. c% c7c c
- c  8ccc. c
c- c.   c cc. c  c
ccc cccc   ccc. c c-cc
- c /c- c c c c c1 c-4 ccc
% cc % c ) *c c0ccc 4c cccc c
. ccc
c .c c
c.c  c-c ) *
ccc  ccc
  ccc. c1c

Windows CardSpace

c 4 c c c c - c c c c 0c c  
c .  c . c  c
  c  c c -0c c  c   c  c 5.c c .  c c
c   cc c-
cc  c c cc cc.  cc
c5.cc ccccc -cccc1 cc
 c c cc  ccc- cc

c c 


c c cc cc.  cc - cc1 c c
 c c 
c -c  c c c   c c  c- c 
c c cc
cc  
c cc ccc c c  cc
ccc. cc-cc c
cc cc c c-cc c
 cccc  c

Windows CardSpace and the Identity Metasystem


cc. c  cc 
c-cccc- ccc  c
 cc c 
c c c  c c0cc cc  c c
ccc
c.c. c cccc ccc-0ccc
"
 *c cc  c .c0ccc3. cc. cc -
ccc 1c
0cc .cc*"9cccc*#c.c-c4c 
c
.c0 cc4 c c cc c c ccc-0cc

,c

c
   cc c  c!"c

 c4 ccc cc-4 c cccccc .c0c


cc
 c  c c  c  c - c .c c c . c ). c  c -c c c .  c
c cc.c- / c  
cc
c c5.c c
cc/
-4 c - cc c c c cc c0 cc .c0 c c
 c c  c c c c .  c  -
c c c .  c .c 0 c - c
 - cc c

c .  c  c c c -c c -0c    c -c c  c  c c c
.c c  c c  c - c .
c 4 c   c c c c "'c c c
  /c c   /c  - c . c c c c  c  c c c
  c -c 0c -c 
c  c  c c c  c c c  c
  c$ cccc  c 
c .c c .cc . 
c
 c  c c-c c ccc5.cc. 
c  cccc
c .c0cccc

c  c c  .


c 5.
c c . c  c c c c .c c  c 5.c
c c  c c  ccc -&cc

·c  &cc c0-c cc


58
cc. c cccc cc c
cc

·c c&c ccc .  cc cccc. c cc


 cc.c. cc-0
cc1 
cccc c.c 
cc
.c .c0c c 0 c .ccc  c .c c c c cc
 cc.c. c-c 6
cccc c c.
c c.c
c.c-c. cc -c  c ccccc
 cccccccc  cc .cc
cccc c.cc

·c  c&c c cc cc ccc c-c  ccc c


c c cc- c5. c. ccc7c
cccc
c c4 c .c08cc.cc. 
cc0cc.6c
 
c .c c -c c. cc c cc c ccc
 c. cccccccc.
ccccc c. c c
 cccc
cccc.  c c1  cc c
 c .ccc 
c .c c0
c c
cc.c

ccc cc c5.  ccc  c

 c c 0 c c  c c c cc  cc.c  -c  .  c
 c
c c-c-cc cc

9c

c
   cc c  c!"c

c c c-cc. c  cc cccc -c c


c c-ccc .c0 c c cc- c5. 
cc c. ccc
 c4 c c7 c(8c cc- c ccc 
c-c cc cc
 c
cc 4 c c c1 cc#cc c0c cccccc c
  c ccc 
c-
cc c c.  cc. 
c ccc 1cc 0cc ccc c cc
 c  
c c  c  c 1 c . c  .% 
c c . c c
-cc cc c5.
cc - c c-c0cc .c0 c c
 cc- ccc-cc c0 c. ccc

cc0- c -c0cc .c0 cc cc


cc   cc
c c -c cc cc  cc c. c c c cc
ccc c c c .ccc1 c ccccc c
' c 
c - c  c  .c c 4 c    .c c c0-c  c 

 c c$c0 cc ccc -cc c 
ccc. cc c
 cccccc0c c c 
cc c c-c c
c c 5. c c c  c c c c .c  c c 4c 5. c c . c
c   ccc c cc ccc- cc. c7 c8cc

!c

c
   cc c  c!"c

c c  4c c c . c .c 0


c -c  
c c   c c c
 cc cc. cccc5. cc .c0cc c. c7c

ccc c ccc cc8cc.  cc cc
cc  ccc. cc5. cc .c0cccccc .c
cc7 c!8c c5. c cc. c . 
cc.  c
c
cc. c. c  ccccc. c
cc*"9cc
c  c .
c c c  c c 0c  c .c c c c 
c
-c  c  c c  c c c  c 0c c c  c c c -c c
. ccc..c

cc5. c .c0c c.


c4 c ccc cc7 c'8c-cc
 c c .  c c c c c 0c c c c c 0c  c c *"9c

cc1 
cc cccc c .
cc cc- c 0 c
. c c 0c c .c c . c 4 c c 5.c c 0 c c . c c
.c c c c c .  c . 
c -c c 0c c c
c .c cccc. 4 c
c  ccc .cccc c 
c
cc c .c ccc. cc .c0
c.c4 ccc c
cc

4 ccccccccc-ccccc c. cc


c .c0ccccccc-c  c .cc c ccc
ccc .c0
cc ccc  c ccccc-cc
. c c  c c  c c c 0c c .c 0c $c c c - c
 cc0c ccc  
cc  ccc cc0c
 c ccc ccc c

Fighting Phishing
c ccc ccc. 
c .c c-ccc c ccc
 c c c c  c c . c -c c c c  c . c c . c
  c c c  4c . 
c c  
c  c c c  c 5. c c c
. cc -
ccc-ccccc. ccc. c cc
 c
c cc c . cc. cc -
cc0cc0c 
c
.cc0
ccc-c c c c - c

c . c c c c  -


c  c  c    .c  c c  c c
0
c  c  c  c c  c .c  c 0
c c  c c
 c-cccc    .cc c    .ccc. c  cc
c. 4 c- c  ccc ccc. cc -
cc .c
0 c c c c    .c c c c c . c c .c c
0.c #.c 7 #8
c c   c c  c 0 c  c c . c 0c
 ccc  - c c c c . 4 c 
c c c c  c c  c

ccc cc c c cc c. cc -ccc
 ccc cc cc -cc  cc  c.cc. cc - cc
0c cc.c  c . c cc

Windows CardSpace and Other Microsoft Technologies


c c cc  cc c 
c .cc -&c

!(c

c
   cc c  c!"c

·c  &c$. cc  ccc  c  c .c c .cc


. 
cc.  c cc.cc
ccccc c
 cc. cc cc. cc3. cc cc. c
c

·c c &c .c4 cc. c  


c c c- c. cc
 ccc cccccc  cc c c  
c1cc
c- cc. c c  c c- c cccc

·c - c#c &c 4 c#c cc  c c cccc cc
cccc- cc ccc 4cc
 cc#c c7 c0-c c% 8
c cc-c c5.c
c  cc

Conclusion

c c -0c!"c cc  cccc c- cc


c $. c c c 1c  c  
c  c  c  c c .c c c c
c  c$c. c c. c  cccc.
c c
 c c c 0c c - c c c c .c c c 
c c   c c
  cc. cc. c ccc c -0c!"cccc-cc

c c c  cc


cc c -0c c.cccc cc
-c- c  c c - ccc 
c

cc c  
cc
-0c cc c .cc-c
 . c.c,
cc c -0c!"c
  c 4 c.c ccccc c c

About the Author

c  c  c % c c  c c  c 7--- 8c c c
 
c c.c c 0
c-
cc . 
cc  cc  c
.cc- c. 
c. 
cc0cc  c.c c -c

!c