Top Banner
Pengantar Teknologi Mobile 10 Antonius Rachmat C, S.Kom .NET Compact Framework
34

Pengantar Teknologi Mobile 10

Feb 23, 2016

Download

Documents

Levi

Antonius Rachmat C, S.Kom. Pengantar Teknologi Mobile 10. .NET Compact Framework. GUI Services. Transaction Services. Web Scripting. Data Access. More. Standard Library. Runtime Environment. Application Platforms Today. Browser Apps. Web Services Apps. Local Apps. Other Apps. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Pengantar Teknologi Mobile 10

Pengantar Teknologi Mobile 10

Antonius Rachmat C, S.Kom

.NET Compact Framework

Page 2: Pengantar Teknologi Mobile 10

Standard Library

Application Platforms Today

GUI Services

Transaction Services

Web Scripting

Data Access

More

Operating System

Runtime Environment

BrowserApps

Web ServicesApps

OtherApps

LocalApps

Page 3: Pengantar Teknologi Mobile 10

What is Microsoft .Net?

• Visi:– The platform for the digital future– ‘.NET is Microsoft’s platform for a new computing

model built around XML Web Services’Microsoft Corporation Annual Report, 2001

• Suatu brand name– Applied to many things

• Diperkenalkan oleh Microsoft pada (Juni 2000)– Sekarang sudah sampai .net framework 3.5

Page 4: Pengantar Teknologi Mobile 10

.NET FRAMEWORK

• Bersifat independen dalam hal bahasa– Aplikasi dapat dikembangkan di beberapa

bahasa yang didukung oleh .NET: Visual Basic .NET, Visual C++ .NET, C# dan J#

– Programmer dapat memilih salah satu bahasa yang paling dikuasainya.

• Mampu dijalankan di semua platform

Page 5: Pengantar Teknologi Mobile 10

Open Internet ProtocolsOpen Internet ProtocolsXML, XSLT, XSD, SOAP, XML, XSLT, XSD, SOAP, DISCO, UDDI, XHTML, DISCO, UDDI, XHTML,

HTTP, SSL, WAPHTTP, SSL, WAP

Visual Visual Studio.NETStudio.NET

Simple Simple BrowsersBrowsers

ApplicationsApplications Using Your Using Your

ServiceService

Your Internal ServicesYour Internal Services

.NET Enterprise Servers.NET Enterprise Servers

33rdrd Party Web Services Party Web ServicesGeographic Mapping ServiceGeographic Mapping ServiceCredit Card Statement ServiceCredit Card Statement Service… … [ActiveX Paradigm][ActiveX Paradigm]

Building Block ServicesBuilding Block ServicesPassport – Identity ServicePassport – Identity ServiceCalendaring ServiceCalendaring Service… … [myServices][myServices]

WindowsWindows

SQL ServerSQL ServerBizTalk ServerBizTalk ServerApplication CenterApplication CenterCommerce ServerCommerce ServerHost Integration ServerHost Integration ServerInternet Security and AccelerationInternet Security and AccelerationExchange ServerExchange Server

Sales Data ServiceSales Data ServiceCorporate Fullfilment ServiceCorporate Fullfilment Service

Smart Smart DevicesDevices

Smart ClientsSmart Clients.NET FW.NET FWWindowsWindows

.NET FW.NET FW

Windows Windows CE, XP, 2000, .NETCE, XP, 2000, .NET

.NET .NET FrameworkFramework .NET FW.NET FW

.NET Blueprint

Your Your application application

and web and web serviceservice

Page 6: Pengantar Teknologi Mobile 10

.NET Framework (2)

Page 7: Pengantar Teknologi Mobile 10

.NET Framework (3)

SystemSystem

System.DataSystem.Data System.XmlSystem.Xml

System.WebSystem.Web

GlobalizationGlobalizationTextTextSecuritySecurityCollectionsCollections

ResourcesResourcesReflectionReflectionNetNetIOIO

ThreadingThreadingDiagnosticsDiagnosticsServiceProcessServiceProcessConfigurationConfiguration

DesignDesignADO.NETADO.NET SqlClientSqlClient

Xslt/XPathXslt/XPathXmlDocumentXmlDocument

RuntimeRuntimeInteropServicesInteropServicesRemotingRemotingSerializationSerialization

SerializationSerialization

