PocketMac - Mac to Pocket PC synchronization
 
 
 
Pocket PC Summit Writer, Robert Levy, Interviews Microsoft .NET Compact Framework Technical Evangelist, Kent Sharkey, About The Future Of The .NETcf Platform
"...think of the overall goal of .NET as helping programs (and people) to communicate better..."
August 27, 2002
Robert Levy: First off, I'd like to thank you for taking the time to speak with us and participate in this interview. As the ".NET Compact Framework Technical Evangelist" what exactly is your role within Microsoft? What services are you able to provide to software developers?

Kent Sharkey: The Technical Evangelist role is always good for a smile. There aren't too many companies willing to call people that. Basically, our role is to go forth into the community to introduce developers to technologies that aren't shipping yet. We are the advance scouts, if you will, preparing people for changes to come.

RL: In your own words, how would you define the goals and strategy Microsoft is using to merge existing (and future) mobile technology with the larger concept of ".NET"?

KS: Good one. If you think of the overall goal of .NET as helping programs (and people) to communicate better it becomes clearer. Today, and in the past, this has been fairly difficult in the mobile space. People needed to be mobile experts, and used primitive tools to craft apps for Pocket PC or phones. Microsoft is attempting to make this easier for developers, and to enable new forms of applications by doing this.

RL: More specifically, how would you define the .NET Compact Framework and Microsoft's goals in developing it?

