It is quite frustrating to discover that Virtual PC 2004 does not support DVD ISO images larger than 2.2 GB. I downloaded the latest VS 2005 beta DVD image from MSDN Subscription site (the CD ISO images do not have Team System support) and tried to mount it on my Virtual PC. This is the message I got.
Since my only DVD burner is on a Mac Powerbook, which produces disks that the PC cannot read, I have to work with the DVD image. So, I decided to mount the DVD image to a virtual drive letter (Z:) on the host PC using the "Virtual CDROM Control Panel for WinXP" utility from MSDN. Then I can map Virtual PC's CD drive to the host Z: drive to access the DVD content. It will be slow (two emulation layers) but I expected it to work. Well, it seemed to work initially. I can start the installation process. But as the program reads large amount of data from the virtual drive, it begins to throw I/O errors and has to abort before it can finish half of the installation.
Finally, I managed to get it to work by first unpacking the entire DVD image into a local file directory using ISOBuster; share the directory with the Virtual PC; and then execute setup.exe in the directory from within Virtual PC. Anyone has a better idea?
Now Motorola has released its second generation Windows Mobile SmartPhone MPx 220. It will be based on the Windows Mobile 2003 platform with full support for .Net Compact Framework 1.0 SP2. Addressing the shortcomings of the first generation MPx 200 (released September 2003), the new model features mega pixel camera and bluetooth.
What really impressed me with this device is that Motorola made good on its promise and put a MIDP 2 runtime on it! That means we will be able to run J2ME applications along side with .Net CF applications out of the box. (We can do that on PocketPC today but only after a long and messy installation process.) I'd be very interested in seeing some screen shots comparing the look-n-feel of the UI widgets! Motorola supports a large number of powerful (but not-yet-standard) J2ME APIs on the device (see table below). They really made J2ME a first citizen on this powerful device -- even better than the "native" .Net runtime. Just a few examples: the J2ME runtime of this phone supports the following APIs that are not available in the standard .Net Compact Framework runtime.
* Video camera and audio recorder access
* Cryptography
* 3D graphics
* Client side location determination (with add-on GPS receiver, I think)
On the other hand, the .Net CF provides much better support for XML Web services. This phone does not yet support JSR 172 (J2ME Web Services API) or JSR 82 (Java Bluetooth). I am actually quite surprised that JSR 172 and 82 are not yet supported on most Motorola devices! Am I wrong here? Comments please?
As I have been saying for sometime, Motorola's key strategy in the game is to become the IBM of mobile handsets. It will support all OS platforms from Windows, Linux, Symbian, BREW to proprietary OSes. But it will put a consistent and portable Java layer on top of all those OSes to maximize the return for software developers. So far, Motorola has been very aggressive in coming out with bleeding edge J2ME APIs far out pacing the JSR process. A table of J2ME APIs supported on Motorola devices is available below. The MPx 220 device is a Java High-Tier device.
This entry is cross-posted from my Java blog due to its relevance to the .Net Compact Framework community. Personally, I think the biggest announcement from JavaOne is that Nokia is building a Service-Oriented Architecture framework on smart mobile phones that could quickly change how an average technology user sees Web services, No, I am not talking about the standard SOAP interfaces between desktop/server applications and telecomm hosted servers (e.g., the MMS messaging server, location server and presence server). They are cool technologies already in use but they are only part of the mobile web service big picture that is about to emerge.
I am talking about integrating mobile clients directly into Service-Oriented Architecture (SOA) based on asynchronous web services!
OK, mobile web service client is not exactly a new idea. I talked about it more than two years ago back in 2002. The .Net Compact Framework has been supporting web services for quite some time now. On the Java side, kSOAP is a J2ME based SOAP parser and the JSR 172 provides a standard set of XML and SOAP APIs on J2ME devices. Tools like Visual Studio, IBM WebSphere Device Developer, JBuilder and SunONE Studio have provided code generators to drastically simply the work for developers. I wrote a kSOAP tutorial in Augest 2002 and also covered both kSOAP and JSR 172 extensively in my "Enterprise J2ME" book. Those are all nice. However, there is a key problem with the current approaches: All the frameworks more or less assumed that the device interact with one service endpoint at a time in a synchronous remote procedure call (RPC) mode. That is to take all the overhead of web service but get little of the promised flexibility, scalability and asynchrony in return. Indeed, most developers opt to implement custom RPC protocols to interface with mobile servers. I recommended building a service facade to hide the backend complexity in this simple scenario.
That is not what Web service is meant to be. As I had discuss two years ago, mobile web service is about the ecosystem where the device could roam in and out, discover and consume services at will. Some of the services are illustrated in the figure below (credit: Forum Nokia). In addition, the framework allows mobile devices to become Web service providers as well and hence enables peer-to-peer mesh service networks. Very cool!
Now, the single most important technical challenge in such a ecosystem is access control. A single sign-on scheme is required to track all the devices and services in the system and decides who has permission to do what. That requires communication protocols more complex than SOAP. Various competing web service standards for single sign-on services have been proposed. The Liberty Alliance led by Sun is one of them. The Nokia framework is currently based on Liberty Alliance and could reach out to other single sign-on communities in the future.
The framework will be available in both J2ME and Symbian C++. It puts Nokia in a competitive position against Microsoft in this race -- the .Net Compact Framework 2.0 would also have some advanced Web service features. All in all, I found this extremely interesting. Cannot wait to try it out!
I will use this space as a place holder to link to my thoughts on JavaOne posted on my Java blog. Since I have multiple hard deadlines coming up this week, I probably would not be able to write much. But I will report important news, especially those in the mobility space, as they come along!
JavaOne free book chapters: Learn to build a mobile multimedia blog
JavaOne show floor fun: Play 3D games at Sony Ericsson booth
Fawcette
published my article today as part of their TechEd coverage. The article surveys several important .NET Mobile technologies from 30,000 feet: ASP.NET 2.0, .NET CF 2.0, Visual studio 2005 and MapPoint. I did not have room for the Speech Server. Oh well, next time!
It seems that the .NET CF team is giving away Wei-Meng Lee's new book
.NET Compact Framework Pocket Guide (O'reilly 2004) together with the Windows Mobile Developer Resources DVD at TechEd. The DVD contains device SDKs (integrate with VS.Net 2003), articles and code examples. The book is very small (no bigger than the DVD jacket) and only has 100 pages. But I think it is very well written. If you are an experienced .NET developer, the book can get you started in device development in a matter of minutes. It has three application tutorials (database, web services, P/Invoke and bluetooth) that you can try out quickly with the SDKs on the DVD. The book also contains valuable information about how to build and customize CAB deployment files for various devices.
I wish other companies could provide developer marketing material this helpful to developers!
My wife, Ju Long, has just
published her thoughts on the academic Computing Curriculum Workshop at TechEd 2004. In summary:
1. C# is increasing adopted in college level computer science classes.
2. Tablet PC is a god-send for interactive classrooms.
Microsoft's MapPoint team has an internal location server that tracks the location of some its members. I developed a PocketPC client for the server a while back. Out of boredom and curiosity, I decide to check whether those guys are attending TechEd. As it turns out, out of the 7 persons located, none of them is currently in San Diego area. Most of them are still on the east coast. Talking about privacy implications of location based services!
I was invited to attend TechEd's Academic Computing Curriculum Workshop -- all expenses paid plus free pass to TechEd itself. But for some reason I thought I'd be too busy finishing up my PhD dissertation and declined to go. Now, I have to watch all the TechEd excitement from 1100 miles in Austin and I would not get much done in the next several days due to the distraction. I should have gone to enjoy the sea breeze in San Diego!!!!
But of course, I am still participating TechEd in some ways: Fawcette will run my ".Net mobile" article on Wednesday for their TechEd audience. My wife Ju, an assistant professor at Texas State Univ, will be at the academic workshop to discuss how to teach C# efficiently to university students.
Now, I am struggling whether to attend JavaOne this year. That is awfully close to my PhD defense date!
The Mono project has just released its first beta. Since the Mono runtime does support StrongARM processors (interpretator not JIT compiler though), a lot of people ask, what does it mean to .Net Compact Framework developers? Can I now deploy my CF apps to a Linux PDA now? The answer is "yes and no": You should be able to compile and deploy non-UI .Net CF libraries on Mono without much trouble. But for the UI applications, the water is muddy.
1. The GUI implementation in Mono is based on GTK# and Qt#. GNOME/GTK is not available on handhold devices -- so GTK# is out of the question. Qt is used by quite a few Linux PDAs. However, Qt# support for embedded devices is still not available.
2. Mono has limited support for Windows.Forms over the WINE emulation layer. Since WINE is not going to be ported to embedded Linux, I do not think that we can see Windows.Forms apps running on a Linux PDA anytime soon.
That means the vast majority of existing windows forms based .Net CF apps will not run on Linux PDAs. When Qt# support for embedded Qt finally becomes available, we might be able to rewrite the UI components of a .Net CF app and deploy it a Linux-Qt PDA.
More Posts
Next page »