MapBasic &.NET interaktion. MapBasic.NET. Jakob Lanstorp IT konsulent COWI. Odense 23. Juni 2011. 1 8 jun 2011 MapBasic &.



Relaterede dokumenter
Kapitel 1 I gang med C#

Udvikling af DOTNET applikationer til MicroStation i C#

Testservice med anvendelse af Microsoft software.

Database for udviklere. Jan Lund Madsen PBS10107

METODER ARV KLASSER. Grundlæggende programmering Lektion 5

Indholdsfortegnelse Forord...8 Makroer samt aktivere Udvikler-fanen...10 Makrosikkerhed (Sikkerhedsindstillinger)...13

MapBasic hvad kan det bruges til? Insights Danmark 2011

Værktøjer fra værktøjskassen. Søren Breddam, Stevns Kommune

Programmering i C Intro og grundlæggende C 5. marts 2007

Affaldsdatasystem Vejledning supplement i system-til-system integration for.net brugere

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11

Delphi og Databaser for begyndere

Test af It-komponent

CLR Integration. Af Torsten Holtse, pbs Indhold

Lær Python dag 1 - modul 1

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.

Programmering I Java/C#

Opsætning af udviklerversion af Microsofts open source XDS.b fra Codeplex Projekt: Net4Care Version: V0.1,

Hvorfor skal vi bruge objekt orienteret databaser?

.NET Component Overview

LOGIN CONTENT STATION

Print vejledning af Skærmkort i QGIS Kortforsyningen WMS Vejledning til print i QGIS efter der er oprettet forbindelse til Skærmkort WMS service

Kapitel 2 Variabler i C#

Opret en Powerpoint præsentation automatisk med VBA

.NET 4.5 og C# 5.0. Denne artikel beskriver nogle af de nye features i.net 4.5 og C# 5.0. Den forudsætter et vist kendskab til.net og C#.

Best practice. Forudsætninger for et godt data warehouse SAS Data Integration Studio

Arduino Programmering

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java

Micro-pixel Neopixel til micro:bit

C# spil (del 1) - Kom i gang med et simpelt spil

Installations guide Saxo ERPTrader. Microsoft Dynamics NAV 2009 / 2013 / 2013R2

Crash Course i Programmering. HumTek, RUC

Embedded controller, almen.

Administration af subsites BRUGERVEJLEDNING FOR ADMINISTRATOREN

Tredjepart webservices

MAPINFO PROFESSIONAL V11.5

02101 Indledende Programmering Introduktion til Eclipse

#AlleKanKode. Lektion 2 - Konstanter og Variabler

PID2000 Archive Service

Hassansalem.dk/delpin User: admin Pass: admin BACKEND

Kapitel 3 Betinget logik i C#

Hvad er Objekter - Programmering

Hvordan vælger jeg dokumentprofilen?

FORGRENINGSLOGIK OG CALCULATED FIELDS. Opsætning af forgreningslogik Felttypen Calculated field

At indsætte ord og billeder og brug af hjælpefunktionen.

Godkendelsesdato Version Rettet af Rettelse(r)

MS Visual Studio Basic En kort vejledning

Sådan redigerer du en hjemmeside i Umbraco

MapBasic brugergruppe. Introduktion til MapBasic. Peter Horsbøll Møller Senior Systems Engineer Januar 2013

Microcontroller, Arduino

Internet Information Services (IIS)

IHCRemote Manual Lauritz Knudsen IHC Control For IHCRemote version 1.0.0

ProjectWise Tips & Tricks

Redaktørvejledning for Skriv en artikel

Hvordan opretter jeg MultiUser med en access-database?

Click to edit title style. Få mere ud af dine kort. Tom Probert Peter Horsbøll Møller

Setup Guide Do It Now Work Smarter

OrCAD Capture TCL IDE med Eclipse

Fra programmering til mikroprocessor

Metoder Klasser Arv. Operatorer Løkker. Praksis eksempel. Grundlæggende programmering Lektion 3

Vejledning til Photofiltre nr. 123 Side 1

Pixi vejledning til TeamShare

SWC eksamens-spørgsmål. Oversigt

Transkript:

MapBasic &.NET interaktion MapBasic.NET Jakob Lanstorp IT konsulent COWI Odense 23. Juni 2011 1

MapBasic &.NET interaktion Erfaring med MapBasic.NET / Visual Studio Anden programmering 2

Program Hurtig gennemgang MapBasic god arkitektur praksis.net framework Visual Studio Opgaver Integration mellem MapInfo, MapBasic og.net 3

Opgaver 01: Fra MapBasic kald matematiske funktioner i en.net DLL 02: Fra MapBasic kald og vis en standard.net MessageBox 03: Læs og skriv til inifiler med.net fra MapBasic 04: Via en.net dialog styres Zoom og Pan i kortvinduet i MapInfo 05: Overfør Typer mellem MapBasic og.net 06: Revers geokoding. Fra MapBasic brug en REST web service via.net 07: Lav en customer dialog i.net 08: OLE kommunikation til dialog docking i MapInfo 4

