Loading…
Tilbage

Metode


08-08-2011 00:43:05

Metode afsnittet her til at diskutere hvordan wrapperen skal være. Lige nu er det også min "arkitektur"-udkast.

 

Mål: At gøre NemHandel bibliotekerne tilgængelige i Python.

Helt specifikt har jeg sat det til måls at skrive sample ved navn dk.gov.oiosi.samples.consoleClientExample, for ligesom at have en test-case der kan vise at wrapperen virker, og sådan så jeg kan tage udgangspunkt i det.

 

I preparation.cs står der følgende:

using dk.gov.oiosi.common;

using dk.gov.oiosi.communication;

using dk.gov.oiosi.communication.configuration;

using dk.gov.oiosi.security.revocation;

using dk.gov.oiosi.uddi;

using dk.gov.oiosi.security;

using dk.gov.oiosi.security.ldap;

using dk.gov.oiosi.security.lookup;

using dk.gov.oiosi.security.oces;

using dk.gov.oiosi.xml.documentType;

using dk.gov.oiosi.test.request;

using dk.gov.oiosi.raspProfile.communication;

 

Og i Program.cs står der følgende:

using dk.gov.oiosi.communication;

using dk.gov.oiosi.test.request;

using dk.gov.oiosi.raspProfile.communication;

 

Det der skal så gøres, før at samplen kan blive skrevet i Python, er at disse objekter skal være ledige i python. Python kalder dem Moduler. Måden hvorpå man kan lave moduler i python er ved at skrive det i python kode.

 

Problemets kerne er at Visual C# bruger CLRen, men det gør python ikke. Dvs. at CLR skal være tændt og loade NemHandel bibliotekerne, og så skal de kaldes fra Python. Her prøver jeg at finde og beskrive den bedst mulige metode til brug.

 

Metode forslag 1: Skrive NemHandel bibliotekerne i Python.

 

Man kan også prøve at linke DLL bygget i Visual C# til python fortolkeren. Det er ikke lige til,  da C# er managed dll, og python som standard er god til at linke til unmanaged dll. Det vil sige vi får følgende forslag:

 

Metode forslag 2: Eksporter NemHandel bibliotekerne til unmanaged DLL.

Det svarer til at man starte python program op, og starter NemHandel bibliotekerne op, og prøver at lade dem snakke til hinanden gennem et eller andet proces kommunikations system.

 

Efter noget research fandt jeg ud af at der er nogen som har forsøgt at lave en managed udgave af python, således  at man kan bruge en hver bibliotek lavet i .NET til at skrive python. Dette hedder IronPython.

 

Metode forslag 3: Anvende SWIG til at fremstille kode anvendelig i PYTHON, dvs. bruge SWIG på NemHandel bibliotekerne.

 

Metode forslag 4: Skrive en NemHandel klient framework. Eksporter dette til C DLL, og så bruge det som basis til alle wrapper til alle andre sprog. 

Filen er  også vedhæftet i denne ressource (se nedenunder).

Filer og referencer

Titel Type
NemHandel Python Wrapper Metode Ekstern reference
Læs mere om Kod i ferien her Ekstern reference
Læs mere om projektet her Ekstern reference