MBL401.Net Compact Framework: Data Access Best Practices Paul Foster Mobile solutions architect.

Slides:



Advertisements
Similar presentations
Service Oriented Architecture for Mobile Applications Swarupsingh Baran University of North Carolina Charlotte.
Advertisements

SSRS 2008 Architecture Improvements Scale-out SSRS 2008 Report Engine Scalability Improvements.
DEV351 ADO.NET Performance Pablo Castro Program Manager – ADO.NET Team Microsoft Corporation.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Technical Architectures
What’s New for Smart Client Developers in Visual Studio 2005? Mike Pelton Systems Engineer Microsoft Ltd
Managing Employee Earnings Statements: PAYSTUB 3.0 A centralized, intranet-based application used to view employee earnings statements online Published:
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
Discover, Master, InfluenceSlide 1 SQL Server Compact Edition and the Entity Framework Rob Sanders Readify.
SQL Server 2005 Integration Services Mike Taulty Developer & Platform Group Microsoft Ltd
DAT304 Leveraging XML and HTTP with Sql Server Irwin Dolobowsky Program Manager Webdata Group.
Building Offline/Cache Mode Web Apps Using Sync Framework Mike Clark Group Manager Cloud Data Services Team
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
ASP.NET INTRODUCTION INTO وزارة التربية و التعليم العالي كلية العلوم و التكنولوجيا قسم علوم الحاسوب و تكنولوجيا المعلومات اعداد الاستاذ: عبد الله محمد.
Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
OFC304 Excel 2003 Overview: XML Support Joseph Chirilov Program Manager.
MBL393 Location Aware Devices Chung Webster Application Development Consultant.
DEP351 Windows ® Rights Management (Part 2): Enterprise Readiness & Deployment Marco DeMello Group Program Manager Windows Trusted Platforms & Infrastructure.
DAT336 Connected vs Disconnected Data Access in ADO.NET Pablo Castro Program Manager – ADO.NET Team Microsoft Corporation.
Distributed File Systems
WEB 304 An Overview of ASP.NET and Windows Workflow Foundation Kashif Alam Program Manager Developer Division Microsoft Corporation.
DAT305 Boost Your Data-Driven Application Development Using SQL Server Centric.NET Code Generator Pascal Belaud Microsoft France.
DEV325 Deploying Visual Studio.NET Applications Billy Hollis Author / Consultant.
OFC290 Information Rights Management in Microsoft Office 2003 Lauren Antonoff Group Program Manager.
.NET Compact Framework Performance Strategies MBL 402 Ivo Salmre Product Manager.NET Developer Technologies, UK Microsoft Corporation.
Visual Studio 2005 Team System Winning the testing space with advanced testing tools Eric Adams Program Manager Visual Studio 2005 Team System Microsoft.
Paul Butterworth Management Technology Architect
Microsoft Sync Framework Content flow for the enterprise.
DEV384 COM+ Lives : New Features in Enterprise Services Included in Windows Server 2003 Catherine Heller Senior Consultant Microsoft Spain.
Windows Forms in Visual Studio 2005 Mike Pelton Systems Engineer Microsoft Ltd
Microsoft Dynamics NAV 2009 and Architecture Overview Name Title Microsoft Corporation.
DEV333 Instrumenting Applications for Manageability with the Enterprise Instrumentation Framework David Keogh Program Manager Visual Studio Enterprise.
MBL206 A First Look at the Microsoft Location Server (MLS) Steve Lombardi Technical Product Manager MapPoint Business Unit Microsoft Corporation.
OFC291 Microsoft® Office Word XML (part 1 of 3): Introduction Martin Sawicki Lead Program Manager.
DAT 332 SQL Server 2000 Data Transformation Services (DTS) Best Practices Euan Garden Product Unit Manager SQL Server Development Microsoft Corporation.
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,
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
MBL490 Deploying Applications to Smartphone and Microsoft® Powered Pocket PC Marcus Perryman Consultant.
EBIZ327 InfoPath and BizTalk Server 2004 Scott Woodgate Jupiter Product Planner.
MSG331 Exchange Server 2000/2003 Software Development Kit Susan Hill Lead Programmer Writer Microsoft Corporation.
DAT300 SQL Server Notification Services: Application Development Ken Henderson Technical Lead, SQL Server Support Microsoft Corporation
MBL 305 ASP.NET Mobile Controls: Best Practices Gökşin Bakir CSA Yage Ltd. Microsoft Regional Director.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Module 3: Working with Local Data. Overview Using DataSets Using XML Using SQL Server CE.
EBZ303 Building Applications Using BizTalk Human Workflow Services Nagender Vedula Group Program Manager E-Business Server Group Microsoft Corporation.
EBIZ302 Jupiter Business Process Automation and Web Services David Fong Program Manager.
DEV394 Windows Forms Performance Tips And Tricks Mike Henderlight Development Manager.NET Client Team Microsoft Corporation
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
DEV332 Programming for the Middle Tier in Visual Basic.NET Billy Hollis Author / Consultant.
DEV414 Black-belt ASP.NET Tips And Tricks For Your ASP.NET Applications Rob Howard Program Manager Web Platform and Tools Team.
OFC311 Developing Microsoft Office InfoPath 2003 Solutions: Technical Drilldown Part 1 Tudor Toma Group Program Manager Office Microsoft Corporation.
EBIZ312 Connecting Host Systems to Microsoft Technologies Paul Larsen Aaron Grady Microsoft Corporation.
Gowtham Prasad K N Partner Technical Consultant | Microsoft Corporation |
Exploring Networked Data and Data Stores Lesson 3.
BizTalk Damir Dobric Lead Architect. Agenda Microsoft BizTalk RFID Overview Architecture Application models Implementing Event Handlers Sensors.
9/24/2017 7:27 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
5/12/2018 3:54 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Chris Menegay Sr. Consultant TECHSYS Business Solutions
Microsoft Ignite /22/2018 3:27 PM BRK2121
Microsoft Build /20/2018 5:17 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
DotnetConf 11/14/2018 3:27 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE.
Microsoft Ignite /14/ :21 AM BRK2101
The Application Lifecycle
ASP.NET 4.0 State Management Improvements – Deep Dive
Introduction to ASP.NET Parts 1 & 2
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:

MBL401.Net Compact Framework: Data Access Best Practices Paul Foster Mobile solutions architect

Agenda Overview Performance implications for design Solution architectures

Application style Native apps Local Store Native apps Cache & Proxy Web pages Big deviceBig bandwidth Store and forward Store and forward Data synchronisation Data synchronisation Network detection Network detection

Client Mobile Architectures Always-connected smart application Application calls data and services from main code Device must be online for app to function Data-caching smart application App calls data directly from source; saves data locally User defines when to use local versus Remote data Seamless online/offline application App always calls data from local cache/API (Mobility Data Layer) Local cache is self-synchronizing

Technology overview Client Base client SQL for CE Sync RDA Server MSMQ Exchange 2000 SQL 2000 PIM IIS XML Web Services MSMQ

Simple CRM demo demo demo

Application components Base Form Always Connected Seamless Online/offline Data Caching Desktop application XML Web service Contact Store.Net Compact Framework ASP.Net.Net Framework A single, common data access component across all platforms

Agenda Overview Performance implications for design Solution architectures

What Is Performance? Affected by two principles Absolute Performance of the system; the raw processing horsepower Apparent Performance of the application; affected by how the application is written Application performance is qualitatively measured by how responsive the application is to the end user

The Execution Engine A short review Compiled managed code is a binary in Microsoft Intermediate Language Code is just-in-time compiled to the native processor language on type-by-type, method-by- method basis Resulting native code is cached for later reuse Over the lifetime of the app, the up front cost of jitting is amortized, and becomes less and less significant

Code Pitching Occurs when large volumes of allocated memory cause memory pressure Runtime will discard or pitch code from the code cache Qualitative inspection will tell you when this occurs

Behavior Under Memory Pressure Memory utilization Performance

Performance data handling basics 1 Make asynchronous requests Defer data loading until it is required, discard when data no longer in use Minimize data in memory at any time

Performance data handling basics 2 Forward only reading is always faster than in memory representations XmlDocument versus XmlTextReader DataReader versus DataAdapter Use StringBuilder for complex string manipulations

Understand The APIs How abstract is the API? Example: XmlDocument versus XmlTextReader/Writer What work has to happen under the hood? Be aware of how events fire Don’t do a lot of work in a click event if a user will be tapping and dragging object

Alerts demo demo demo

Alerts Client Design strategies DataSet.ReadXML() 20 seconds total load time XMLTextReader – Forward Data Loading File Read Time 6 seconds (Total: 11 seconds) TreeView Load Time slow XMLTextReader + Delay TreeView Population File Read Time 2 seconds (Total: 3-4 seconds) TreeView Load Time faster SQL Server CE + Delay TreeView Population Query Time 3 seconds (Total: 3-4 seconds) TreeView Load Time faster (same as above)

Alerts Client Design strategies 1. DataSet.ReadXML() 20 seconds total load time 2. XMLTextReader – Forward Data Loading File Read Time 6 seconds (Total: 11 seconds) TreeView Load Time slow 3. XMLTextReader + Delay TreeView Population File Read Time 2 seconds (Total: 3-4 seconds) TreeView Load Time faster 4. SQL CE + Delay TreeView Population Query Time three seconds (Total: 3-4 seconds) TreeView Load Time faster (same as above)

On the wire optimizations Compression XmlElement and XmlAttribute

Agenda Overview Performance implications for design Solution architectures

DataSet limitations Datasets are convenient and fast to develop with but: Microsoft.Net only.Net Framework allows use of typed datasets.Net Compact Framework supports only un- typed datasets

Architecture for SOA Need three facades for three client styles Non-Microsoft.Net Framework.Net Compact Framework Can reuse logic for all three with final delivery onto the wire being unique.

Architecture for SOA example.Net Compact Fx.Net Framework Non-Microsoft WS Business logic Populates received DataSet Data source Parse to XML Create DS Create un-typed DS Create typed DS

Idempotent operations Ability to run an action many times with each outcome identical to the first. ATM machine example. Important to the mobile solution space because of the unreliable nature of wireless communications.

Idempotent solution Use of unique identifier to validate uniqueness of transaction. Business logic logs use of identifier and validates future transactions against this log. Enables determination of transaction state.

Idempotent solution Smart Client generates unique id Server Validates id ID unique Processes transaction ID previously used transaction rejected Web page has server generated id embedded within it Server Validates id ID previously used transaction rejected Id log ID unique Processes transaction Id log

Summary Understand connectivity characteristics of devices running apps Understand what is acceptable for data “freshness” Think asynchronously for best UI performance Design, test and iterate on your design considering multiple approaches Methodically analyze performance of your application Understand APIs Minimize data in memory

Ask The Experts Get Your Questions Answered Ask the Experts area Directly after this session and during lunch

Community Resources Most Valuable Professional (MVP) Newsgroups Converse online with Microsoft Newsgroups, including Worldwide User Groups Meet and learn with your peers

evaluations evaluations

© 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.

Demo Title Name Title Group demo demo