ConfigurationConfiguration SessionStateSessionStateCachingCaching SecuritySecurity

ServicesServicesDescriptionDescriptionDiscoveryDiscoveryProtocolsProtocols

UIUIHtmlControlsHtmlControlsWebControlsWebControls

System.DrawingSystem.Drawing

ImagingImagingDrawing2DDrawing2D

TextTextPrintingPrinting

System.WinFormsSystem.WinForms

DesignDesign ComponentModelComponentModel

Reader/WritersReader/WritersOleDB, odbc, Oracle OleDB, odbc, Oracle

Page 8: Pengantar Teknologi Mobile 10

Common Language Runtime• Bagian utama dari framework yang akan mengkompilasi

dan mengeksekusi program yang ditulis dengan bahasa yang mendukung .NET

• Compilation process– Dua Langkah Kompilasi

• Pertama program di compile menjadi Microsoft Intermediate Language (MSIL) / Common Intermediate Language (CIL)

– Mendefinisikan instruksi untuk CLR• Kemudian MSIL code diterjemahkan kedalam machine code

– Machine code untuk platform yang khusus– Mengapa dua proses kompilasi ?

• Agar platformnya bersifat independence– .NET Framework dapat diinstal di platform berbeda– Mengeksekusi program .NET tanpa modifikasi kode-nya

• Language independence– .NET program tidak terikat dengan bahasa tertentu– Komponen yang lama dan baru dapat terintegrasi

Page 9: Pengantar Teknologi Mobile 10

Common Language Runtime (2)• Keuntungan lain dari CLR

– Execution-management features• Manages memory, security• Membebaskan programmer dari banyak tanggung jawab• Programmer lebih berkonsentrasi pada program logic

• CLR menyediakan JIT compilation. • JIT hanya akan mengkompilasi method-method yang

memang digunakan dalam suatu bagian aplikasi pada saat tertentu, dan hasil kompilasi ini sendiri di cache di dalam mesin dan akan dikompile kembali jika memang ada perubahan pada kode aplikasi kita. – Jadi tidak semua method diload ke-memori pada saat yang

sama

Page 10: Pengantar Teknologi Mobile 10

Common Language Runtime (3)

Class LoaderClass Loader

IL to NativeIL to NativeCompilersCompilers

CodeCodeManagerManager

GarbageGarbageCollectorCollector

Security EngineSecurity Engine Debug EngineDebug Engine

Type CheckerType Checker Exception ManagerException Manager

Thread SupportThread Support COM MarshalerCOM Marshaler

Base Class Library SupportBase Class Library Support

Page 11: Pengantar Teknologi Mobile 10

DeploymentDeployment

DevelopmentDevelopment

CLR Execution Model

VBVB C#C# ScriptScript ......

Assembly: Assembly: MSIL + MetadataMSIL + Metadata

NativeNativeCodeCode

JITJITCode GenCode Gen

NativeNativeCodeCode

Install timeInstall timeCode GenCode Gen

CommonCommonLanguageLanguageRuntimeRuntime

Page 12: Pengantar Teknologi Mobile 10

Data Types in the CLR

• The CLR mendefinisikan Common Type System (CTS)– All languages built on the CLR use the CTS (managed

code)• Ada 2 kategori:

– Value types:• Relatively simple types• Allocated on the stack

– Reference types:• More complex types• Allocated on the heap• Destroyed through garbage collection

Page 13: Pengantar Teknologi Mobile 10

Compiling & Executing Managed Code

Source Code

Language Compiler

Microsoft Intermediate

Language (MSIL)

Compilation

JIT Compiler

NativeCode

The first time each method is called

Execution

Page 14: Pengantar Teknologi Mobile 10

.NET Class Library• Sering disebut sebagai Base Class Library.• Adalah koleksi dari reusable types yang sangat

terintegrasi secara melekat dengan CLR.• Class library bersifat berorientasi objek yang akan

menyediakan types dari fungsi-fungsi managed code.

• Dengan BCL kita dapat membuat:– Aplikasi console – Aplikasi berbasis windowd (Windows Form) – Aplikasi ASP.NET (berbasis web) – Aplikasi Web Services XML

• Aplikasi berbasis Windows Services

Page 15: Pengantar Teknologi Mobile 10

A Brief History of Windows Mobile Development

