Developing Mobile Applications

Slides:



Advertisements
Similar presentations
Microsoft Windows NT Embedded 4.0
Advertisements

Mobile Application Development using Microsofts.NET Framework (Masters Seminar) by Ranjith Lingamaneni.
Developing Windows ® CE Applications With Visual Basic ® Larry Roof tonked
Tahir Nawaz Introduction to.NET Framework. .NET – What Is It? Software platform Language neutral In other words:.NET is not a language (Runtime and a.
Web Visualization Technology Horner APG Ver 1.0.
Developing Mobile Applications Tim Heuer Bert Solano
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
.Net Compact Framework. Microsoft.Net is often referred as Plateform for web services But.net vision is more than web services – It talks about how people.
What is.NET?. The Clients of.NET a) A new generation of connected application b) Microsoft.NET Framework managed execution c) Allows PCs and other smart.
Kashif Jalal CA-240 (072) Web Development Using ASP.NET CA – 240 Kashif Jalal Welcome to week – 2 of…
What’s New for Smart Client Developers in Visual Studio 2005? Mike Pelton Systems Engineer Microsoft Ltd
What’s New for Smart Client Developers in Visual Studio 2005? Mike Pelton Systems Engineer Microsoft Ltd
V1.00 © 2009 Research In Motion Limited Introduction to Mobile Device Web Development Trainer name Date.
What’s new for Rich Clients? Martin Parry Developer & Platform Group Microsoft Ltd
MBL290: Building Mobile Applications with Microsoft® SQL Server™ CE and the Microsoft.NET Compact Framework Kevin Collins Microsoft Senior Program Manager.
Virtual techdays INDIA │ august 2010 Building ASP.NET applications using SQL Server Compact Chaitanya Solapurkar │ Partner Technical Consultant,
SharePoint Portal Server 2003 JAMES WEIMHOLT WEIDER HAO JUAN TURCIOS BILL HUERTA BRANDON BROWN JAMES WEIMHOLT INTRODUCTION OVERVIEW IMPLEMENTATION CASE.
FTP. SMS based FTP Introduction Existing System Proposed Solution Block Diagram Hardware and Software Features Benefits Future Scope Conclusion.
Building Offline/Cache Mode Web Apps Using Sync Framework Mike Clark Group Manager Cloud Data Services Team
Using.NET Skills To Build Mobile Applications In Compact Framework Punit Shah Technical Lead | Microsoft |
More than You Want to Know About Pocket PC’s. What is a Pocket PC?
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
IBSS Inc (International Business Software Solutions Inc.) Microsoft.NET.
ASP.NET The.NET Framework. The.NET Framework is Microsoft’s distributed run-time environment for creating, deploying, and using applications over the.
Presented by Team D Compare Windows 2000, XP, and.NET By John Leonard, Brian North, Jeffrey Reynolds, Todd Saylor.
Windows CE 시스템 개발 개요. 임베디드시스템소프트웨어 -Windows CE 2 Overview  Selecting a Windows Embedded Operating System  The Windows CE Platform Development Cycle.
Overview of System Development. Overview Selecting a Windows Embedded Operating System The Windows CE Platform Development Cycle The Application Development.
Node Mentoring Workshop “Sharing What We Node” Middleware Breakout Session.NET New Orleans, Louisiana February 9-10, 2004.
Fundamentals of Database Chapter 7 Database Technologies.
.Net – The First Glance What Is.Net, Why Use.Net.
Lesson 2 What is ASP.NET? What is ASP.NET? What is Web Matrix? What is Web Matrix? What are the features of Web Matrix? What are the features of Web Matrix?
Introducing ASP.NET 2.0. Internet Technologies WWW Architecture Web Server Client Server Request Response Network HTTP TCP/IP PC/Mac/Unix + Browser (IE,
Active Server Pages (ASP), also known as Classic ASP or ASP Classic, was Microsoft's first server-side script engine for dynamically generated web pages.
Windows CE 시스템 개발 개요. 모바일운영체제 - Windows CE 2 Overview  Selecting a Windows Embedded Operating System  The Windows CE Platform Development Cycle  The.
Intro to dot Net Dr. John Abraham UTPA CSCI 3327.
Extending the Enterprise using.NET CF and SQL CE Marcus Perryman Principal Consultant Microsoft.
ASP.NET in Definition: 1.ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites,
Module 1: Overview of the Microsoft .NET Framework
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
ASP.NET (Active Server Page) SNU OOPSLA Lab. October 2005.
Mobile Applications and SQL Server Mobile v3.0 (Laguna) Kevin Collins Senior Program Manager Microsoft Corporation.
Module 3: Working with Local Data. Overview Using DataSets Using XML Using SQL Server CE.
Gowtham Prasad K N Partner Technical Consultant | Microsoft Corporation |
Exploring Networked Data and Data Stores Lesson 3.
A Detailed Introduction To Visual Studio.NET CRB Tech ReviewsCRB Tech Reviews introduces you to the world of Visual.
The Holmes Platform and Applications
Introduction ITEC 420.
Introducing the Microsoft® .NET Framework
.NET Omid Darroudi.
Introducing the Windows Mobile development
Integrating Enterprise Applications Into SharePoint® Portal Server
Visual Studio Tools for Office 2005
Did your feature got in, out or planned?
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
Migrating Oracle Forms Using Oracle Application Express
Microsoft Office Illustrated
Mobile Application Development 2005 By Sam Nasr July 25, 2006
Module 1: Getting Started
Web Development Using ASP .NET
CIS16 Application Development – Programming with Visual Basic
Lecture 1: Multi-tier Architecture Overview
Microsoft .NET Presentation
Thin Client Content Deployment
Visual Studio + SQL Server Is Better
Paul Stubbs MCSD, MCSE 4.0, MCP+I, MCT, MCAD .Net
Overview of System Development for Windows CE.NET
Windows Forms in Visual Studio 2005: An in-depth look at key features
Mark Quirk Head of Technology Developer & Platform Group
Getting Data Where and When You Want it with SQL Server 2005
Running C# in the browser
Presentation transcript:

Developing Mobile Applications Tim Heuer Immedient tim.heuer@immedient.com Bert Solano bert.solano@immedient.com

Agenda Mobile Overview VS .NET Features Data Storage Options Tips and Tricks

CE Devices are available

Mobile vs. Wireless Mobile Architectures Wireless Application can function in a vacuum “Synchronize When You Can” Wireless Tethered to the data source, just like wired, only we use wireless WiFi, CDPD, GPRS, Prone to problems Mobile Apps leverage Wireless Wireless is NOT Mobile

Goal for a Mobile App Can your user function from the bottom of the ocean? (… with a waterproof device) Is your application as reliable as their paper notebook? Take advantage of the internet, don’t depend on it.

Compatibility Challenges Many different device types Different form-factors Human interface choices Connectivity choices WiFi Network Cradle Compact Flash WWan Desktop Cradle Infra Red On-device resources vary widely ROM/RAM capacity File system Battery life

Mobile Development Environment Single set of familiar productive tools for all development Server components Rich client applications Mobile Web development Building Web services Consuming Web services Easily take advantage of all Microsoft mobile platform assets

Mobile Development Approaches Application on device Device specific Fewer devices Offline options Richest UI Client Application Application on server Runs in browser Many devices Online only Less UI choice Easy to deploy Web Application

Mobile Development Tools Today Visual Studio & .NET Compact Framework Client Application Embedded Visual Tools eVB and eVC++ Device-specific Active Server Pages Visual Studio & Mobile Internet Toolkit Web Application

Mobile Internet Toolkit Components Mobile controls Mobile designer Rich device identification Rapidly develop Mobile Web Applications Powerful and flexible Easy to customize and extend For future devices

Mobile Controls Render based on device capabilities Automatically output multiple markup languages Built upon ASP.NET control base classes Common controls: Label TextView Link Calendar

.NET Compact Framework Smart Device Extensions A subset of the .NET Framework Same programming model Same security as desktop programming model Lightweight and Resource Efficient RAM Battery and CPU usage Flash and ROM Rich PocketPC Functionality Windows Forms (WinForms) ADO.NET Data Access XML Web Services Client

Common Language Runtime With Windows CE Windows CE Device Windows UI Standard Windows look and feel Forms-based UI All the standard controls Significant subset for small size XML Web Services Windows NT® network integration Data Access Local data (offline) Remote data (online) Simple structured files (text) XML Web Services Windows Forms Data and XML Base Class Library Common Language Runtime Take advantage of Windows richness

Device Compatibility .Net Compact Framework Faithful implementation of Standard CLI Core types and methods + device extensions Subset of .Net framework appropriate to smart device development Microsoft Full .NET Framework Desktop Microsoft .NET Compact Framework Pocket PC (CE) Microsoft .NET Compact Framework Smart Phone ISO/IEC 23271:2002 / ECMA 335 Common Language Infrastructure Microsoft Windows CE Extensions IRDA, Barcode Scanner, etc

It’s All About Balance (Developer Perspective) This is NOT the desktop, think 100mhz Features Amount of Data Garbage Collection Data Entry/Selection Performance Memory Usage Data, Objects Connectivity

Device Databases

Microsoft Strategy Scalable Solutions Server, Desktop, Tablet PC SQL Server } MSDE SQL Server CE CE Platform