KS: The .NET Compact Framework is a lightweight version of the .NET Framework, designed to work well with resource constrained devices. The execution engine and garbage collection has been tightened up, to help with devices where overall memory is still measured in MB. In addition, our support for important standards on the device, such as XML and SOAP support, as well as strong database support with SQL CE are a first in the industry. (well, maybe not the strong database support, but hopefully you're with me) What the .NET Compact Framework is doing is giving developers a set of tools that span devices through servers with a single, consistent programming model.

RL: The .NET Compact Framework and Mobile Internet Toolkit are 2 opposing Microsoft technologies that can be used to develop mobile applications with .NET. Generally speaking, what types of applications do you see as best suited for each of these? What are the key differences between them in terms of development tools, programming techniques, development costs, deployment procedures, and end-user experiences.

KS: I wouldn't say that they were opposing, but complementary. Think of them as the device analogs of Windows Forms (.NET Compact Framework) and Web Forms (MMIT). They both have their place, and optimal usage model. In the case of MMIT, the idea is really reach -- MMIT is great for moving your web applications out to a wide variety of devices, phones, etc. It is a great extension to the ASP.NET model. It's problem is the types of devices it typically targets -- cell phones. They typically have poor data entry capabilities. As such, I would say that MMIT is best for apps that don't require a good deal of data entry, and where the amount of data displayed is relatively small (again, due to phone limitations). Finally, MMIT is best suited for always online applications. .NET Compact Framework, on the other hand, brings a few neat items to the table. First up, through either the larger memory on the device and/or SQL CE, it has data storage capabilities. Therefore, .NET Compact Framework is great for applications that spend part of 'their life' disconnected. SQL CE replication allows you to merge your data back into SQL Server as needed (when connected). Second, .NET Compact Framework gives you the richer capabilities of the device UI. You can use controls such as TreeView, ListView and (soon), DataGrid in your applications without having to struggle with a cross platform DHTML solution. The application could also be faster, as no return time is required to retrieve data. Finally, the development model of .NET Compact Framework is just the same as that of desktop Windows Forms, allowing a developer to move freely and easily between developing for the device and the desktop. MMIT has a somewhat different programming model, possibly confusing some.

RL: As a "Technical Evangelist" you recruit developers to use emerging technology. When doing this, who is your target audience? In other words, what types of organizations do you see as being the best candidates for quickly adopting the .NET Compact Framework? Who do you predict will be (or currently are) the early adopters of this technology?

KS: I look at the target audience as being in two main groups. First, there are those groups doing device development today. .NET Compact Framework gives this group a rich set of tools and consistency with the desktop that will help their move forward. Second, there are those who have never done device development. This is the very exciting group, as .NET Compact Framework means that they can now extend their existing applications to the device easily. They no longer have to learn a new programming environment, with new tools and languages.

RL: Through your interactions with the developer community, what have you found to be the most compelling reasons given for adopting the .NET Compact Framework? Conversely, what reasons have been given for NOT adopting the technology?

KS: The most compelling reason for me is that it uses the same tool and programming model as you develop on the desktop. The consistency between .NET and the .NET Compact Framework means that you already know how to do most things on the device. You build both in Visual Studio .NET. As for reasons for NOT adopting the technology, well, I'm just the wrong person to ask that. There isn't any.

More seriously, some of the companies I've spoken with have decided not to move to .NET Compact Framework because they are already working with (and happy with) Embedded Visual C++ or Embedded Visual Basic. Particularly for small developer shops, that have already scaled the learning curve to get their code on the device 'the hard way', the added training time does not make economic sense.

RL: What advice can offer for developers who have already created and deployed applications for the Windows CE platform using Embedded Visual Basic and/or Embedded Visual C++? What factors should be considered when deciding between maintaining existing code or rewriting applications with the .NET Compact Framework?

KS: The answer is easier for the Embedded Visual Basic people, so I'll start there.

Many of the eVB customers that I've spoken to have been happy with the product. Others, however, feel that there is a 'glass ceiling' to the product. If you try to do applications that go beyond this barrier, it becomes quite difficult. In addition, the fact that it was limited to VBScript was quite limiting. For these developers, we have only good news. Now, they have the full VB .NET language, with the Compact Framework of classes to create their applications with.

Embedded Visual C++ developers, on the other hand do have a choice to make. If they need absolute control of the device, and they're happy developing with eVC, I often encourage them to continue. Those that want to create Web Services, or otherwise take advantage of the functionality available with the .NET Compact Framework, however, should do more than look at .NET Compact Framework. They will find that C# is an amazingly easy language to learn, and the framework does make doing a lot of stuff very easy.

RL: One of the more controversial announcements regarding the .NET Compact Framework is that CEDB (commonly called "Pocket Access") will not be natively supported. What effect do you predict this will have on developer adoption of the .NET Compact Framework? What is the recommended migration path for developers who have existing applications based on the CEDB infrastructure?

KS: Good question. We struggled hard with that decision. However, I think we made the right decision. Supporting both Pocket Access and SQL CE would have meant us dividing the resources of an already small group in half, preventing us from doing a good job with either. Instead, we focused on SQL CE, which I view as the logical, and superior migration path for CEDB developers. Now, rather than a relatively primitive database format, they have access to a powerful, multi-table database, with SQL support. Also, the replication capabilities of SQL CE are amazing (IMO). I hope that all CF developers spend some time with SQL CE and see just how much more flexible and powerful it is.

RL: Currently, the .NET Compact Framework is in the "Beta 1" stage. Comments from developers who have experimented with it have so far been very positive and enthusiastic aside from gripes about certain features of the full .NET Framework being left out of the Compact Framework's subset. Of these requests (such as additional controls and support for COM-interop), what can we expect to find in the final release?

KS: Developing for devices is always difficult, however the most difficult process is deciding what goes in and what doesn't. The .NET Compact Framework team really struggled with a lot of those features. Both with expending the effort to develop them, but even more importantly, to test them and guarantee they work. Also, the amount of code required to support some features would make the runtime even larger than it is. The CF team is relatively small at Microsoft, with very limited resources. So, items like COM interop, Remoting, etc. have been left out of v1. If enough people feel the need to have one feature or another, we will definitely re-investigate them, however.

RL: The .NET Compact Framework Beta 1 has a footprint of approximately 2MB. This is relatively large considering the limited amount of memory built in to mobile devices. Is this an issue that Microsoft is working on? What can we expect the footprint to be in the final release?

KS: The footprint is about as small as we're going to get it. It is an area of active effort, but I can't see it going below the 1.5MB barrier. If you compare the size of the Compact Framework vs. other platforms, you will see that we are not only comparable, but actually present more features for the same size. On the good news, we are working with a number of OEMs to get the Compact Framework included in the standard ROM image. This would mean that the runtime itself would not take away from the program memory on the device.

RL: What online resources do you recommend for developers interested in learning more about the .NET Compact Framework?

KS: We're already beginning to see a vibrant community forming around .NET Compact Framework. There are discussion lists, mailing lists and websites appearing everywhere. Some of the best I've seen have been DevelopMentor's CF list (DOTNET_CF), the product team's own site on GotDotNet (http://www.gotdotnet.com/team/netcf), and of course DevBuzz (http://www.devbuzz.com)

RL: The .NET Compact Framework represents a large step forwards for the developers of mobile applications. How do you predict that this (and other mobile technologies) will evolve over the next 5 years?

KS: Wow. First time someone has asked me to be a fortune teller... I can certainly tell you, from a geek perspective, I want to see more connectivity. 802.11g, Bluetooth, GPRS have all got to become more prevalent. Fortunately, this is happening, but too slow right now. I would also expect Moore's Law to continue, leaving us with Gigahertz palmtops within 5 years.

Now, from a development perspective. With .NET Compact Framework being integrated into devices (a boy can hope, can't he?), developing for devices is as easy as creating a desktop application. That has to continue, and become even more the case. More features of the device need to be exposed in code.

So, what does that mean for the device I'll be craving in 2007? 1+GHz, with about 512MB of ROM and RAM. Survives for about a week on battery, and I can take applications directly from the desktop. The apps will be smart about their connectivity -- automatically caching data when disconnected, and reconnecting and synchronizing when in some network.

Thank you once again for taking the time to talk with us. Closing remarks?

KS: Thanks for this opportunity! I hope that people give .NET Compact Framework a try, and I hope to see lots of great applications in the next few years.

Robert Levy can be reached at outlook.

   home | conference | sponsors | archives | contact Copyright © 2001, MultiMeteor, Inc. All Rights Reserved.
Pocket PC Summit - Enterprise Solutions For The Pocket PC, Windows CE .NET & The SmartPhone :: Pocket PC Summit Links

pocketpcsummit.com v 4_3