最近几天参加了IdentityMine 的一个Silverlight培训。 identityMine跟微软的公司很好,他做的很多Case都是Microsoft的。可以从www.identityMine.com 看到他们在WPF和Silverlight方面的一些case。
他们公司的人大概有三种,一种是Designer一种是开发人员。另外一个很重要的就是Integrator。做两者的沟通,培训的一个将是 Robby 就是一个integrator。很有designer的sense,技术有不错。
推荐他的blog, www.nerdplusart.com 他的blog还被列在sliverlight的showcase上面。
他还做了一个xaml 编辑工具 http://kaxaml.com/。
对于开发人员,我们更多的考虑数据的集成,业务的设计。而很多界面和动画上的东西都会觉得很复杂,以前我觉得做一个小球在箱子理撞来撞去的应用觉得很复杂,要计算运动轨迹。。。
后来看了一个他们做的demo,超简单。代码如下,呵呵。就是xy按照不同的速度然后原路运动而已。一下是一个demo,呵呵
<Canvas.Resources>
<EventTrigger x:Name="et" RoutedEvent="Canvas.Loaded">
<BeginStoryboard >
<Storyboard>
<DoubleAnimation BeginTime="0" Duration="0:0:3" Storyboard.TargetName="red"
Storyboard.TargetProperty="(Canvas.Left)" From="0" To="350" AutoReverse="True" RepeatBehavior="Forever" ></DoubleAnimation>
<DoubleAnimation BeginTime="0" Duration="0:0:2" Storyboard.TargetName="red"
Storyboard.TargetProperty="(Canvas.Top)" From="0" To="350" AutoReverse="True" RepeatBehavior="Forever"></DoubleAnimation>
<DoubleAnimation BeginTime="0" Duration="0:0:3" Storyboard.TargetName="green"
Storyboard.TargetProperty="(Canvas.Left)" From="50" To="350" AutoReverse="True" RepeatBehavior="Forever" ></DoubleAnimation>
<DoubleAnimation BeginTime="0" Duration="0:0:2" Storyboard.TargetName="green"
Storyboard.TargetProperty="(Canvas.Top)" From="50" To="350" AutoReverse="True" RepeatBehavior="Forever"></DoubleAnimation>
<DoubleAnimation BeginTime="0" Duration="0:0:3" Storyboard.TargetName="blue"
Storyboard.TargetProperty="(Canvas.Left)" From="100" To="350" AutoReverse="True" RepeatBehavior="Forever" ></DoubleAnimation>
<DoubleAnimation BeginTime="0" Duration="0:0:2" Storyboard.TargetName="blue"
Storyboard.TargetProperty="(Canvas.Top)" From="100" To="350" AutoReverse="True" RepeatBehavior="Forever"></DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Canvas.Resources>
<Ellipse Height="50" Width="50" Fill="#FFEE6C13" StrokeThickness="0" x:Name="red"
HorizontalAlignment="Left" VerticalAlignment="Top"/>
<Ellipse Width="50" Fill="#FFB3E80C" StrokeThickness="0" Height="50" x:Name="green"
HorizontalAlignment="Left" VerticalAlignment="Top"/>
<Ellipse Width="50" Fill="#FF09D1F0" StrokeThickness="0" Height="50" x:Name="blue"
HorizontalAlignment="Left" VerticalAlignment="Top"/>
</Canvas>