Ramp Up for Windows Mobile 6#

With Windows Mobile 6.5 being complete it might be time to Ramp Up on developing for Windows Mobile.  There are 7 free courses you can take:

Level 1: Mobile Development Introduction
Level 2: Device Emulators
Level 3: Mobile Windows Forms Development
Level 4: Advanced Mobile Windows Forms Development
Level 5: SQL Server CE Introduction
Level 6: Security and Deployment
Level 7: Mobile Web Development

Remember if the above is not enough, we offer Windows Mobile developer training to get your developers up and running with developing for Windows Mobile.

There is also training available on ASP.NET, Sharepoint, Visual Studio 2008 and developer basics.  Check it out and get some free training.


Tuesday, May 19, 2009 1:16:51 PM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  | 

 

Convert an Image to Grayscale with Compact Framework on Windows Mobile#

I’m working with a customer and they have a requirement to convert an image to gray scale.  Using direct pixel access method discussed here and extension methods it’s pretty straight forward.

public static Bitmap ModifyColors(this Bitmap image, double redChange, double greenChange, double blueChange)
{
    if (image == null)
        return null;
    Bitmap newBitmap = (Bitmap)image.Clone();

    int width = newBitmap.Width;
    int height = newBitmap.Height;

    unsafe
    {
        BitmapData bd = newBitmap.LockBits(new Rectangle(0, 0, newBitmap.Width, newBitmap.Height),
            ImageLockMode.ReadWrite,
            PixelFormat.Format24bppRgb);
        int sourceWidth = newBitmap.Width * System.Runtime.InteropServices.Marshal.SizeOf(typeof(PixelData));
        if (sourceWidth % 4 != 0)
            sourceWidth += (4 - (sourceWidth % 4));
        Byte* bitmapBaseByte;
        bitmapBaseByte = (Byte*)bd.Scan0.ToPointer();
        PixelData* pPixel;
        int redVal;
        int greenVal;
        int blueVal;
        for (int y = 0; y < height; y++)
        {
            pPixel = (PixelData*)(bitmapBaseByte + y * sourceWidth);
            for (int x = 0; x < width; x++)
            {
                redVal = (int)(pPixel->red * redChange) + (int)(pPixel->green * greenChange) + (int)(pPixel->blue * blueChange);
                if (redVal < 0) redVal = 0;
                if (redVal > 255) redVal = 255;
                pPixel->red = (byte)redVal;

                greenVal = (int)(pPixel->red * redChange) + (int)(pPixel->green * greenChange) + (int)(pPixel->blue * blueChange);
                if (greenVal < 0) greenVal = 0;
                if (greenVal > 255) greenVal = 255;
                pPixel->green = (byte)greenVal;

                blueVal = (int)(pPixel->red * redChange) + (int)(pPixel->green * greenChange) + (int)(pPixel->blue * blueChange);
                if (blueVal < 0) blueVal = 0;
                if (blueVal > 255) blueVal = 255;
                pPixel->blue = (byte)blueVal;

                pPixel++;

            }
        }

        newBitmap.UnlockBits(bd);
    }

    return newBitmap;
}

Basically all we are doing is getting direct access to the pixel data using a pointer and modifying the RGB values with the parameters sent by the user.  In our main code where we want to convert the image, lets say we have an image in a PictureBox that we want to convert and store the result in a new PictureBox all we have to do is call one line of code:

pictureBox2.Image = pictureBox1.Image.ToGrayScale();

Here is a sample of the input/output:

image

And you can download the source for converting an image to grayscale here


Tuesday, May 19, 2009 12:28:54 PM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  | 

 

Share your Mobile Moment#

Microsoft Canada just launched a contest called Windows Mobile Moments.

Upload a photo with a short description of your Moment—whatever mobile device you happen to use. Then, on April 27, 2009, your Moment will appear for everyone to view and vote for.

You can submit your moment until June 13 and voting continues to June 15.  What’s the grand prize?  $10,000 which is not too bad!  Secondary prizes are an XBox Elite or Samsung OMNIA plus, each vote automatically enters the voter into a draw to win 1 of 3 Samsung OMNIA™ devices from Bell or Telus.

Remember even if you don’t have a Windows Mobile Phone you are still eligible. Check out the rules and regulations and submit your mobile moment!


Monday, April 20, 2009 9:45:29 AM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  | 

 

AGO, Windows Mobile and Ignite IT Awards#

I recently completed a project with Art Gallery of Ontario were we used a Windows Mobile device to play media related to a work of art.  The Windows Mobile device was encased in a plastic enclosure and mounted on the wall so the users would only have access to the touch screen and the application was set to run in ‘Kiosk mode’.  We are putting together a case study on the solution delivered and will post the link on my blog once it’s up if you are interested in more details.

