To learn, or not to learn Windows Mobile - that is the question

To learn or not to learn

About a week ago, I got a message from JiabaoET for asking about whether need to learn Windows Mobile or not? Microsoft had revealed Windows Phone 7 which has totally different development patterns and practices comparing with the classic Windows Mobile. The changes of Windows Phone have raised controversial topics to Windows Mobile developer's communities. Some developers including myself are very excited to see the revolution changes for a legacy smart device. However, some aren't. They worry about their skills of Windows Mobile will be expire soon. To learn or not to learn Windows Mobile. To keep the path on Window Mobile or start to navigate the Windows Phone? That is the question. To be honest, I cannot offer a perfect answer. Even I am waiting for an official answer now. Who can answer that question? Probably, Microsoft does. All I can do is to try to log down what I know, and what I think. All would be based on my limited knowledge.

If you are an ASP.NET developer, for instance, and you are very happy with that. I think it is better to keep your feet on ASP.NET development on track. It is not worth to swap from one technology to another one frequently. As I said before, being a valuable developer more depends on the person himself or herself, but not depends on partially technology he or she chooses. But if you want to learn more about smart phone development except WEB development, that is a smart and better decision. The more the merrier. It is better to deep into one technology and expends the skills to some other relevant technologies.

Due to the cost of microprocessors' chips are getting cheaper and cheaper. In addition, it is easier and more efficient to develop applications for a smart phone rather than a dumb phone. More and More smart phones will be available on the market. I think sooner or later, all the dumb phones will be replaced with the smart phones. Imaging that, how big the market will be. It's better to start ASAP, otherwise, we have to chase after that one day. Therefore, my conclusion is that it is necessary to have some knowledges of Mobile and Embedded devices.

Available smart phone devices on the Market

Here we go. There are heaps of mobile devices on the current market. Google Android, iPhone, Windows Mobile, Nokia Symbian S60, Blackberry, Palm web OS (HP now) bala bala. I would like to count down to the popular devices only. Android, iPhone and Windows Mobile. I think Nokia is the only vendor to sell Symbian phone coming with S60. And Nokia and Intel had release the new smart phone operating system called meego. I don't think Symbian will last long time any more. If you like to learn Symbian, that's easy to start. What you need is just a Windows PC, carbide.c++ and either S603rd emulator or S60 5th emulator. All are free expect Windows PC. And you have to learn Symbian style C++. Someone calls it European C++ comparing with MFC from the US.

