Agenda. ActiveX ein kleiner Rundgang! OOP richtig angewandt Xbase Parts Owner-Drawing-Beispiele Dateien im Netz das ewige Thema!



Ähnliche Dokumente
Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Internet Explorer Version 6

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Installationshinweise für OpenOffice Portable auf einem Wechseldatenträger Stand: 27. März 2003 LS Stuttgart, Kaufmännische ZPG

Installation der SAS Foundation Software auf Windows

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Professionelle Seminare im Bereich MS-Office

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

BSV Software Support Mobile Portal (SMP) Stand

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Windows 10. Vortrag am Fleckenherbst Bürgertreff Neuhausen.

SICHERN DER FAVORITEN

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Lizenzen auschecken. Was ist zu tun?

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

Terminabgleich mit Mobiltelefonen

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

MetaQuotes Empfehlungen zum Gebrauch von

Druck von bzw. Scan auf USB-Stick

HANDOUT VON: EIGENES SSL-ZERTIFIKAT FÜR DEN WHS. Copyright 2011 by s.winkler all rights reserved!

Installationsleitfaden zum Fakturierungsprogramm

Hardware - Software - Net zwerke

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Guide DynDNS und Portforwarding

PC-Umzug: So ziehen Sie Ihre Daten von Windows XP nach Windows 8 um

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Agentur für Werbung & Internet. Schritt für Schritt: Newsletter mit WebEdition versenden

Outlook Vorlagen/Templates

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

ANYWHERE Zugriff von externen Arbeitsplätzen

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Bitte melden Sie sich als Administrator des Betriebssystems oder als Benutzer mit ausreichenden Installationsrechten an Ihrem PC an.

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

ALEMÃO. Text 1. Lernen, lernen, lernen

Print2CAD 2017, 8th Generation. Netzwerkversionen

Die Windows 7 Sicherung im Detail

Leichte-Sprache-Bilder

Reporting Services und SharePoint 2010 Teil 1

Anleitung über den Umgang mit Schildern

Um die Installation zu starten, klicken Sie auf den Downloadlink in Ihrer (Zugangsdaten für Ihre Bestellung vom...)

Software zur Anbindung Ihrer Maschinen über Wireless- (GPRS/EDGE) und Breitbandanbindungen (DSL, LAN)

Informationen zum neuen Studmail häufige Fragen

ÖKB Steiermark Schulungsunterlagen

Datei Erweiterungen Anzeigen!

Internet online Update (Internet Explorer)

Windows XP Jugendschutz einrichten. Monika Pross Molberger PC-Kurse

Netzwerkinstallation WaWi-Profi3

Bilder zum Upload verkleinern

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Task: Nmap Skripte ausführen

Nokia Handy - Daten sichern.

DNS 323 Datenwiederherstellung mit Knoppix (DVD) ab Firmware Version 1.04b84

Kurze Anleitung zum Guthaben-Aufladen bei.

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Installationsanleitung WibuKey Treiber

! " # $ " % & Nicki Wruck worldwidewruck

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

So funktioniert die NetWorker 7.5 Eigenschaft zum Sichern umbenannter Verzeichnisse ( Backup renamed Directories )

Outlook-Daten komplett sichern

Client-Systemanforderungen für Brainloop Secure Dataroom ab Version 8.30

GDPdU Export. Modulbeschreibung. GDPdU Export. Software-Lösungen. Stand: Seite 1

Information zum SQL Server: Installieren und deinstallieren. (Stand: September 2012)

Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren

Was meinen die Leute eigentlich mit: Grexit?

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen

Drahtlosnetzwerke automatisch konfigurieren mit WCN (Windows Connect Now) unter Windows Vista

Geld Verdienen im Internet leicht gemacht

DeltaVision Computer Software Programmierung Internet Beratung Schulung

Datei Erweiterungen Anzeigen!

Integration von SATA / RAID / SCSI Treibern in Windows XP Setup

