IgorShare Thoughts and Ideas

Consulting and Training

Reflections on the Microsoft WPF Certification BETA Exam (70-502)

Posted by Igor Moochnick on 01/25/2008

Click to get the running application

[ Update: just got a word that I’ve passed the test. Good luck to those who plan to take the test. ]

Today I’ve tried Microsoft’s WPF Certification BETA exam. The exam is still rough: a lot of confusing questions, a bunch of questions with more than one correct answer and a bunch with no correct answer at all. At the end of the exam I was asked to provide my comments and I was happy to, but … I was timed on this portion as well !!! They give you a very limited time to review all the questions again in a very short time. The same amount of questions that took me 2 hours to complete. This was the most bizarre experience ever – they ask for our opinion and do not want to listen to you. How do you like that?!!

If you want to be prepared for the exam, try to replicate my result on the left. It’ll give you a great deal of experience and will cover about 50% of the needed skills. If you’ll make sure that you can retrieve all the presented information from an external source as well as let a user to select a single item from a collection – this will cover the biggest remainder of the needed skills.

Make sure to check the preparation guide for exam 70-502 for a detailed list of skills.

For the lazy ones I provide the XAML code and the running app. I do not claim that this is the most beautiful solution, but it’s the most elegant and short one I’ve came up with.

<?xml version="1.0" encoding="utf-8"?>
<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:d="http://schemas.microsoft.com/expression/blend/2006" mc:Ignorable="d"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" x:Class="MarilynSite.Page1" x:Name="Page"
  WindowTitle="Page"
  FlowDirection="LeftToRight"
  Width="Auto" Height="Auto"
  WindowWidth="740" WindowHeight="680">
  
  <Page.Resources>
    <Canvas x:Key="BookWithReflection" Width="138" HorizontalAlignment="Left">
      <Canvas x:Name="MainSource">
        <Border BorderThickness="2,2,2,2" CornerRadius="4,4,4,4" Width="137.702" Height="184">
          <Border.BorderBrush>
            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
              <GradientStop Color="#FFFAAA00" Offset="0"/>
              <GradientStop Color="#FFFFFFFF" Offset="1"/>
            </LinearGradientBrush>
          </Border.BorderBrush>
          <Image Source="http://marilyn-armstrong.com/yahoo_site_admin/assets/images/FromTheBridge.35063808_std.gif" Width="138.702" Height="205" />
        </Border>
        <Label Content="The 12-foot Teepee" FontWeight="Bold" Foreground="#FFFFFFFF" FontSize="12" Canvas.Top="33" Canvas.Left="5" RenderTransformOrigin="0.5,0.5">
          <Label.RenderTransform>
            <TransformGroup>
              <ScaleTransform ScaleX="1" ScaleY="2.5"/>
              <SkewTransform AngleX="0" AngleY="0"/>
              <RotateTransform Angle="0"/>
              <TranslateTransform X="0" Y="0"/>
            </TransformGroup>
          </Label.RenderTransform>
        </Label>
        <Label Content="Merilyn Armstrong" FontWeight="Bold" Canvas.Top="83" Canvas.Left="8">
          <Label.Foreground>
            <LinearGradientBrush EndPoint="0.886,0.516" StartPoint="0.071,0.516">
              <GradientStop Color="#FF000000" Offset="0"/>
              <GradientStop Color="#FFFFFFFF" Offset="1"/>
            </LinearGradientBrush>
          </Label.Foreground>
        </Label>
      </Canvas>
      <Rectangle Height="100" Width="136" HorizontalAlignment="Left" VerticalAlignment="Bottom" RenderTransformOrigin="0.5,0.5" d:LayoutOverrides="VerticalAlignment" Canvas.Top="171">
        <Rectangle.RenderTransform>
          <TransformGroup>
            <ScaleTransform ScaleX="1" ScaleY="-1"/>
            <SkewTransform AngleX="0" AngleY="0"/>
            <RotateTransform Angle="0"/>
            <TranslateTransform X="0" Y="30"/>
          </TransformGroup>
        </Rectangle.RenderTransform>
        <Rectangle.OpacityMask>
          <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
            <GradientStop Color="Transparent" Offset="0"/>
            <GradientStop Color="#99666666" Offset="1"/>
          </LinearGradientBrush>
        </Rectangle.OpacityMask>
        <Rectangle.Fill>
          <VisualBrush Visual="{Binding ElementName=MainSource}" />
        </Rectangle.Fill>
      </Rectangle>
    </Canvas>
    <Storyboard x:Key="RockCover" RepeatBehavior="Forever" AutoReverse="True">
      <Rotation3DAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="geometryModel3D" Storyboard.TargetProperty="(Model3D.Transform).(Transform3DGroup.Children)&#91;2&#93;.(RotateTransform3D.Rotation)">
        <SplineRotation3DKeyFrame KeyTime="00:00:00">
          <SplineRotation3DKeyFrame.Value>
            <AxisAngleRotation3D Angle="20" Axis="0,1,0"/>
          </SplineRotation3DKeyFrame.Value>
        </SplineRotation3DKeyFrame>
        <SplineRotation3DKeyFrame KeyTime="00:00:05">
          <SplineRotation3DKeyFrame.Value>
            <AxisAngleRotation3D Angle="20" Axis="0,-1,0"/>
          </SplineRotation3DKeyFrame.Value>
        </SplineRotation3DKeyFrame>
      </Rotation3DAnimationUsingKeyFrames>
    </Storyboard>
  </Page.Resources>
  
  <Page.Triggers>
    <EventTrigger RoutedEvent="FrameworkElement.Loaded">
      <BeginStoryboard Storyboard="{StaticResource RockCover}"/>
    </EventTrigger>
    <EventTrigger RoutedEvent="FrameworkElement.Loaded">
      <BeginStoryboard Storyboard="{StaticResource RockCover}"/>
    </EventTrigger>
  </Page.Triggers>

  <Page.Background>
    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
      <GradientStop Color="#FF000000" Offset="0"/>
      <GradientStop Color="#FF7C7C7C" Offset="1"/>
      <GradientStop Color="#FF4D4D4D" Offset="0.586"/>
      <GradientStop Color="#FF959595" Offset="0.538"/>
    </LinearGradientBrush>
  </Page.Background>

  <Grid x:Name="LayoutRoot">
    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="0.4*"/>
      <ColumnDefinition Width="0.6*"/>
    </Grid.ColumnDefinitions>
    <Viewport3D Margin="8,29,0,28" RenderTransformOrigin="0.5,0.5" Width="270" HorizontalAlignment="Left" Grid.Column="0">
      <Viewport3D.RenderTransform>
        <TransformGroup>
          <ScaleTransform ScaleX="1" ScaleY="1"/>
          <SkewTransform AngleX="0" AngleY="0"/>
          <RotateTransform Angle="0"/>
          <TranslateTransform X="0" Y="0"/>
        </TransformGroup>
      </Viewport3D.RenderTransform>
      <Viewport3D.Camera>
        <PerspectiveCamera FieldOfView="45" FarPlaneDistance="100" LookDirection="0,0,-4" NearPlaneDistance="0.1" Position="0,0,3.4142135623731" UpDirection="0,1,0"/>
      </Viewport3D.Camera>
      <Viewport3D.Children>
        <ModelVisual3D x:Name="LightSource">
          <ModelVisual3D.Content>
            <AmbientLight />
          </ModelVisual3D.Content>
        </ModelVisual3D>
        <ModelVisual3D>
          <ModelVisual3D.Content>
            <GeometryModel3D x:Name="geometryModel3D">
              <GeometryModel3D.Transform>
                <Transform3DGroup>
                  <TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0"/>
                  <ScaleTransform3D ScaleX="1" ScaleY="1" ScaleZ="1"/>
                  <RotateTransform3D d:EulerAngles="0,0,0"/>
                  <TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0"/>
                  <TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0"/>
                </Transform3DGroup>
              </GeometryModel3D.Transform>
              <GeometryModel3D.Material>
                <DiffuseMaterial>
                  <DiffuseMaterial.Brush>
                    <VisualBrush Visual="{StaticResource BookWithReflection}" ViewboxUnits="RelativeToBoundingBox" />
                  </DiffuseMaterial.Brush>
                </DiffuseMaterial>
              </GeometryModel3D.Material>
              <GeometryModel3D.Geometry>
                <MeshGeometry3D Positions="-.9,-2,0 .9,-2,0, .9,2,0 -.9,2,0" TriangleIndices="0 1 2, 0 2 3" TextureCoordinates="0,1 1,1 1,0 0,0" />
              </GeometryModel3D.Geometry>
            </GeometryModel3D>
          </ModelVisual3D.Content>
        </ModelVisual3D>
      </Viewport3D.Children>
    </Viewport3D>
    
    <Grid Margin="8,8,8,8" Grid.Column="1" Background="#FFCCCCCC">
      <FlowDocumentReader>
        <FlowDocument ColumnWidth="300" IsOptimalParagraphEnabled="True" IsHyphenationEnabled="True">
          <Section FontSize="16" Foreground="Black">
            <Paragraph>
              <Figure Width="180" Background="Silver"
              HorizontalAnchor="PageLeft"
              HorizontalOffset="0" VerticalOffset="40">
                <Paragraph IsHyphenationEnabled="True" FontSize="12"
                FontStyle="Italic" TextAlignment="Left">
                  "Nevertheless, Armstrong’s distinctive pathos in the way her narrative flowingly handles an unredeemable childhood with an adulthood filled with love and longing but continued financial and health-related chaos is indeed a winning account of elusive self-discovery…the results are refreshingly therapeutic."
                </Paragraph>
                <Paragraph FontSize="8">"</Paragraph>
                <Paragraph FontWeight="Bold" FontSize="12">– Frank Ochieng, World Voice News"</Paragraph>
              </Figure>
              Coping with the emotional and spiritual debris left by her horribly abusive childhood while simultaneously grappling with a seemingly endless parade of crises, Maggie decides its time to change her world by changing herself.
            </Paragraph>
            <Paragraph>
              She launches an improbable quest for spiritual rebirth by building a teepee in the woods behind her home in New England. Amidst the tall oaks, clawing blackberry brambles and voracious mosquitoes, she forges her own unique path to salvation. It’s not a traditional path, but it’s the only path Maggie can follow.
            </Paragraph>
            <Paragraph>
              <Floater Width="180" Background="Silver">
                <Paragraph IsHyphenationEnabled="True" FontSize="12"
                FontStyle="Italic" TextAlignment="Left">
                  "Marilyn’s life events, including her current day spiritual journey involving her family and the building of a backyard teepee, make for a reflective, honest and very touching story. It is a life of pain, reflection, tears, family and laughter, presented by someone who exhibits fine skills as a writer. Here is one book about life’s challenges and getting through them that will not only make you think … it will make you feel."
                </Paragraph>
                <Paragraph FontSize="8">
                </Paragraph>
                <Paragraph FontWeight="Bold" FontSize="12">– Jordan Rich, WBZ 1030AM, Host - "The Jordan Rich Show"</Paragraph>
              </Floater>
              As the teepee goes up, Maggie grows up. Better late than never, she finally frees herself from her haunted past. Her sense of humor lends her strength as she struggles up the rocky road to healing and peace.
            </Paragraph>
            <Paragraph>
              At the same time shocking, witty, raw and timely, "The 12-Foot Teepee" will keep you turning pages as Maggie’s quixotic journey of self discovery and healing unfolds.
            </Paragraph>
          </Section>
        </FlowDocument>
      </FlowDocumentReader>
    </Grid>
  </Grid>
</Page>
Advertisements

4 Responses to “Reflections on the Microsoft WPF Certification BETA Exam (70-502)”

  1. […] I’ve mentioned in my previous post Reflections on the Microsoft WPF Certification BETA Exam (70-502) – it was not a hard exam but it definitely covered a lot of […]

  2. Wow. This article got marked with a “private” flag somehow – now everything should work.

  3. 70-502 said

    Perfect!!! This really helps a lot , i am going for this 70-502 exam now.

  4. Satya said

    Hi Igormoochnick,

    The link for “preparation guide for exam 70-502” is not working, could fix this please.

    I am planning to take this exam and I believe your tips could help me.

    Thanks in advance,
    Satya

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: