Welcome to MSDN Blogs Sign in | Join | Help

Giorgio Sardo Blog

The Music Box of the Web
Building graphically advanced applications with the .NET Compact Framework 3.5 Tutorial Published

BEPS_pro_stampa Silverlight for mobile is great. It allows you to build Rich (Mobile) Internet Application quickly and easily, using XAML and C#. HOWEVER, the .NET Compact Framework is not dead! Depending on the scenario and the application you are building, the .NET CF could still be the best technology to adopt (as we’ve seen in the MLB202 session at Tech ED EMEA).

 

Using the .NET Compact Framework you have access to all the low level APIs of your phone, including those need to build advanced UI with custom controls, transparency and so on…

With the support of Marco Bodoira, Embedded Consultant at BEPS Engineering, we built a sample solution to show how to use the .NET Compact Framework 3.5 and Windows Mobile’s APIs to create “graphically advanced” applications.

The article (and the source code!) will give you an overview of:

  • Writing custom controls
  • Using the double buffering
  • Adding alpha channel transparency
  • Building custom a Message Box
  • Interacting with the phone API

The article is available here.
The source code is available here.

Thanks again to Marco and BEPS Engineering for their support.

Technorati Tags:
Posted: Thursday, November 20, 2008 9:57 AM by gisardo

Comments

JoeW said:

It would be great if the CF had a WPF light that provided an upgrade path from Silverlight apps (like the desktop strategy).

# November 20, 2008 12:21 PM

Freesc said:

hi,Giorgio

thanks for your excellent article , but it seems that the hyperlink to the source code is not available.i don't know if it's my network problem ;-)

BR

Freesc

# November 20, 2008 7:53 PM

gisardo said:

Thank you for the feedbacks.

JoeW: I agree with you. However we don't have any plan yet on taking WPF to WM, as we are focusing on having Silverlight across (many) devices...

Freesc: fixed! Thanks!

G.

# November 21, 2008 2:41 AM

daniel_lidstrom said:

Hi,

thanks for a nice article. However, the program does not adapt itself very well to different display sizes. For example, I am trying it on an Xperia (800x480) and it just doesn't look good. Things end up on top of each other it seems.

# November 26, 2008 7:40 AM

Mighell's Mobile Blog said:

L’amico Giorgio Sardo ha pubblicato qualche giorno fa un interessantissimo tutorial sulla creazione di

# November 27, 2008 3:56 AM

Dr.Luiji said:

Good overview Giorgio, it's help me a lot in my current project. Many thanks.

# November 27, 2008 3:57 PM

Christopher Fairbairn said:

Thanks for the great article and sample source code. There is alot to digest.

One comment though is that the MessageBoxCustom class needs a few minor tweaks.

The way it generates the illusion of a transparent window showing the contents of the previous window doesn't deal with repaints too well.

For example try rotating the screen with a message box open or send your device a SMS text message (hence getting a popup notification).

Ideally the initial screen display needs to be stored so it can be repainted rather than inhibiting the OnPaintBackground processing.

# November 27, 2008 10:57 PM

Juan Foegen said:

Why is the InertialSystem called via an Invoke?  The SlidingListControl would be created on the UIThread anyway so I would think creating the timer would not be an issue.  Just wondering what I am missing.

Thanks.

# December 9, 2008 9:49 AM

Marco Bodoira said:

Good observation! Thanks for pointing that out. In that case there is no need to invoke. It will be corrected in the next version of the source code.

Thanks.

# December 11, 2008 2:51 AM

Yoni said:

I'm linking this very inspiring and excellent tutorial on my blog.

# March 19, 2009 10:42 AM

tiffany said:

thanks for a nice article. However, the program does not adapt itself very well to different display sizes. For example, I am trying it on an Xperia (800x480) and it just doesn't look good.

# August 16, 2009 3:43 AM
Leave a Comment

(required) 

(required) 

(optional)

(required) 

  
Enter Code Here: Required

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Page view tracker