1 / 24

Microsoft Research Faculty Summit 2003

Microsoft Research Faculty Summit 2003. Brad A. Myers & Jeffrey Nichols The Personal Universal Controller and .NET CF Pebbles Research Project Human Computer Interaction Institute Carnegie Mellon University http://www.pebbles.hcii.cmu.edu. Pebbles Project.

devon
Download Presentation

Microsoft Research Faculty Summit 2003

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Microsoft Research Faculty Summit 2003 Brad A. Myers & Jeffrey Nichols The Personal Universal Controller and .NET CF Pebbles Research Project Human Computer Interaction Institute Carnegie Mellon University http://www.pebbles.hcii.cmu.edu

  2. Pebbles Project • Seen in the plenary demo yesterday! • Use of multiple devicesat the same time • Pocket PC and desktop PC • Mobile Phone and “Smart Home” • Multiple handhelds in a meeting • Pocket PC and appliances • Multiple users with their devices • Single user with multiple devices

  3. Early Pebbles Work • For business meetings: • For group work • How laser pointers can be integrated • To augment desktop applications • For individuals • For classrooms • To make lectures more interactive • For military command posts • To facilitate communication and collaboration

  4. Feedback Specifications Control Recent Project:Personal Universal Controller • Using handhelds with appliances to improve the user interface • Key Features • User interface-independent appliance specification • Automatic generation of GUI and speech interfaces

  5. Automatic Generation of UIs Benefits • All interfaces consistent for the user • With conventions of handheld • Even from multiple manufacturers • Multiple modalities (GUI + Speech UI)

  6. Development History • Visual C++ 5.0 Extensions for WinCE • eMbedded Visual C++ • Early Pebbles Applications • eMbedded Visual Basic 3.0 • Early tests of Personal Universal Controller (PUC) concept • PersonalJava 1.1 • Initial PUC implementation • .NET Compact Framework • Current PUC implementation

  7. Overview • Introduction • PUC Implementation • Advantages of .NET & .NET CF • Limitations of .NET CF • Short Demo • Resources

  8. PUC Implementation • Implemented three interface generators • PocketPC • Desktop • Smartphone • Implementation uses a large part of the .NET Compact Framework • UI Toolkit • Graphics • Networking & I/O • XML Parsing

  9. PUC System Architecture PUC Devices (automatic user interface generation) Appliances (media players, cameras, etc.) Adaptors (publishes description +appliance state + controls appliance) XML-Based Protocol (two-way communicationof specification and state) XML-Based Protocol (two-way communicationof specification and state) Communication (802.11, Bluetooth, RF-Lite, etc.) Communication (802.11, Bluetooth, RF-Lite, etc.) Third-party components .NET CF components Multi-platform components Legend:

  10. Concrete Interface glue to .NET CF Controls <message> <state-change-notification> <state>PlayMode</state> ... Protocol XML Parsers Network TCP/IP Sockets IPEndPoint end = new IPEndPoint(_ipAddress,_port); _socket.Connect(end); int len = _socket.Receive(num,4,SocketFlags.None); PUC Device Architecture Model Analysis &Rule-Based Design analysis of models (appliance & device), rule-based design of abstract interface,choose concrete controls & layout Asdfasd: Asdfasd: This is some title Mute Asdfasd: Playing Asdfasd: a.efas

  11. Advantages of .NET • Managed Environment • Garbage collection • Modern Programming Languages • Strong types • Consistent, Well-Designed API • Object-oriented • Better documentation

  12. Advantages of .NET CF • For mobile application development • Compatible with normal .NET Framework • Can develop for handheld and desktop almost simultaneously • .NET CF being ported to multiple handheld platforms • PocketPC, Smartphone 2003, WinCE 4.0? • Good performance on handhelds

  13. Advantages of .NET CFCode Portability Portablility makes re-use very easy • 90% from PocketPC to TabletPC* • 60% from PocketPC to Smartphone* • Different input model on Smartphone requires different generator rules and several new widgets * These numbers are estimates from development experience

  14. Advantages of .NET CF Versus Java • Solid, robust implementation on handhelds • Consistent programming interface across mobile platforms • Java Micro Edition uses different APIs for Graphics and the UI toolkit from standard Java • More features in the UI toolkit • More controls (vs. AWT)

  15. Limitations Disclaimer I am not a Microsoft developer! So, these limitations may have solutions I am not aware of: • I did not find the solutions • They are fixed in more recent versions of the Compact Framework

  16. Limitations of .NET CF Compared to normal .NET Framework, CF has: • Fewer controls • Fewer features in each control • Can sub-class built-in controls, but… • No ability to owner draw • No ability to handle low-level events • Must sub-class base Control class to make custom controls General Gripe: Controls do not know their own preferred or minimum size.

  17. Limitations of .NET CF continued Available CF controls are mostly adequate • Some custom controls needed • ImageButton • Time Picker • Scrolling Panel (Panels don’t have Auto Scroll) • Smartphone List Control • Smartphone Scrolling Panel

  18. Limitations of .NET CF continuedSmartphone Still early in the design process • Navigation on screen based on Z-order and enabledness of controls. • Panels don’t automatically scroll, as required by interface. • Back button can only be handled through key-press events (which can’t always be caught, and can’t be fully worked around) • Scrollbars do not accept user input(we worked around this) Not many people working with phone Few resources when you have problems.

  19. SummaryAdvantages and Limitations Like any new set of APIs, there are bugs Overall, the good outweighs the bad • Rapid prototyping like Visual Basic • Power of modern language in C# • Easily able to share code across platforms (PocketPC, Desktop & Smartphone) • More than adequate performance on handhelds • Little need to worry about memory or performance constraints

  20. PUC Implementation Jeffrey Nichols Human Computer Interaction Institute Carnegie Mellon University

  21. Resources • Usenet Groups microsoft.public.dotnet.framework.compactframework • www.opennetcf.org • Books from Microsoft Press .NET Compact Framework Core Reference* Visual C# .NET Step-By-Step Microsoft Visual C# .NET Language Reference • Developer Labs (?) Thanks Microsoft! * Have not looked at this book.

  22. PUC and the .NET CF thanks! Brad A. Myers & Jeffrey Nichols Carnegie Mellon University jeffreyn@cs.cmu.edu http://www.pebbles.hcii.cmu.edu/puc/

  23. Limitations of .NET CF continued Modifying any property of the UI from outside the UI thread causes problems. • Example: Network thread receiving messages wants to set the value of a scrollbar • Application crashes 99% of the time • Control.BeginInvoke method not implemented (yet?) • Must work-around by using Timers and an event queue.

More Related