Visual Studio智能设备开发之C#项目常见问题

1.为智能设备开发程序都需要哪些开发工具?  
  
要进行智能设备开发,需要Visual Studio 2005标准版或者以上版本(建议打上SP1补丁),或者Visual Studio2008的专业版或以上版本。所有的速成版都不支持智能设备开发。
  
另外,要在Visual Studio 2008上为Windows Mobile 6开发程序,你需要先安装Windows Mobile 6 SDK。安装顺序如下:
1.如果你以前安装过Windows Mobile 6 SDK,先把它卸载掉。
2.安装Visual Studio 2008。
3.安装Windows Mobile 6 SDK。
相关问题:
http://social.msdn.microsoft.com/forums/en-US/windowsmobiledev/thread/090261cd-2e2b-4649-ad75-61dbe5a23c8f/
2.如何播放声音和视频文件? 
在.NET Compact Framework 3.5 里面,有一个SystemSound类可以用来播放系统声音,还有一个Sound Player类可以播放.wav音频文件。如果你用的是以前的版本,你可以P/Invoke 函数PlaySound 或者 SndSetSound来播放声音文件。
  
对于.mp3和.wmv格式的音频文件,你会发现在.NET CF的基础类库里面没有播放他们的类。播放它们最简便的方法就是交给Shell:
 
string path = "path to the audio file";
ProcessStartInfo info = new ProcessStartInfo() { FileName = path, UseShellExecute = true};
Process.Start(info);
 
 
另一种方法是用wmp.dll。首先在项目里添加一对C:\windows\system32\wmp.dll的引用,然后用下面的代码进行播放:
WMPLib.WindowsMediaPlayer player = new WMPLib.WindowsMediaPlayer();
player.URL = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\song.mp3";
player.settings.volume = 100;
player.controls.play(); 
下面说如何播放视频。你也可以用Shell来播放视频文件。如果你想在自己的程序里面集成一个 Media Player,最容易的办法就是用第三方的控件,比如OpenNETCF Media Player Controls。另一种方法是自己做一个这样的控件,但并不是那么容易:
Hosting ActiveX Controls in Compact Framework 2.0 Applications
在论坛中有许多相关的问题:
http://social.msdn.microsoft.com/forums/en-US/netfxcompact/thread/e2b1780d-7841-462f-9cfe-0a72d7781d5f
http://social.msdn.microsoft.com/forums/en-US/vssmartdevicesvbcs/thread/4e35bad0-9eae-4ed8-ada5-bd249411fa1f
3.智能设备上的WCF都支持什么? 

随着.NET Compact Framework 3.5的发布,Windows Communication Foundation (WCF) 的一部分功能被加了进来。这只是一个子集,所以不具备桌面版的所有功能。特别地,服务器端开发是不支持的。

  
下面的链接里面详细介绍了智能设备上的WCF所支持的特性:
The WCF subset supported by NetCF   
Messaging in the .NET Compact Framework
4.怎样为自定义控件添加设计时支持?  
在.NET Compact Framework里,控件的代码和为控件提供设计时支持的代码是分装在不同的程序集里面的。这是与桌面版的Windows Forums不同的。包含设计时支持的程序集是为桌面编译的,并且用一个XML文件(.xmta)来配置。如果熟悉WPF的话你会发现它们提供设计时支持的模式是非常相似的。
  
关于设计时支持的资料比较少,这里提供一些:
Creating a Custom Control (Visual C#) 
MSDN Webcast: Creating Custom Controls for Managed Code in Visual Studio 2005 (Level 200) (Download Sampe)
  
下面是一个论坛里面的相关帖子:
http://social.msdn.microsoft.com/forums/en-US/netfxcompact/thread/cbffc07a-5639-4c57-9e7d-1dc344a72ae5/ 
5.怎样让我的程序识别方向和分辨率?  
  
使你的程序适应不同的外观设置和显示方向是非常令人兴奋的特性。有一个项目叫做“Adapt Your App”,它能够帮助你开发这样的程序。
  
这里还有一些有用的文章:
Step by Step: Developing Orientation-Aware and Resolution-Aware Windows Mobile-based Applications in Native Code
Developing DPI-Aware Applications
  
下面是一些相关帖子:
http://social.msdn.microsoft.com/forums/en-US/vssmartdevicesnative/thread/6656f82e-6de8-4fc7-8e17-61dbe6bc5f77/  
http://social.msdn.microsoft.com/forums/en-US/netfxcompact/thread/13c4e7be-4172-4846-92e2-9d390ab962f4/
6.怎么拦截短消息?  
MessageInterceptor类能够拦截满足一定条件的短消息,并且你可以选择直接删除被拦截的短消息,或者在程序里得到它的一份拷贝。
  
当设备收到一条短消息时,你甚至能够让你的程序自动启动。在下面里文章里有示例代码:
http://www.peterfoot.net/UsingMessageInterceptorToLaunchAnApplicationOnSMS.aspx
  
如果你发现MessageInterceptor类所提供的功能无法满足你的需要,你可以开发一个实现了IMailRuleClient接口的非托管的Message Rule Client。详细的方法请见下面的文章:
Receiving SMS Messages inside a Managed Application
7.如何开发一个展台模式 (Kiosk Mode) 的应用程序?  
Windows Mobile平台并不支持展台模式。如果你正试图开发一个这样的程序的话,可能会碰到一些问题,比如在切换窗体时任务栏可能会闪动。
  
下面是一些相关文章:
Supporting Kiosk-Applications on Windows Mobile ("Technically achievable" vs. "supported") 
Windows Mobile in Kiosk Mode
Windows CE Kiosk Mode - Part 11
Create a Windows CE Image That Boots to Kiosk Mode
8.关于ASP.NET的问题到哪里问?  
关于为智能设备开发ASP.NET程序有一个专门的论坛:http://forums.asp.net/48.aspx 。在那里你会得到更好的帮助。
 
 
posted @ 2010-01-19 18:04  looky  阅读(1769)  评论(0编辑  收藏  举报