Reason for this post?  Well, I submitted the solution to the Ignite IT Canada awards being held by Microsoft Canada.  You can see a description of the solution and if you like it vote for me!

Here is an image of the software in action.

 

Kiosk  

Pretty cool to see people of all ages use software you have built to learn more about the artwork in the gallery!  Remember, don’t forget to vote!


Thursday, March 12, 2009 3:29:53 PM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  | 

 

Toronto CodeCamp 2009#

The 2009 version of Toronto CodeCamp is coming up on April 25 2009.  I’ll be there and of course doing a session on Windows Mobile.  If you are in the Toronto area and have some time on a Saturday there will be some great sessions going on. Best part about it is it’s free … and that’s a good thing these days!


Thursday, March 12, 2009 10:37:58 AM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  | 

 

Mobile Incubation Week for Startups#

There has definitely been a lot happening in the Windows Mobile world lately and for good reason, the competition is heating up! 

Here is another good piece of information, if you are building a mobile application and are a start-up you will definitely want to take a look at Mobile Incubation Week being held at Microsoft’s Silicon Valley Campus from April 13-17.  The only requirement, you are planning on building for Windows Mobile 6.1 or 6.5 and you don’t even have to have an application built.  Your app could be one of the first apps featured in the new Windows Marketplace for Mobile.

To nominate your team send an email to Mobile Incubation Week with the following:

  • Contact information
  • Geography: North America, Europe, Asia
  • Size of company and year founded (if applicable)
  • Overview of your idea
  • Why you’d like to participate
  • How your application is unique to Windows Mobile
  • *Note: please do not send confidential materials at this time as no NDA has been signed

Spots are limited so hurry!  Also if you are a start-up and use Microsoft technology you should probably leverage Microsoft Startup Zone and especially BizSpark.  $100 gets you a lot of software from Microsoft for development *and* for production.


Thursday, March 12, 2009 10:31:00 AM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  | 

 

Windows Marketplace for Mobile Details#

You may or may not have heard about Windows Marketplace for Mobile but Microsoft recently announced the developer strategy for the Marketplace.

As a developer myself here are the key facts:

  1. You get 70% and Microsoft gets 30%
  2. $99/year and you can have up to 5 applications in the marketplace.  After that it’s $99/app/year.  If you are in the DreamSpark program, it’s free.
  3. Available in 29 markets.
  4. Doors open sometime in Spring 2009.

If you are serious about selling your apps this is not a bad price to pay to be part of the Marketplace.  The pricing is similar to iPhone App Store and that has been pretty successful.   I just hope Microsoft gets some good market penetration with Windows Mobile 6.5 and get a large user base to buy the apps!

The Windows Mobile Team blog has a lot more details on Marketplace for Mobile and a video with the product manager for Marketplace.


Thursday, March 12, 2009 10:25:06 AM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  | 

 

Windows Mobile Links#

People have been asking me for links to get more information on Windows Mobile.  Here is a list that I have been sharing:

  1. Windows Mobile for the End User – everything you need from an end user perspective to the many different Windows Mobile phones to various features available on your phone. There is a great section on Help and How to, Downloads and various way you can use your phone (for both personal and business).  Don’t forget to take a look at Total Access 
  2. Windows Mobile for Business – If you are a business looking at implementing a mobile solution based on Windows Mobile this is the place for you.  It has an executive overview, an ROI/Value calculator and solutions offered by Microsoft and Partners
  3. Windows Mobile for the Developer – this is the starting point for developers.  The meat of the content you will find on MSDN but this is the place you want to look at for anything developer related to Windows Mobile.  From here you will have many other links to technical articles, community blogs and MS blogs.

If you have some other links feel free to leave a comment.


Thursday, March 12, 2009 10:07:02 AM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  | 

 

Microsoft Momentum and Windows Mobile 6.1#

I was recently asked by Microsoft Momentum Magazine what my views are for Windows Mobile 6.1 for the enterprise.  You can read my views and four other views on Windows Mobile 6.1 from various people in the industry also.


Thursday, March 12, 2009 9:39:33 AM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  | 

 

Developing for Windows Mobile – Leveraging Existing .NET Code#

I’ve been getting a few emails/questions on ‘Leveraging Existing .NET Code’ section of my Platform In Your Pocket session for TechDays so just wanted to share what I’ve been sharing with those emails.

First all credits go to Daniel Moth for his Sharing Assets between Windows Mobile and Windows Desktop he did back in 2006.  Daniel now works for the Parallel Computing Platform so be sure to check out his blog for tips and check out his PDC session here.