iphone- und ipad-praxis: Kalender optimal synchronisieren

Anleitung zum Computercheck So aktualisieren Sie Ihr Microsoft-Betriebssystem

Handbuch Amos Ersteller: EWERK MUS GmbH Erstellungsdatum:

TeamSpeak3 Einrichten

Wie richten Sie Ihr Web Paket bei Netpage24 ein

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

AutoCAD Dienstprogramm zur Lizenzübertragung

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Fotos verkleinern mit Paint

BSCW-Anbindung im Dateiexplorer

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel für Mac. amac-buch Verlag

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

CD einlegen (Moment warten) Die Aktion markieren, die durchgeführt werden soll. (in diesem Beispiel»Audio-CD-Wiedergabe)

Vorgehensweise bei der Installation Bob50SQL für einen unabhängigen PC.

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Gezielt über Folien hinweg springen

Informationsblatt Induktionsbeweis

Kapitel 1: Betriebssystem IX. W indows Explorer und der Arbeitsplatz Teil 2

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

Nach dem Einstecken des mdentity wird die Anwendung nicht gestartet

Favoriten sichern. Sichern der eigenen Favoriten aus dem Webbrowser. zur Verfügung gestellt durch: ZID Dezentrale Systeme.

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Schritt für Schritt zur Krankenstandsstatistik

Wie können Sie eine Client Lizenz wieder freigeben?

Transkript:

Agenda ActiveX ein kleiner Rundgang! OOP richtig angewandt Xbase Parts Owner-Drawing-Beispiele Dateien im Netz das ewige Thema!

Windows WMI mit SL1 Windows Management Instrumentation. Einsatzgebiete Hardware: Win32_1394Controller, Win32_BaseBoard,Win32_Battery,Win32_BIOS,Win32_Bus,Win32_CacheMemory,Win32_CDROMDrive,Win32_CurrentProbe,Win32_DesktopMonitor,Win32_DeviceMemoryAddress, Win32_DiskDrive,Win32_DisplayConfiguration,Win32_DisplayControllerConfiguration,Win32_DMAChannel,Win32_Fan, Win32_FloppyController,Win32_FloppyDrive,Win32_HeatPipe,Win32_IDEController,Win32_InfraredDevice,Win32_IRQResource, Win32_Keyboard,Win32_MemoryArray,Win32_MemoryDevice,Win32_MotherboardDevice,Win32_NetworkAdapter,, Win32_PowerManagementEvent,Win32_Printer Win32_PrinterConfiguration, Win32_PrintJob,Win32_Processor... Software: Win32_Account,Win32_AccountSID,Win32_ACE,Win32_BaseService,Win32_BootConfiguration,Win32_ClassicCOMClass, Win32_ClassicCOMClassSetting,Win32_CodecFile,Win32_COMApplication,Win32_COMClass,Win32_ComponentCategory,Win32_Group, Win32_LoadOrderGroup,Win32_LogicalDisk,Win32_LogicalFileSecuritySetting,Win32_LogicalMemoryConfiguration, Win32_LogicalProgramGroup,Win32_LogicalProgramGroupItem,Win32_LogicalShareSecuritySetting,Win32_NetworkClient, Win32_NetworkConnection,Win32_NetworkLoginProfile,Win32_NetworkProtocol,Win32_NTEventlogFile,Win32_NTLogEvent, Win32_OperatingSystem,Win32_OSRecoveryConfiguration,Win32_PageFile,Win32_PageFileSetting,Win32_PageFileUsage, Win32_PrivilegesStatus,Win32_Process,Win32_ProcessStartup,Win32_ProgramGroup,Win32_ProgramGroupOrItem, Win32_QuickFixEngineering,Win32_Registry,Win32_RegistryAction,Win32_Service,Win32_Share... Applications: Win32_Patch, Win32_PatchPackage,Win32_Product,Win32_ProgIDSpecification,Win32_Property, Win32_PublishComponentAction,Win32_RemoveFileAction, Win32_RemoveIniAction,Win32_SelfRegModuleAction, Win32_ServiceControl,Win32_ServiceSpecification,Win32_ShortcutAction,Win32_ShortcutSAP,Win32_SoftwareElement, Win32_SoftwareElementCondition, Win32_SoftwareFeature,Win32_SoftwareFeatureAction,,Win32_TypeLibraryAction... Wann immer Sie etwas über die Platform wissen wollen, kann dies im Regelfall mit WMI ermittelt werden. WMI gibt es seit Windows 2000 (Server) und Windows XP (Workstation) Hunderte von Beispielen unter: http://www.activexperts.com/activmonitor/windowsmanagement/wmi/samples/