• Embedded Tools for Visual Studio– VS 6– Tools for VB, C++

• eMBedded Tools– Standalone and free– eVB– eC++

• .NET Compact Framework (First Pass)– Visual Studio.NET– Smart Device Extensions

Page 16: Pengantar Teknologi Mobile 10

.NET Compact Framework Design Goals

• Portable and small .NET CLR for devices– Enable Visual Basic® and C#

• Integrated in Visual Studio® .NET– Run managed .EXEs and .DLLs directly– Debug with Visual Studio .NET

• Target devices:– Compaq, HP, Dell, Toshiba, …– PocketPC 2000, 2002– Windows Mobile (alias PPC 2003)

• .Net CF in ROM!– Windows CE– SmartPhone– No Palm/Handspring

Page 17: Pengantar Teknologi Mobile 10

The Framework – “Optimized”

• 20mb 1.5mb• Same languages, same code, same MSIL• Multiple target CPUs / Mobile device

Page 18: Pengantar Teknologi Mobile 10

.NET Compact Framework

SystemSystem

System.DataSystem.Data System.XmlSystem.Xml

System.WebSystem.Web

GlobalizationGlobalizationTextTextSecuritySecurityCollectionsCollections

ResourcesResourcesReflectionReflectionNetNetIOIO

ThreadingThreadingDiagnosticsDiagnosticsServiceProcessServiceProcessConfigurationConfiguration

DesignDesignADO.NETADO.NET SqlClientSqlClient

Xslt/XPathXslt/XPathXmlDocumentXmlDocument

RuntimeRuntimeInteropServicesInteropServicesRemotingRemotingSerializationSerialization

SerializationSerialization

ConfigurationConfiguration SessionStateSessionStateCachingCaching SecuritySecurity

ServicesServicesDescriptionDescriptionDiscoveryDiscoveryProtocolsProtocols

UIUIHtmlControlsHtmlControlsWebControlsWebControls

System.DrawingSystem.Drawing

ImagingImagingDrawing2DDrawing2D

TextTextPrintingPrinting

System.WinFormsSystem.WinForms

DesignDesign ComponentModelComponentModel

Reader/WritersReader/WritersSqlServerCeSqlServerCe

Page 19: Pengantar Teknologi Mobile 10

.NET CF Architecture

Host Operating SystemHost Operating System

Platform Adaptation LayerPlatform Adaptation Layer

Execution Engine (“MSCOREE.DLL”)Execution Engine (“MSCOREE.DLL”)

Device Specific Class LibsDevice Specific Class Libs

Base Class LibsBase Class Libs

ApplicationsApplications

.NET Compact Framework CLR.NET Compact Framework CLR

App

Dom

ain

Hos

tA

pp D

omai

n H

ost

… … LaunchLaunchManagedManagedNativeNative

Page 20: Pengantar Teknologi Mobile 10

Platform Adaptation Layer• Base Services

– Threads, sync, timers, memory, math• Storage

– Open, close, read/write, directory– Direct addressing mode

• Networking– Sockets– Connection Control

• GUI– Framebuffer, char and pointer I/O, Fonts

Page 21: Pengantar Teknologi Mobile 10

Execution Engine• Basic services for managed execution

– Loader• Meta-data engine/cache• Representation of class hierarchy/layout• Reflection

– JIT-Compiler/Verifier– Execution Infrastructure

• Exceptions, Native Code InterOp, Security– Garbage Collector– Debugging Support– “Native” implementation of some managed

APIs (class libraries)

Page 22: Pengantar Teknologi Mobile 10

Class Libs• Base Types

– Type conversion, display formatting– String manipulation– Array.Sort

• Threading & Sync (System.Threading)• Storage (System.IO)• Resources (System.Resources)• Collections (System.Collections)• Reflection (System.Reflection)• XML

– DOM and Reader/Writer• Networking, Forms, Data Access

Page 23: Pengantar Teknologi Mobile 10

Developing in a Compact World

• VS.Net 2003/2005 installation option• Only C#, VB.Net• True on-device debugging

– If you can get it connected…• Emulator• Deployment

Page 24: Pengantar Teknologi Mobile 10

Developing in a Compact World VS.NET Integration

• Templates for devices in New Project dialog– Template sets device and project type

• Template types– Pocket PC Application– Pocket PC Class Library– Pocket PC Control Library– Windows CE .NET Application – Mobile Phone Application