SQL Server CE (SQL CE) Database for the CE / Pocket PC Platform Similar programming style to SQL Server Limitations are more device then SQL/CE 1 Connection/ Database, (usually not a problem) Multiple Databases per device No Stored procs Use cached DataCommands Referential Integrity with cascading updates/Deletes Stand alone, or replicate/sync with SQL Server SQL Server not required, but best match SQL Server CE 2.0 designed for .NET Compact Framework (System.Data.SqlServerCe) Replacement of Pocket Access, just like DBF/Access

CE Data Access Storage Architecture .NET CF / Managed Stack VS .NET (VB.NET, C#) Native/Unmanaged Stack eVB 3.0 eVC 3.0 ADO.NET Ethernet SQL Server CE Data Provider SQL Server Client Data Provider TDS ADO CE v3.1 Well Connected CLR / .NET CF OLEDB CE OLEDB / Replication API 802.11b, CDPD, GSM, CDMA, TDMA, etc. SQL CE Edition v2.0 Data Provider Client Agent: Replication and RDA IIS Server Agent: Replication and Remote Data Access OLEDB QP/Cursor Engine/ES OLEDB HTTP Storage Engine / Repl Tracking Occasionally Connected CLIENT SERVER

Setting up SQL CE Replication Basic Replication setup + Install SQL CE Replication Tools http://www.microsoft.com/sql/downloads/ce/sp3.asp Test connectivity from device Localhost won’t work NETBIOS name may not work (WINS Resolution) Test with IP or Fully Qualified Domain Name If you don’t get this response from the DLL, don’t go any further http://192.168.1.100/Repll/sscesa20.dll

SQL / CE – Data Transfer Multiple Techniques RDA system.Data.SqlServerCe.SqlCeRemoteDataAccess Great for semi-connected environments, large data transfers Merge Replication Over IIS System.Data.SqlServerCe.SqlCeReplication Great for managing concurrency ADO.net System.Data.SqlClient.SqlCommand Can call SQL Server directly, but not a great idea…* (*Not a Mobile Architecture) Web Services Great when concurrency isn’t an issue, or server isn’t SQL

Supported ADO .NET And XML Classes On .NET CF XmlDocument DataView XmlReader DataSet XmlWriter SqlDataReader SqlCeDataReader SqlDataAdapter SqlCeDataAdapter SqlCommand SqlCeCommand SqlConnection SqlCeConnection .NET Data Provider for SQL Server .NET Data Provider for SQL CE XML File

Parsing Exceptions public static void ShowErrors(SqlCeException se) { SqlCeErrorCollection errorCollection = se.Errors; StringBuilder exInfo= new StringBuilder(); Exception inner = se.InnerException; foreach (SqlCeError err in errorCollection) exceptionDetailStringBuilder.Append("\n Error Code: " + err.HResult.ToString("X")); exceptionDetailStringBuilder.Append("\n Message : " + err.Message); exceptionDetailStringBuilder.Append("\n Minor Err.: " + err.NativeError); exceptionDetailStringBuilder.Append("\n Source : " + err.Source); foreach (int numPar in err.NumericErrorParameters) if (0 != numPar) exceptionDetailStringBuilder.Append("\n Num. Par. : " + numPar); } foreach (string errPar in err.ErrorParameters) if (String.Empty != errPar) exceptionDetailStringBuilder.Append("\n Err. Par. : " + errPar); MessageBox.Show(exceptionDetailStringBuilder.ToString()); exceptionDetailStringBuilder.Remove(0, exceptionDetailStringBuilder.Length);

Mobile Application

Tips and Tricks Always think Performance, …always Test performance on everything Get the actual device Design and Proof of Concept EVERYTHING Get a wireless Lan for debugging Reuse everything you can Database optimization is KEY Don’t assume flat is good. Balance of normalization is good Don’t assume your .sdf needs to have the same structure as the server

Tips and Tricks This is NOT a 1.8GHZ Processor Think 100MHZ Be kind to your environment Reuse Everything Pre-Load Data Use DataSets to cache data …more to come… Save Forms that will be used again Use a forms collection that caches forms Toss objects that you don’t use often Don’t try to load 9 MB of data onto a device with 8 MB of RAM protected override void OnClosing(CancelEventArgs e) { this.Save(); e.Cancel = true; this.Hide(); base.OnClosing (e); }

Resources Newsgroups: http://www.gotdotnet.com/team/netcf SQL CE microsoft.public.dotnet.framework.compactframework http://www.gotdotnet.com/team/netcf SQL CE http://www.microsoft.com/sql/ce/ http://www.microsoft.com/sql/ce/techinfo/default.asp Article on Setting up a sample Replication and RDA http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsqlce/html/sqlwince.asp

Q & A