WMI in der Praxis Beispiel: Batterie-Status http://www.activexperts.com/activmonitor/windowsmanagement/wmi/samples/hw/#win32_battery.htm Set objwmiservice = GetObject("winmgmts:\\" & strcomputer & "\root\cimv2") Set colitems = objwmiservice.execquery("select * from Win32_Battery",,48) For Each objitem in colitems Wscript.Echo "BatteryRechargeTime: " & objitem.batteryrechargetime Wscript.Echo "BatteryStatus: " & objitem.batterystatus Wscript.Echo "Caption: " & objitem.caption Wscript.Echo "DeviceID: " & objitem.deviceid Wscript.Echo "EstimatedChargeRemaining: " & objitem.estimatedchargeremaining Wscript.Echo "EstimatedRunTime: " & objitem.estimatedruntime... Mit Xbase++ 1.90 SL1 // Ermitteln des Informations-Knotens im WMI Baum owmiservices := GetObject( "WinMgmts:\\localhost\Root\CIMV2" ) // Dann die Abfrage über den Information-Token obat := owmiservices:execquery("select * from Win32_Battery",,48) // Com-Collection nach Array abatt := {} ComEvalCollection(oBat, { oi AAdd( abatt, oi )} ) // Batterie Status? abatt[1]:deviceid? abatt[1]:estimatedruntime,"minutes left"? abatt[1]:estimatedchargeremaining,"charge % remaining Beispiel

MS Word und MS Excel einbetten Problem: MS Word und Excel sind OCX-Documente und keine ActiveX Controls OCX oder auch Object Embedding hat sich auf der Windows-Plattform nie durchgesetzt, weil es sehr komplex ist. Einzig und allein VB6 hat dies wirklich beherrscht. Wir sind nicht allein!.net beherrscht ActiveX nur in einem begrenzten Umfang via COMInterop Die Implementierung eines OCX-Containers in C++ ist die Arbeit von Monaten. Delphi OCX-Unterstützung funktioniert nicht zuverlässig Lösung: Nutzung des XbpHTMLViewers(), also des Internet Explorers als ActiveX Control, welches gegenüber MS Word und Excel als OCX Host auftritt. Probleme: Fokusmanagement inkorrekt. Toolbars und Menüs werden nicht angezeigt Manchmal öffnen sich Dokumente ausserhalb des Explorers IE ist instabil und bleibt beim Einbetten von Word, Acrobat oder Excel gerne hängen.

MS Word oder Excel, jetzt aber richtig! Lösung: Developer Support Office Framer Control von Microsoft. Der dsoframer ist eine speziell entwickelte ActiveX Control, welche einzig und allein dazu da ist, als OCX Host für OCX Dokumente aufzutreten Microsoft Knowledgebase Q311765 Vorgehensweise mit Xbase++ Beispiel

Sonstiges Tablet PC-SDK Handschrift- und Gestenerkennung Beispiel Codejock Xtreme Suite UI Komponenten mit Roger Donnay arbeitet zur Zeit an einem Add-On, welches die Nutzung von Codejock zum Kinderspiel macht!