• Default set of references that are appropriate for your platform

Page 25: Pengantar Teknologi Mobile 10

Develop Symbian in VS 2005

• You can get it! You can download AppForge plugin!

Page 26: Pengantar Teknologi Mobile 10

Developing in a Compact WorldDeployment

• Same user experience as desktop• Compiles application for device• Output Window used for deployment

messages• Visual Studio deploys the framework to

device if needed

Page 27: Pengantar Teknologi Mobile 10

Packaging and Deployment

Windows + Visual Studio .NETWindows + Visual Studio .NETSource CodeSource Code

(Hello.*)(Hello.*)

.NET.NETCompilerCompiler

.NET CF .NET CF Class LibsClass Libs

Hello.exeHello.exeHello.dll(s)Hello.dll(s) Hello.cabHello.cab

CabWiz.exe CabWiz.exe

Hello.cabHello.cab

DeviceDeviceActiveSync, ActiveSync, SMS, Etc/.SMS, Etc/.

Hello.exeHello.exeHello.dll(s)Hello.dll(s)

WCELoad.exe WCELoad.exe

.NET CF.cab.NET CF.cab

Per-Processor/OS and Per-Processor/OS and Language PackageLanguage Package

.NET CF.cab.NET CF.cab

.NET CF.NET CFCLRCLR

Page 28: Pengantar Teknologi Mobile 10

More Deployment Options

Windows + Visual Studio .NET Windows + Visual Studio .NET DeviceDevice

Hello.cabHello.cab

.NET CF.cab.NET CF.cab

DesktopDesktopExecutablesExecutables

WindowsWindows

Setup.exeSetup.exe

Setup.exeSetup.exeActiveSync, ActiveSync, Add/RemoveAdd/Remove

Programs, Etc.Programs, Etc.

Hello.cabHello.cab

DesktopDesktopExecutablesExecutables

++.NET CF.cab.NET CF.cab

Hello.cabHello.cab

Hello.exeHello.exeHello.dll(s)Hello.dll(s)

.NET CF.cab.NET CF.cab

.NET CF.NET CFCLRCLR

Page 29: Pengantar Teknologi Mobile 10

Working with data: SQL Server CE

• Limited subset of SQL Server functionality• Good for:

– Persistent storage locally– Persistent storage for occasionally-connected

applications and large sets of data– Merge Replication

• Currently, SQL Server CE requires an additional installation

Page 30: Pengantar Teknologi Mobile 10

Working with data: SQLite

• SQLite adalah database bukan client-server, dia bersifat stand-alone

• Hanya terdiri dari 1 file– Berekstensi: .db3

• Perlu download file DLL tambahan agar bisa koneksi:– System.Data.SQLite

• Secure, bisa menggunakan bahasa SQL• Bersifat lokal

Page 31: Pengantar Teknologi Mobile 10

Working with data: XML

• Good for:– Persistent storage of smaller sets of data

• Local storage• Occasionally-connected computing

– Not as secure as SQL Server CE

Page 32: Pengantar Teknologi Mobile 10

How Compact ?  File Size   Classes Methods

  NETCF Desktop % NETCF Desktop % NETCF Desktop %

“MSCorEE” 400K* 2.2 M 18% N/A N/A N/A N/A N/A N/A

MSCorLib 200K 2M 10% 364 1286 28% 3989 13817 29%

System 100K 1.2M 8% 140 765 18% 1090 6953 16%

System.Drawing 20K 458K 5% 41 254 16% 385 3509 11%

System.Web.Services 67K 503K 13% 54 274 20% 302 2083 14%

System.Windows.Forms 56+55K 2M 5% 43 823 5% 393 11337 3%

System.XML 138K 1.2M 12% 100 724 14% 927 7227 13%

* .NETCF file size of MSCorEE is for Win32/x86 version* .NETCF file size of MSCorEE is for Win32/x86 version

Page 33: Pengantar Teknologi Mobile 10

Framework Size

• Framework size (RAM or ROM)– ~1.5 MB

• Running RAM needs– 1 MB+ (depends on app)

• Typical application sizes– 5 - 100 KB– Apps often smaller due to use of platform

features in the framework

Page 34: Pengantar Teknologi Mobile 10

NEXT

• Symbian OS