Arbejdsgang Jeg gennemgår koden et punkt af gangen for alle opgaver. Her efter får I mulighed for, via de udleverede løsninger, at lave ændringer eller udvidelser til koden. 5

MapBasic - God arkitektur praksis Man kan simulere OOP i MapBasic for bedre, at kunne styre små og især store projekter Brug typer til at indpakke variabler der "hører" sammen Type T_POINT x As Float y As Float End Type Navngiv filer sigende MainMitProgram TabFunc Navngiv sub rutiner (Sub og Function) med filenavn som prefix Deklarer kun "public" metoder i def filer Nedbryd programlogik i flere MB filer der linkes til en MBX 6

Visual Studio Integrated Development Environment (IDE) til.net Understøtter flere sprog, f.eks. C, VB.NET, J m.fl. Understøtter udvikling til både desktop, web og PDA 7

Opret projekter og filer i Visual Studio Projekttyper I forbindelse med MapBasic udvikling anvendes ClassLib Alle CLR sprog kan anvendes C er det mest udbredte CLR sprog Filer og referencer tilføjes ved at højreklikke i Solution Explorer Klasser Formular (Dialogboks) Referencer En formular består af flere filer Formulardesigneren Ny kontroller kan vælges i værktøjskassen Egenskaber for hver kontrol kan ændres Hændelser kan eksekvere kode ved brugerinput 8

Koderedigering i Visual Studio Kodevinduet vises ved at dobbeltklikke på en klasse eller højreklikke på en formular og vælge View code. Intellisence hjælper med syntax mens der skrives kode En typisk kodefil består af disse sektioner Namespace referencer Namespace definition Klasse definition Felter Konstruktører Properties Metoder region kan bruges til at gruppere koden 9

Assemblies og namespaces Hvert projekt i Visual Studio kompileres til én Assembly. En assembly er en.exe eller.dll fil. En assembly indeholder MSIL kode ikke kildekode. Namespaces er en logisk gruppering af funktionalitet. En assembly kan indeholde flere namespaces. Et namespace kan være spredt over flere assemblies. En assembly kan placers lokalt sammen med applikationen eller registreres i Global Assembly Cache (GAC). 10

C Syntax Variabler deklareres med syntaxen: Type variabelnavn = new Type(args); DataTable mydatatable = new DataTable(); Navngivningskonvention i C: Typer (klasser) starter med stort. Variabler starter med småt. Der kan loopes gennem alle elementer i en liste med foreach kontruktionen: foreach(string mystring in mystringlist) MessageBox.Show(myString); Der findes generiske (typestærke) samlinger i namespacet System.Collections.Generic. F.eks. kan en liste af strenge oprettes sådan: List<String> mystringlist = new List<String>(); En simpel dialogboks kan vises med MessageBox.Show(message); En subroutine defineres som en funktion med returtype void 11

Eksempel Opret nyt VS projekt Vælg typen Class Library Navngiv projektet, her MapInfoDialog 12

Tilføj en statisk metode Her er metoden ShowDialog tilføjet 13

Kompiler.NET assembly Kompiler projektet via Build > Build MapInfoDialog Eller tryk på Shift + F6 Læg mærke til om der er kompileringsfejl 14

Gør assembly tilgængelig for MapInfo Pro Kopier assembléen til mappen hvor det kompilerede MapBasicprogrammet placeres: MapInfoDialog.dll: assembly MapInfoDialog.pdb: Debug information 15

Byg dit MapBasic-program Declare Method Class: inkl. Namesspaces Lib: uden sti men med.dll Declare Sub Main Call ShowDialog(, ) 16

Kompiler og kør dit MapBasic-program Kompilér Kontrol for evt. kompileringsfejl Kør programmet i MapInfo Professional 17

Opgave 01 Fra MapBasic kald matematiske funktioner i en.net DLL Print Chr$(12) Print "PI() = " + PI() Print "Pow(2,3) = " + Pow(2,3) Print "GetGuid() = " + GetGuid() 18

Opgave 02 Fra MapBasic kald og vis en standard.net MessageBox Call ShowDialog("Tekst til overskrift", "Denne besked er sendt til en.net dialog") 19

Opgave 03 Læs og skriv til inifiler med.net fra MapBasic [ADMIN] USERNAME=Anders And Call WriteKey(FILE_CONFIG, ssection, skey, svalue) svalueread = ReadKey(FILE_CONFIG, ssection, skey) Call DeleteKey(FILE_CONFIG, ssection, skey) 20

Opgave 04 Via en.net dialog styres Zoom og Pan i kortvinduet i MapInfo 21

Opgave 05 Overfør typer mellem MapBasic og.net Type MyType str As String d As Float i As Integer End Type 22

Opgave 06 Revers geokoding. Fra MapBasic brug en REST web service via.net Et klik i kortet skal kunne returnere den nærmeste adresse 23

Opgave 07 Brug to standard.net dialoger fra MapBasic OpenFileDlg FolderBrowserDlg Lav en custom dialog i.net og vis den i MapInfo 24

Opgave 08 OLE kommunikation Indlejre dialog i MapInfo docking system Sample: c:\program Files\MapInfo\MapBasic105\Samples\DOTNET\NAMEDVIEWS\ 25