Sonstiges Tablet-PC SDK Handschrifterkennung und Gesten Beispiel CodeJock Xtreme-Suite UI Komponenten mit Roger Donnay arbeitet zur Zeit an einem Add-On, welches die Nutzung von Codejock zum Kinderspiel macht!

Sonstiges Tablet PC-SDK Handschrift- und Gestenerkennung Beispiel Codejock Xtreme Suite UI Komponenten mit Skinning Nachteile von ActiveX: Im Regelfall benötigen ActiveX Controls ein vielfaches an Resourcen verglichen mit einem Xbase Part Die meisten Controls sind nicht multithreading-fähig. Also immer nur von einem Thread aus benutzen. Viele Controls sind leider nur von mittelmässiger Qualität. Sie sehen toll aus, führen aber zu Programmabstürzen, Hängern udgl. Deployment und Wartung erfordern besondere Aufmerksamkeit.

OOP, aber richtig! PROTECTED vs. EXPORTED PROTECTED: Implementierung EXPORTED: Schnittstellen Regelsätze: So wenig wie möglich exportieren. Wer alles exportiert, sorgt für unwartbare Anwendungen mit schlechter Qualität. Chaos regiert! Exportierte Members (VAR und METHODEN) stellen eine Einheit dar. Man spricht hier von einem Kontrakt/Vertrag/Interface. Eine Schnittstelle (Interface) ist eine Garantie, die eine Klasse den Nutzern derselben gibt. Beispiel Eine Klasse kann mehrere dieser Interfaces haben. Jedes Interface sollte einen eigenen Namen haben. Interfaces werden in Xbase++ durch abstrakte Basisklassen vereinbart Eine Prüfung, ob eine Klasse ein Interface unterstützt, kann dann mittels :IsDerivedFrom( interfacename ) erfolgen. Merke: EXPORTED Members sind für die Klienten/Nutzer der Klassen. Sie stellen die Anwendungsschnittstelle einer Klasse dar und sollten niemals Ihre Semantik/Verhalten ändern! Merke: PROTECTED Members sind Bestandteil der Implementierung einer Klasse. Diese stehen nur dieser Klasse oder davon abgeleiteten Klassen zur Verfügung!

OOP, jetzt aber erst recht! INTRODUCE versus OVERRIDE OVERRIDE: Standardverhalten von Xbase++. Neue Methode ersetzt Implementierung der Basisklassen INTRODUCE: Methode wird eingeführt, ändert aber kein Verhalten in Basisklassen FINAL: Alle zukünftigen Methoden in abgeleiteten Klassen sind standardmäßig INTRODUCE und ersetzen nicht das Verhalten dieser Klasse. Regelsätze: Das Standardverhalten OVERRIDE ist ausreichend für die meisten Fälle des Alltages Methoden, die in abgeleiteten Klassen nicht überladen werden dürfen/sollten, sind mit FINAL zu deklarieren. Nutzen Sie explizites OVERRIDE, wenn Sie bewusst in eine Basisklasse einbrechen wollen. Nutzer einer Klassenbibliothek sollten INTRODUCE verwenden, um unbeabsichtigtes Verändern von Verhalten der Basisklassen-Methoden zu verhindern. INTRODUCE kann auch benutzt werden, um eine neue semantische Ebene innerhalb eines Klassenframeworks aufzubauen. Merke: FINAL am besten für alle Methoden eines Klassenframeworks verwenden, die etwas mit der Integrität des selbigen zu tun haben. Merke: INTRODUCE für Methoden, bei denen man nicht weiß, ob diese nicht schon in einer Basisklasse existieren. OVERRIDE wenn Sie trotz FINAL das Verhalten einer Basisklasse ändern wollen.

Xbase Parts und Owner-Drawing Grundsätzlich ist Owner-Drawing ein Verfahren, das es dem Entwickler erlaubt, das visuelle Erscheinungsbild eines UI-Elements selbst zu zeichnen. Um ein Vielfaches schneller als :Paint() Konsumiert kein Window Handle Hier nun vier Beispiele: XbpImageScroller() XbpButton(),XbpTab() XbpPercentageColumn() Integration in Form Designer xppfd.dat Beispiel