If you are a Java developer, you can start to learn Android. The environment for Android is quit convenient to set up. A Windows or a Linux PC + Eclipse + Android SDK (http://developer.android.com/sdk/index.html). Currently, Google provides the NDK to developers as well. And you have opportunities to build Android applications using native C++.

iPhone is a quite popular device on the consuming market rather than enterprise market. If you want to work at home and make some pocket money. iPhone is not a bad idea. Actually, you can make some money from Android and Windows Phone too. All three devices have on-line application shop. However, Trying to Build the first application for iPhone is quite expensive. Probably, you need to buy a Mac computer and an iPhone or an iPod touch device. The cheapest Mac computer on the market is Mac mini which starts from $599.  Moreover, You have to learn Object-C from scratch. I think the knowledge of Object-C is not transferable. It is targeted on Mac platform only.

Windows Mobile or Windows Phone

If you are a Microsoft programmer just like me, it is better to start your mobile adventure on Windows Mobile or Windows Phone. Since Microsoft had launched a brand new smart phone operating system Windows Phone 7, which has no backward compatibility to traditional Windows Mobile OS. From my point of view, Windows Phone is considered a totally different device from Windows Mobile. Windows Mobile or Windows Phone? To be frank, I cannot offer a straight answer for this question. Even I was wondering about it. Finally, I convinced myself of both. I will keep doing some applications on Windows Mobile and Windows Embedded CE platform, and I will start to learn Windows Phone platform now.

Microsoft hasn't announced what's the future for Windows Mobile Operation System yet. I think it shall be two options here based on Microsoft's strategy. As a company the most import thing is making more and more money. Microsoft has overall product line in Embedded System field. Windows Embedded 7 is targeted to high performance embedded system. Windows Embedded CE 6 is used for intelligent and low-power consumption devices. Windows Phone focuses on consuming smart phones' market. .NET Micro Framework is developed for tiny electronic devices. I'm pretty sure Microsoft would not like to give up enterprise smart phones' market at all. Windows Mobile would be the best technology to cover this market. Microsoft may be amend Windows Mobile 6.5.* to Windows Phone Classic to keep the transitional Windows Mobile product going well. That’s the first option I think.

Option 2, Special Phone version for Windows Embedded CE. Even Microsoft discontinues Windows Mobile, I still would not worry about my investment on Windows Mobile. Windows Mobile is based on Windows Embedded CE. Using a not very good example, Windows Embedded is similar as Windows XP Home edition whereas Windows Mobile is Windows XP professional edition + Microsoft Office + PDF reader and so forth. Windows Mobile is just like an all-in-one system. Windows Embedded CE is a basic system and provides small functionalities by default. But it's flexible. Developer can customise it according to specific requirements. Add anything you need to Windows Embedded CE to fit the requirements. Windows Mobile is just one of the official customisation systems from Windows Embedded CE. And it is customised by Microsoft and focuses on smart phones' market. Don't get confuse between Windows Embedded CE and Windows Mobile. From application's development view, there is not much difference between those two systems. Microsoft has been introducing more and more functionalities to Windows Embedded CE to fill with the gaps. For instance, in Windows Embedded CE 5 there is not GPS intermediate Driver which is only available on Windows Mobile 5 or upper. But Microsoft had introduced GPS intermediate Driver into Windows Embedded CE 6. It means all the program based on GPS intermediate Driver can run on Windows Embedded CE 6 without any changes. Furthermore the RIL and TAPI functions (Phone functionalities) are available on Windows Embedded CE 6 now. It means Windows Embedded CE is easy to use on smart phone devices now. There are couples of companies such meizu, coolpad in China making smart phone using Windows Embedded CE instead of Windows Mobile. Even Microsoft discontinues Windows Mobile product and won't support it in few year later, we can port all the program from Windows Mobile to Windows Embedded CE easily. We can bring our knowledges of Windows Mobile application development to Windows Embedded CE directly. Don't worry about that. Huge amount of companies in China are designing and making shanzhai smart phone, most of those companies are using Windows Mobile and  some are using Windows Embedded CE. Don't be surprise, I haven't spelled wrong. Shanzhai is a famous English word now. I love shanzhai too, that's Chinese style of innovation.

If you are a brand new guy on Windows Mobile and Windows Phone, and you want to start a new adventure on smart phone field. It's absolutely no problem to start from Windows Phone and skip Windows Mobile. If you launch now, you will be the pioneer, discover and navigator of Windows Phone platform. So don't hesitate, take a shot now.

How to learn Windows Mobile

If you are going to learn Windows Mobile and Windows Embedded CE application development. I would like to recommend my blog, www.cnblogs.com/procoder. I hope I can help you make the most of the Windows Mobile technologies. Due to the difference between smart device and desktop computer, all the smart device's developers (not only Windows Mobile developers) probable need to know how to make efficient and attractive UI on a small size screen. How to program low power consumption applications. How to use GPS, Bluetooth, Gravitation Sensors, SMS, phone call API. How to store and synchronise the data to server. How to retrieve and send back the data to Web.  bala bala bala.......Those are most important part to develop applications for smart devices. If I start to learn a new smart device, I'd like to learn all these aspects of the new device. I set these as my objectives, therefore, the articles I have been blogged are going to describe how to learn these technologies and how use these technologies in the real world. So that's why I highly recommend you take a look at my blog.

Off course, there are many other resources about Windows Mobile on the web now. You can check out on cnblogs.com Windows Mobile team http://team.cnblogs.com/WMAP/. Especially, I recommend you to read the blogs below.

http://www.cnblogs.com/wangkewei/

http://www.cnblogs.com/dearsj001/

http://www.cnblogs.com/twodays/ 
http://www.cnblogs.com/longqi293/ 

http://www.cnblogs.com/appleseeker/

http://www.cnblogs.com/jerryge/

http://www.cnblogs.com/upto/

http://www.cnblogs.com/egmkang/ 

If you have a question or comment related to a specific post try posting a comment to the related blog article. This will help others find your comment when they view the original article. 
If you got a question for general development problems you are best to try an online forum such as 
http://forum.csdn.net/SList/WindowsMobile/

http://www.devdiv.net/bbs/forum-mobile-1.html

Google and bing would be your best friends too.

How to learn Windows Phone

I am learning Windows Phone 7 as well. Recently, I'd like to blog more and more about Windows Phone 7. The best way to learn a new technology is writing down what I learn and what I think. Share that to the others, discuss with the others and do more practise. 
The article below can help you to set up the development environment for Windows Phone 7 from scratch. 
http://www.cnblogs.com/procoder/archive/2010/05/08/learn_windows_phone_7_from_scratch.html

And I am translating the first book for Windows Phone 7 called Programming Windows Phone 7 Series

That is not an easy job. It took me long time to do and it has long term to go.

Some website you should not miss out. 
www.Wpmind.com 
www.wpzune.com

Last but not least, please install the development environment and try. That's the basic and initial step to go forward.

Update

I drafted this entry about a week ago. And I got some updated news from mercury about the future of Windows Embedded CE. Please take a look. 

http://www.cnblogs.com/mercuryxu/archive/2010/05/08/1730210.html

Some one said it was a joke  and Microsoft  tried to attract the eyes. Whatever it's true or not. Gods knows. What I can do is keeping doing some applications for Windows Mobile and Windows Embedded CE because I get paid for that. And learn more and more about Windows Phone 7. How about you?

One thing I can see, Not matter how big the changes Microsoft has been making. Silverlight always is the straight answer from Microsoft. Let’s start Silverlighting.




    本文转自Jake Lin博客园博客,原文链接:http://www.cnblogs.com/procoder/archive/2010/05/11/To_learn_or_not_to_learn_Windows_Mobile.html,如需转载请自行联系原作者

你可能感兴趣的:(To learn, or not to learn Windows Mobile - that is the question)