Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   CSharp DLLs in anderen Sprachen nutzen (https://www.delphipraxis.net/121568-csharp-dlls-anderen-sprachen-nutzen.html)

Tyrael Y. 30. Sep 2008 14:30


CSharp DLLs in anderen Sprachen nutzen
 
Hallo zusammen,

ich gebe zu ich habe noch nicht angefangen zu recherchieren und damit
die mir aufgefallenen Fragen zu beantworten. Da hier viele mehrsprachig (Delphi, Java, CSharp, usw.)
"täglich" nutzen, wollte ich schon mal meine Fragen an die Wissenden loswerden.
Die eigene Recherche wird natürlich nicht ausbleiben.

...also

Ich bin noch nicht so bewandert in CSharp und Java.
Beides behersche ich mehr als Anfänger. Das "normale" Programieren ist nicht das Problem.

Ich habe vor in einiger Zeit einige DLL´s in CSharp zu schreiben.
Diese DLL's sollen für ein bestehendes Programm in Java benutzt werden und neue Funktionalitäten für diese Applikation bieten.

In mittelfristiger Zukunft wird eine weitere Applikation in CSharp geschrieben werden, bei der diese DLL's auch benutzt werden sollen.

Die Fragen, die mir in diesem Zusammenhang in den Sinn kommen sind folgende:

- Kann ich ohne weiteres in CSharp geschriebene DLL´s in Java benutzen oder gibt es dabei Beschränkungen, so ähnlich wie bei Delphi DLL´s und Delphi strings, die man zB in C++ nutzen möchte (PChar)?

- Kann eine CSharp DLL ohne das .NET Framework überhaupt funktionieren? (Wahrscheinlich nicht, wie sonst sollte die Speicherverwaltung funktionieren?)


Danke schon mal für den Verweis auf Google :nerd: ;)

Dax 30. Sep 2008 15:07

Re: CSharp DLLs in anderen Sprachen nutzen
 
NET-Assemblies in Java-Apps zu benutzen geht, wenn überhaupt, nur über COM - also kann man fast sagen, dass es nicht geht ;)

Und Ja, NET-Assemblies funktionieren nur, wenn ein Framework installiert ist.

(verweis auf Google)

Tyrael Y. 1. Okt 2008 08:19

Re: CSharp DLLs in anderen Sprachen nutzen
 
Hallo,

das es die Möglichkeit über COM gibt, habe ich jetzt auch an verschiedenen Orten gelesen.

So wie es aussieht gibt es noch weitere Möglichkeiten
CSharp in Java
Hier ist aber der für mich interressante Teil in einer DLL verpackt.
Ich möchte gerne selber die Kontrolle behalten. Eine fertige DLL kommt für mich nicht in Frage.


Noch eine Möglichkeit ist Wohl folgendes Projekt, leider ist es noch nicht ausgereift.
Jakil
Hier hat man die Möglichkeit den CSharp Code in Java zu wandeln und es danach in Java zu nutzen.


Nochmal kurz zu meiner Ausgangssituation.
Es liegt ein fertiges Programm in Java vor.
Es sollen Erweiterungen für dieses Programm geschaffen werden.
Nichts visuelles, reine Funktionalität.

Es ist geplant in mittelfristiger Zukunft ein völlig anderes Programm zu schreiben,
daß auch diese Funktionalität besitzt.

Der Sourcecode soll möglichst nur einmal geschrieben werden und bei beiden
Programmen nutzbar sein. Dieses neue Programm wird möglicherweise in CSharp geschrieben werden.

Jürgen Thomas 1. Okt 2008 08:37

Re: CSharp DLLs in anderen Sprachen nutzen
 
Hallo,

vor kurzem gab es die Diskussion c# DLL .NET in DELPHI32 nutzen; das, was dort geschrieben wurde, hilft Dir vielleicht auch.

Jürgen

Tyrael Y. 1. Okt 2008 11:17

Re: CSharp DLLs in anderen Sprachen nutzen
 
Danke für den Link.

Nach einiger Recherche habe ich folgende Wege gefunden.

1. COM (ActiveX)
2.1 Assemblies direkt über JNI laden
2.2 Assemblies in "normale" DLL's übersetzen lassen und dann über JNI nutzen
Funktionen aus Assembly in DLL exportieren

3. Die Funktionalität in Java schreiben und für spätere Nutzung in CSharp übersetzen lassen.
Hierfür gibt es mehrere Tools. zB. JLI


Ich bevorzuge im Moment den 3. Weg.
Habt ihr Erfahrung mit solchen Übersetzern?
Gibt es Probleme dabei?

Phoenix 1. Okt 2008 12:04

Re: CSharp DLLs in anderen Sprachen nutzen
 
Hrm.. nur vom Hörensagen...
Die BlackfishSQL Datenbank von CodeGear ist 100% Java code (JDataStore).
Dieser wird automatisiert in C# übersetzt ( => NDataStore) und ergibt so eine 100% .NET Datenbank, die sogar das gleiche Binärformat der Datenbankdateien nutzen kann.

Es scheint also sehr gut zu gehen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz