Get Blogged by JoKi

"The only frontiers are in your mind"
26 | 06 | 2017
Navigation
Latest Tweets

About me
Family guy, geek, entrepreneur, software craftsman: Visual FoxPro, C#, SQL Server, MySQL, Linux consultant, conference speaker

Certificates & Awards

Microsoft Certified Professional

Microsoft Specialist - Programming in HTML5 with JavaScript and CSS3 Specialist

Get in touch

Sharing is caring

Recent books


Sponsoring
If you like the information on these pages, your support is highly appreciated.
Thank you very much!
Affiliates

 

Spacer for layout formatting
Projects
COM Proxy for .NET

COM Proxy for .NET

Motivation
Based on some research I did in december 2005 and currently refreshed due to a vital discussion in on of Microsoft's news groups at news://msnews.microsoft.com/microsoft.public.de.fox (German) about the future of Visual FoxPro, I decided to finalize and deploy my COM Proxy for .NET. As you might guess the name of this component is its main purpose. It is a dynamic-link library that provides features of the .NET framework classes via COM to any legacy programming language like Visual FoxPro. Contrary to current Sedna CTP this component has the same interface for Regular Expressions as the VBScript object has. So, this way it is a lot easier to switch between different implementations.
 
Setup and Installation
The component comes in two flavors - for .NET Framework 1.1 and 2.0. The setup routine installs both in separate folders and registers both in Windows. But no fear, the ProgID is the same for both, so it's again very handy for a VFP developer. Last registration of the component is the active one. I'd like to mention that the registration uses the /codebase switch of regasm tool and therefore creates no entries in to the Global Assembly Cache (GAC) on the machine. The current version of the setup is available at my German blog at the URL
 
 
Just get the file and follow the installation instructions.
 
Usage in Visual FoxPro
So, while the components are COM-based dynamic-link libraries usage in Visual FoxPro is done with its CreateObject() function. The returned object reference is an instance of .NET's Regex class.
 
RegEx = CreateObject("ProLib.RegEx")
? RegEx.IsMatch("abc","\w")
 
You can use any option and functionality of System.Text.RegularExpressions.Regex in Visual FoxPro now. Further information and details on this namespace are provided in the MSDN
 
HTML Plugin for Active FoxPro Pages

HTML Plugin for Active FoxPro Pages

Motivation
Html Plugin is primarily a plug-in for Active FoxPro Pages. But that's only half the truth. The plug-in itself is build as a component and offers stand-alone functionality for VFP developers and through COM as well for other programming languages.
 
Setup and Installation
The setup routine installs and registers the component in Windows. The current version of the setup is available here:
 
 
Just get the file and follow the installation instructions.
 
Usage in Visual FoxPro
In VFP you just create an object like so:
 
Set Procedure To "html.plugin.dll" Additive
Html = CreateObject("CHTML")
 
If you have to use COM instead, then this works just fine:
 
Html = CreateObject("AFPPlugin.Html")
 
It was quite funny to get this component working in .NET Framework and I'm still working on this topic, but at the moment I got it to create my own namespace (tree) based on this single DLL. After you added a reference to the COM server, you'll have an new namespace tree instead of just one plain entry: ProLib.AFP3.Plugin.Html and due to COM interoperability in .NET the instance name of the class is simple HtmlClass.
 
I wrote a sample solution that's able to convert an RSS Feed to a .NET DataSet through the Html Plugin. Well, not too hard to implement in pure .NET but the fact is, that the plug-in provides the same functionality to VFP developers.
 
And Html Plugin is a core part of AfpWiki - a Wiki engine on top of Active FoxPro Pages. Actually the Html Plugin does all the stuff related to Regular Expressions. It's really nice to see that just one line of code parses all hyperlinks of the entire document and converts them into clickable links with 'title' attribute and protocol indicator. There is still a lot of work to do inside of AfpWiki, like backup and restore of the database, online upgrade mechanism as well as an abstraction layer to user authentication and management, but this will be implemented during a couple of weeks. You might check out http://faq.dfpug.de to see the system in action.
 
Ah, before I forget to mention Html Plugin and AfpWiki are both available for free (as in beer *g*). So, if anyone of you is interested in a Wiki solution just drop me a note.
 
Sunshine (Codename: Moonwalk)

Project: Sunshine

Ein zur Erfassung von Daten sportlicher Aktivitäten und später irgendwann einmal auch statistische Auswertungen. Wow, noch eine Software im Sinne eines 'Personaltrainers'. Hast du nicht gesehen... Well, ja, irgendwie in der Art soll es etwas werden, aber vielleicht auch mehr. Der Ausgang dieses Projektes ist offen...

Das Interessante an diesem Projekt wird jedoch die Herangehensweise der Entwicklung sein. Denn obwohl oder gerade weil es in Visual FoxPro realisiert wird, möchte ich mit diesem Projekt ein persönliches Experiment angehen. Und zwar werde ich entgegen meiner üblichen Vorgehensweise diese Anwendung mal rein aus der Sicht des Anwenders aufbauen. Also, was sehe ich? Wie funktioniert es und wie fühlt es sich an. Ich meine, dass man solch eine Vorgehensweise 'Top-Down-Design' nennt, lasse mich aber gerne eines Besseren belehren.

Okay, also ausgehend vom Grundsatz Hauptsache, es sieht gut aus! schreibe ich aktuell an der Gesamtoberfläche und an den visuellen Komponenten. Und in der Tat sieht die Software bereits schon ein wenig stylisch aus. Anbei mal ein Screenshot:

Und damit sind wir sicherlich auch beim ersten Problem des Abends... Entwickler sind keine Designer, und wirklich gut aussehende Grafiken, Icons und Pictures sind auch in den Weiten des Internets schwer zu bekommen, zumindest wenn man sehr genaue Vorstellungen für das Gesamtbild der Anwendung hat. Falls sich also jemand oder auch mehrere Grafiker/Designer bereit erklären möchten, dem Projekt ein wenig was beizusteuern. Gerne, schreibt mir eine Mail, skypt mich an, etc...

Bei der Betrachtung der technischen Details möchte ich für die Entwicklung des Projekts folgende Rahmenpunkte abstecken:

- Visual FoxPro 9.0 Service Pack 2
- Acodey Komponentenbibliothek - die eigentliche Power im Projekt
- GDIPlusX aus dem VFPX Community Projekt
- freie Grafiken und Icons
- unzählige Blogartikel mit Ideen, Anregungen und Lösungen

Das Datenbankdesign werde ich erst zu einem späteren Zeitpunkt angehen, denn aktuell schwirren meine Gedanken noch viel zu sehr durch den Kopf. Das wird sich mit der Zeit legen und dann folgt das ERM. Die Entscheidung für eine bestimmte Datenbank obliegt mir Dank Komponenten aus Acodey nicht. Dennoch wird der VFP DBC als erster Storage zum Einsatz kommen. Für die Ausgabe von Auswertungen werde ich in diesem Projekt auf die Fähigkeiten der VFP 9.0 Reportengine zurückgreifen.

 

 


Spacer for layout formatting