I only spent about 15mins on leveraging existing code and is only a small fraction of what Daniel covered in his session.  I always reference his blog posts when responding to emails so I’ll do the same here. His most recent post is on Sharing Assets Between the .NET Compact Framework and the .NET Framework has all relevant links.  There is an article in MSDN Magazine article which also goes through the concepts.

If you are a .NET developer looking at writing a Windows Mobile application make sure you leverage your existing code so you can get your product to your customers faster.

Good Luck and if you have more questions feel free to contact me!


Wednesday, February 11, 2009 11:54:07 AM (Eastern Standard Time, UTC-05:00) #    Comments [0]  | 

 

Optimizing your Windows Mobile Applications#

I’ve been consulting for Windows Mobile projects for quite a few years now and know most of the techniques to optimize custom Windows Mobile software.  During my 'Platform in Your Pocket' session for TechDays Canada, I went through some optimizations tips and tricks such as using StringBuilder as opposed to string or List<T> opposed to ArrayList things that you take for granted when developing on the desktop using the .NET Framework.  On Windows Mobile it's more important because you are 'memory constrained' and can't just 'throw more RAM or CPU' in a device to make your application perform better. 

During the session I didn’t have time to cover everything to optimize your code and a common question was ‘what else can I do to optimize my code’.  Here is a page on MSDN that lists a few ways to improve the performance of you Windows Mobile app using .NET Compact Framework which should help when you are developing your software.


Tuesday, February 03, 2009 2:30:59 PM (Eastern Standard Time, UTC-05:00) #    Comments [0]  | 

 

TechDays Canada 2008 – It’s a Wrap!#

Two weeks ago in Vancouver marked the last city in a six city cross Canada developer tour.  I had the pleasure of travelling with the Canadian MSDN team across Canada since October delivering my sessions on developing for Windows Mobile under the Windows Forms track.

Overall I think it was pretty successful and after the sessions got some great feedback from attendees such as:

  • “I wish I saw your session before I developed for Windows Mobile”
  • “I’ve developed an application and you have really helped fill in some of the gaps that I was missing”
  • “I never developed for Windows Mobile but you inspired me to try it out once I get home!”

There is also a nice write up on TechVibes.com by Warren Frey on my Platform in Your Pocket:Windows Mobile for Windows Developers

I have a few draft follow up posts on the sessions coming soon but if you need to get in contact with me email me at info [@] markarteaga.com 

Thanks to everyone coming out to the sessions and if you have any feedback on TechDays or have ideas for next time (like an entire track dedicated to Windows Mobile development :) ) make sure to let me or John Bristow (Windows Forms track lead) know!


Monday, February 02, 2009 2:31:44 PM (Eastern Standard Time, UTC-05:00) #    Comments [0]  | 

 

A New Year a New Beginning#

With a new year come new beginnings in both work and personal life.  Although there are not many significant changes in my personal life there are some new changes in my professional/work life.

After three years I’ve decided to leave OpenNETCF and pursue other opportunities.

Working with Neil, Chris and Alex was one of the best experiences I’ve had in my professional life. Being part of a team to help deliver some great products to the Windows Mobile, Windows Embedded and .NET Compact Framework developer community was fun. In the process becoming friends with three great and brilliant guys was a bonus.

As I leave OpenNETCF, there are some exciting things happening with things like Padarn and the Smart Device Framework so make sure you stay tuned to the OpenNETCF blog.

Here’s continued success to the OpenNETCF team and the products they create for the developer community!


Tuesday, January 20, 2009 11:01:24 AM (Eastern Standard Time, UTC-05:00) #    Comments [1]  | 

 

Memory Management on Windows Mobile using .NET Compact Framework#

During my Windows Mobile developer session in Calgary for TechDays Canada surprisingly a few people wanted to know more about the memory architecture of a .NET Compact Framework application.  I didn't cover anything on that but the best reference for this if you want to learn more about it is the follow:

  1. MSDN Webcast: Microsoft .NET Compact Framework Memory Management by Chris Tacke (2006*)
  2. .NET Compact Framework Advanced Memory Management by Mike Zintel  (2004*)

These things go into a lot of the internals of the .NET Compact Framework CLR and the Windows CE memory architecture (Windows Mobile is based on Windows CE) but in my opinion are required readings if you are building Windows Mobile applications.

*Don't worry about the years they where done as it's still relevant when developing on Windows Mobile today.


Wednesday, December 10, 2008 3:25:05 PM (Eastern Standard Time, UTC-05:00) #    Comments [0]  | 

 

All content © 2009, Mark Arteaga
Related Sites
Archives
Sitemap
Disclaimer

Powered by: newtelligence dasBlog 1.9.7174.0

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

Send mail to the author(s) E-mail

Theme design by Jelle Druyts