Xbase Parts und Owner-Drawing Grundsätzlich ist Owner-Drawing ein Verfahren das es den Entwickler erlaubt das Visuelle Erscheinungsbild eines UI Elements selbst zu zeichnen. Um ein vielfaches schneller als :Paint() Konsumiert kein Window-Handle Hier nun vier Beispiele: XbpImageScroller() XbpButton(),XbpTab() XbpPercentageColumn() Integration in Form-Designer xppfd.dat Xbase Part Owner-Drawing-Beispiele in 100% PRG Code. Voll designfähig im FormDesigner! Hier Pushbutton Beispiel mit Text und Icon/Bitmap

Xbase Parts und Owner-Drawing Grundsätzlich ist Owner-Drawing ein Verfahren das es den Entwickler erlaubt das Visuelle Erscheinungsbild eines UI Elements selbst zu zeichnen. Um ein vielfaches schneller als :Paint() Konsumiert kein Window-Handle Hier nun vier Beispiele: XbpImageScroller() XbpButton(),XbpTab() XbpPercentageColumn() XbpGradientColumn() abgeleitet von Integration in Form-Designer xppfd.dat XbpColumn(). Mittels Owner-Drawing wird der prozentuale Wert als Gradientbalken gezeichnet. Beispiel

MS File System-QUIZ Frage: Welche wichtige Information des Dateisystems wird in Windows-Betriebssystemem standardmäßig nicht gecached?

MS File System-QUIZ Frage: Welche wichtige Information des Dateisystems wird in Windows-Betriebssystemem standardmäßig nicht gecached? Antwort: Lange Dateinamen Deshalb: Dateizugriff mit 8.3-Notation immer schneller, es sei denn, Sie haben InfoCacheLevel = 16 (0x10) Leider müssen Sie dies aber erst einschalten: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\MRxSmb\Parameters\InfoCacheLevel = 16 Q834350 und Q843418

OP Locking & Netzwerkstabilität Absolut notwendig OP Locking ausschalten. Microsoft Knowledgebase-ID: Q296264 Client: HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\MRXSmb\Parameters\OplocksDisabled = 1 Server: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\LanmanServer\Parameters\ EnableOplocks = 0 Anti-Virus Software darf keine DBF/NTX/CDX/FPT/DBT- Dateien untersuchen. Power-Saving der Klient-Netzwerkkarte ausschalten Auto-Disconnet des Servers ausschalten net config server /autodisconnect:-1 (Q297684) Kein Vista ohne SP1 einsetzen!

I/O-Performance Typische Phänomene: USE von Tabelle oder Index dauert lange (~1s) HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ LanmanServer\Parameters\SharingViolationDelay = 0 (default: 200) HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ LanmanServer\Parameters\SharingViolationRetries = 0 (default: 5) DbAppend(), DbCommit() sind langsam HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ Lanmanworkstation\Parameters\DisableFlushOnCleanup = 1 Hardware Gute Switches und Router. Merke: Die Latenz und nicht die Bandbreite ist entscheidend! Schnelle Festplatten oder Raid 0-Verbund. Merke: Rotations- == Transaktionsgeschwindigkeit!

Abschließend! Der Vortrag sowie die meisten Beispiele wird es zum Download unter www.alaska-software.com geben. Die Owner-Drawing Beispiele müßen noch etwas überarbeitet werden. Wir plannen diese dann allen aktiven Subskriptionskunden kostenlos zur Verfügung zu stellen. Netzwerk & Server-Infrastrukturen entscheiden zu einem erheblichen Teil über die Performance und Stabilität der Anwendungen. Dies gilt ebenso für Client/Server-basierte Lösungen es sind dann nur andere Probleme. Viel Spass beim Arbeiten mit Xbase++ 1.90 SL1 und den hier vorgestellten Lösungen.