Windows Phone 7 Dev. 心得体会
刚接触Winphone开发不到一个月,跟着一个社交软件的项目边做边学,有一些小的心得。
首先,当然是语言基础了。WinPhone的开发语言是C#,对于这个既熟悉又陌生的语言,刚接触的时候总感觉不想看教程,但是有些地方读不懂。
对于学过C++以及Java的人来说,我的感觉是,C#是C++和Java的集成。因为C#是为了.NET框架而开发的,所以它编译生成的也是类似于Java字节码的中间代码,然后在不同的平台上利用虚拟机来执行。
C#跟C++的区别我觉得主要有一下几点:支持了Lambda表达式(不过语法不太一样)、有内存回收机制、多了名称空间的概念(类似于Java的package,用using关键字来引用)、没有像C++中的那种指针类型等等、Event类型等等,觉得在C#中常常看到C++,Java的身影但是又有别于它们。
不过个人感觉,精通C++和Java的人学C#应该顶多几天就能掌握。
语言掌握之后,接下来就是Silverlight。
Silverlight是一个跨浏览器、跨客户平台的技术,能够设计、开发和发布有多媒体体验与富交互(RIA,Rich Interface Application)的网络交互程序。WinPhone的开发使用的是精简之后的Silverlight,主要体现在支持的控件上。在Silverlight中可扩展应用程序标记语言(XAML)提供了创建WPF元素的声明性标记,而wp的View开发基本都是在Xaml上进行的。
XAML是一种类似于XML的标记语言,只不过支持扩展更多的工具。我感觉XAML就像MFC中的Dialog资源,只不过能够用XML的方式来表示容器、控件之间的层次关系,而且能够自己开发在XAML中使用的控件。每个XAML文件都附带一个.xmal.cs的源文件,功能类似于CDialog.cpp,主要是这个View的构造,初始化,状态保存之类的方法。
在wp开发中,常用的开发模式是MVVM。所谓的MVVM,全称是Model-View-ViewModel。如果你以前接触过Web的开发,那么你应该知道MVC(Model-View-Controller)。其实个人感觉,MVVM是MVC更加严格的区分,ViewModel类似于Controller的职能,只不过在MVC里面,View中还会包含部分无法避免的逻辑,在MVVM中将严格的把逻辑放在了ViewModel中,把显示-逻辑-模型严格区分开。
简单举个例子。比如有个发送信息的程序,包含的文件:SendMessage.xaml、SendMessage.xaml.cs、SendMessageViewModel.cs、SendMessageModel.cs。
前两个文件主要是负责发送信息的界面显示、比如包含了一个TextBox,一个Common,一个TextBlock。在SendMessage.xaml.cs中有保存State的方法,恢复state的方法(因为在winphone里没有多进程,后台程序会墓碑化),已经View初始化,DataContext的绑定等。
然后Common绑定到ViewModel中的某个委托方法,委托方法调用Model中的方法来发送信息。
大概的逻辑就这样了。
最后,学习WinPhone开发还需要学习一些比较核心的东西,比如动画、导航、手势之类的。这些建议看看书,跟着学很快就能掌握了。
以上只是个人的心得,如有不对的地方,还望各路大神能给小生些指导
本文来自futhorclyunt的博客,原文地址:http://blog.csdn.net/futhorclyunt/article/details/7819893