Laden...
E
e86 myCSharp.de - Member
Bald-Student Leipzig Dabei seit 20.06.2004 56 Beiträge
Benutzerbeschreibung

Forenbeiträge von e86 Ingesamt 56 Beiträge

17.07.2007 - 15:44 Uhr

Man,

ich hab schon ewig nicht mehr gepostet hier. Habe jetzt lange Zeit mit PHP / MySQL gearbeitet. Da ich auch viel mit C# und Boo gearbeitet habe, auch für Mono, wollte ich fragen, ob hier jemand schon Erfahrungen mit dem Portieren von PHP-Projekten auf Mono hat?!

Laut der Projektseite, ist zur Zeit nur das Kompilieren von einer Datei möglich, was sich aber noch ändern soll. (Quelle)

Mich würde auch interessieren, wies mit der Integration in MonoDevelop ausschaut, wie die Entwicklung im Projekt an sich aussieht und ob es Tutorials gibt?

Grüße

28.01.2007 - 19:59 Uhr

Hallo,

ich nun einen Blog zu meinem Projekt eröffnet. Der Link dazu ist hier. Dort sind hauptsächlich Informationen zu dem Projekt und auch Gedankenspiele meinerseits zu finden.

Wo wir gerade beim Thema wären. Unter dem Titel "Datenbank als Objektstruktur? Wenn ja, wie weit?" habe ich eine Diskussion mit mir selbst. Dort geht es um die Idee, die Datenbank komplett als Objektstruktur darzustellen. Dort findet man weiter unten den Absatz "Vergleich Objektstruktur mit Xml-Daten". Dort diskutiere ich den Ansatz, statt einer Objektstruktur, die Daten aus der Datenbank in eine (xml-konforme) Zwischensprache zu parsen, diese auszuwerten und dann daraus direkt SQL-Statements zu generieren. Vor - und Nachteile sind in dem Post erläutert.

Wenn ihr die Lust habt, euch den Batzen Text mal an zu tun, dann wäre es schön, wenn ihr hier oder direkt im Blog eure Gedanken dazu schreibt. Direkt würde mich interessieren, welcher Ansatz effektiver und geeigneter wäre? Warum gerade der? Und vielleicht mit Einsatzgebieten, wo er verwendet werden könnte.

Danke für eure Zeit.

27.01.2007 - 15:37 Uhr

Hallo,

danke für die informativen und detailreichen Antworten. Leider kann ich die Woche über nicht hier lesen, weshalb ich keine Posts gesendet hatte.

Was die Datenmigration selbst betrifft. Natürlich können hier auch Dinge wie Integration Services (SQL Server) etc.eingesetzt werden.

Aus diesem und noch einem anderen Zitat lese ich heraus, dass viele DBS-Hersteller bereits Tools für die Konvertierung fremder Daten in ihr eigenes DBS zur Verfügung stellen. Diese müssten doch eigentlich eine weitgehend komplette Konvertierung ermöglichen. Es scheint aber so, als gäbe es noch Lücken bei der Integration solcher Konvertierer in eigene Applikationen bzw. gibt es soetwas noch garnicht. Verstehe ich da etwas falsch?

Nur der Ansatz von e86 sieht ja so aus, als wenn er ORMapping und Migration in eins versucht/implementiert, weshalb das schon interessant sein kann, wenn die Stolpersteine bedacht worden sind.

Was ist mit Stolpersteine gemeint?

Das kann schon interessant sein, wenn er es schafft beide Vorteile unterzubringen und das auch wieder nur dann, wenn eine Datentransformation durchgeführt wird. Beim alleinigen Durchschleifen der Daten ist es wenig sinnvoll aus den Daten Objekte zu generieren um diese dann wieder in eine relationale Struktur für das Zielsystem zu bringen.

Was ist mit Datentransformation gemeint? Ich stelle mir darunter jetzt die Anpassung bzw. Änderung der Datentypen vor. Kann es sein, dass bspw. ein Integer in einem MySQL DBS eine andere Länge (in Bytes) hat, als bspw. in einem Oracle DBS.

An euren Antworten merke ich, dass Interesse an diesem Projekt besteht. Bereits nach dem Eintrudeln der ersten Antworten habe ich die Arbeit wieder aufgenommen. Einfach weil es mich gewurmt hat, ~3500 Zeilen Quellcode einfach weg zu werfen. Es wird noch etwas dauern bis ich testbare Versionen für euch habe. Der Grundwehrdienst lässt mir über die Woche kaum Zeit. Weiterhin ist es immer eine Qual, wenn man dann mal Zeit hat, sich hinzusetzen und zu programmierern. Einfach weil man fertig ist und keine Lust mehr hat. Das Wochenende ist also der einzigste Zeitraum wo ich was machen kann. Deshalb ist der Zeitraum von 2 Wochen intensivster Arbeit nicht zu halten 👅 Meine Arbeitszeit erstreckt sich nun schon auf fast ein Jahr. (Abitur und Grundwehrdienst nebenbei tun auch ihren Teil 😉 )

21.01.2007 - 19:07 Uhr

Nabend,

Was meist Probleme bereitet ist, das nach dem lesen der Katze, diese als nicht neu gilt, was beim schreiben in eine andere DB dann zu problemen führt
( PK Generierung usw. )

Was meinst du mit "als nicht neu gilt"? Und was ist eine PK? Personenkennung? 8) Und im Endeffekt gibt es das, was mein Framework leistet schon zu 100 % in den anderen ?

Ich würde mir das auch mal anschauen wenn Du willst 😉

Ich nehm das mal als Kompliment 🙂. Wenn ich eine lauffähige Version der Bibliothek hab, dann werd ich mir noch überlege, wie und wo ich sie veröffentliche.

21.01.2007 - 11:48 Uhr

Hallo,

NHibernate als populärster Vertreter

Ich habe mir das Framework mal angeschaut. Es werden Daten aus einer Datenbank in Objekte und umgedreht, gemappt. Ist dieses Mapping auch über mehrere System möglich? Also aus einer Tabelle (DBS: MySQL Server 2000) Daten über eine Katze herausziehen, Objekt "Katze" mit diesen Daten erstellen, und aus dem Objekt dann einen Eintrag in eine andere Tabelle (DBS: Oracle 9i) tätigen. Hoffe, dass die Beschreibung verständlich ist.

So wie es aussieht, gibt es die Funktionalität an sich schon. Ich bräuchte mir also eigentlich nur noch so ein Framework hernehmen und die Konvertierung für verschiedene Datenbanksysteme implementieren. Die Logik für die Umwandlung ist ja schon vorhanden.

20.01.2007 - 19:40 Uhr

Hallo,

Also für mich sieht das aus, wie die Grundlage für einen ORM.

Object-Relational-Mapping? Auf der englischsprachigen Version der Wikipedia steht eine Beschreibung dazu: hier der Link. Mit meinem Schulenglisch hab ich herausgelesen, dass damit die objektorientierte Programmwelt mit der relationalen Datenbankwelt "verbunden" wird. Die Frameworks erlauben es, Daten aus der Datenbank, raus zuziehen und in Objekte umzuwandeln, mit denen man dann arbeiten kann.

Bsp.:
Personen sind in einer Datenbank mit ihren Daten gespeichert. Möchte man im Programm mit einer bestimmten Person arbeiten, so "mappt" das Framework diese Person aus der Datenbank in ein Objekt.

Wie es mir scheint, gibt es da schon einiges in der Richtung. Die Firma Opf3 beispielsweise bietet bereits so eine Lösung für 5 Datenbanksysteme an. Ich weiß nicht so richtig, was genau das Framework von denen alles macht, aber es scheint, wie meines, Daten aus dem DBS herauszuziehen, und sie in Objekte zu verpacken. Mit der Möglichkeit diese in ein anderes DBS wieder reinzupacken. Also gibt es mein Projekt schon?

Ich setzte jetzt seit einiger Zeit Retina.NET ein, das über das hinaus noch
einiges anderes implementiert.

Könntest du mir dazu bitte einen Link geben. Habe zwar das Programm/Bibliothek an sich gefunden, aber keine Projekthomepage.

Also mein Framework arbeitet im Enddefekt mit Plug-Ins. Jedes Plug-In kann eine Quelle oder ein Ziel sein. Egal ob es eine Textdatei ist oder eine Datenbank.

In den Plug-Ins kann ich dann die entsprechende Logik hinterlegen.

Im Moment unterstüze ich einige wenige Datenbanken mit verschiedenen Anwendungen, die darauf basieren.

Mit was (Sprache, Framework) hast du das geschrieben? Und hast du es allein oder im Team gemacht?

20.01.2007 - 10:01 Uhr

Ähmm,

dieses Dokument ist doch aber sehr klischeehaft und teilweise faslch geschrieben.

Java von Sun ... vom Übersetzer in einen maschinenunabhängigen
Zwischencode überführt und erst beim Anwender in echten
Maschinencode übersetzt.

Java-Programme werden in eine Zwischensprache kompiliert (bzw. übersetzt), soweit richtig; dann aber zur Laufzeit interpretiert, wie bspw. dein PHP. Deshalb ist der Java-Code auch überall lauffähig, denn er enthält keine Betriebssystem abhängigen Aufrufe von Funktionen, sondern greift nur auf das Framework zu. Die JVM, Java Virtual Maschine, kümmert sich dann um die Ausführung dieser Programme, interpretiert sie. Das war auch der Grund, warum Java-Programm häufig als langsam galten. Dies soll sich nun schon streckenweise geändert haben. (Die Anhänger sagens so, die anderen so)

NET ist um Grunde dasselbe wie Java - nur von Microsoft, und somit inkompatibel.

Das unterstreicht die Inkompetenz des Autors. Trolle... aber dazu später mehr.

In C#, C++ oder Visual Basic geschriebene Programme werden in einen Zwischencode übersetzt, der beim Anwender erst zu Maschinencode wird.

Das trifft höchstens für C# zu. Bei VB weiss ich es nicht, glaube aber, dass diese auch interpretiert werden. C++ wird bereits beim entwickeln hart-kompiliert. Deshalb sind ja die exen nicht sehr plattformübergreifend, da sie bereits an die Hardware angepasst sind.

Der C#-Compiler, die Laufzeitumgebung, sowie die wichtigsten Bibliotheken
sind bereits vorhanden, nur die Unix-Version der GUI-Bibliothek ist noch nicht fertiggestellt.

Dies liegt wahrscheinlich daran, dass das PDF 2003 geschrieben wurde. Mono implementiert heute bereits komplett .NET 1.1, bis auf wenige Dinge (vielleicht 2%). Zudem wird .NET 2.0 und auch die WindowsForm zu 95 % unterstützt.

Ich hab keine Lust mehr diesen Artikel weiterzulesen. Ich kann dir nur raten, dich auch nicht auf diesen zu stützten und dir selber Informationen über .NET / Mono / Linux / MonoDevelop zu besorgen. Ich wollte eigentlich schon bei dem "nur von Microsoft, und somit inkompatibel." aufhören mit lesen, dachte aber, dass der Autor sich wieder fängt.

Zu deiner eigentlichen Frage:
Für Mono / .NET auf Linux zu entwiclen ist z.Z. noch etwas beschiessen. Erstens kommt die IDE MonoDevelop noch nicht an die (gewohnten) Erleichterungen von VS und #D ran, andererseits ist sie noch voller Bugs und schmiert manchmal unverhofft ab. Das soll sich aber noch ändern. Das Mono Team möchte erstmal das Framework weiter vorran treiben und sich dann auch um die IDE kümmern.

Warum du gerade von Microsoft weg möchtest, verstehe ich nicht. Muss ich auch nicht. Du solltest dir deine Technologie und Sprache nach dem Zweck und dem Aufwand heraussuchen; und nicht nach der Firma, welche sie entwickelt haben. Das ich das mal als C#/.NEt Verfechter sage, aber auch Java ist eine Alternative zu .NET.

20.01.2007 - 09:32 Uhr

Hallo burning snow,

Ich selber habe ein solches Framework (wahrscheinlich nicht so mächtig wie deins) und benötigen es für verschiedene Migrationen und alltägliche Datenaufbereitungen.

Könntest du dein Framework und die Aufgaben, für die du es einsetzt, etwas genauer beschreiben? Setzt du es nur für Datenbanksysteme ein? Unterstützt es darüber hinaus noch weitere Funktionen für die Datenaufbereitung?

Ich kann nur aus Erfahrung sagen, dass Daten von einer Quelle zu einem anderen Ziel immer geben wird und immer brauchbar sein wird.

Ich glaube auch, dass man das immer mal brauchen wird. Das "Aber", was mich zur Zeit etwas zweifeln lässt, ist der Entwicklungsaufwand im Vergleich zum Nutzen für andere. Wieviele Firmen migrieren täglich ihre Daten von einem DBS in ein anderes? Das wäre bspw. ein Wechsel von Interbase zu Oracle; wer macht solch einen Wechsel? Dies wäre doch mit enormen finanziellen Risiken belegt. Mir käme da in den Sinn: neue Mitarbeiterschulung, Aufbereitung bestehender Daten, der Wechsel an sich oder die neue Zusammenarbeit mit der neuen Firma.

Wäre es da nicht effizienter bei einem System zu bleiben und nur die Versionsnummer zu wechseln?

19.01.2007 - 20:26 Uhr

Hallo Coder007,

Hmm, ohne das jetzt weiter auszuführen, ich seh da ehrlich gesagt nicht sehr viele Einsatzmöglichkeiten

Einsatzmöglichkeiten würden mir folgende vorschweben:

--> fremde Anwendungen könnten das Framework anbinden und damit einfachen Zugriff auf ein beliebiges DBS erhalten, sofern es im Framework implementiert ist

--> ein Manager für alle (viele ?) DBS ... konsistente Oberfläche, gleicher Zugriff auf jedes DBS, da dieser vom Framework geregelt wird

Der Haupteinsatzzweck bleibt für mich aber immer noch die (relativ) verlustfreie Konvertierung von Daten aus einem Datenbanksystem in ein anderes.

Unwahrscheinlich, dass es jemand tatsächlich einsetzen wird.

Warum? Woran könnte es liegen, dass es keiner einsetzen würde.

14.01.2007 - 14:46 Uhr

Hallo,

ich war die Woche über nicht in der Lage hier posten zu können, als ich gestern reinschaute, merkte ich dass ich das auch garnicht gemusst hätte 😉

Wie ist eure Meinung? Bis jetzt scheint ja Interesse am Projekt zu bestehen. Reichen euch die Informationen? Was benötigt ihr sonst noch an Infos?

07.01.2007 - 19:28 Uhr

Ok, ein paar Infos kann ich schon noch geben 😉

Es gibt folgenden Aufbau:

  • das eigentliche System
  • Objects
  • Provider

Kurzer Überflug:

Das System an sich, hat wie gesagt, 3 Teile. Dabei greift einer in den anderen und es ist schwer dies einzeln zu beschreiben. Ich beginne mal mit der Mitte...

Objects:

Die Objects sind eine Sammlung von Objekten, Klassen besser gesagt. Sie repräsentieren alles aus einer Datenbank. Die Datenbank selber, die Tabellen, User, echte, Datensätze. Sie stellen einerseits die Kapslung der Daten dar. Andererseits bieten sie Funktionen an, um die "Daten", welche als Objekte vorliegen, zu manipulieren, erzeugen etc.
Alle "Daten" aus einem DBMS (egal ob eine Zeile aus einem Datensatz oder Informationen einer Tabelle) werden in Form dieser Objekte abgelegt. Somit besteht die Möglichkeit, wenn die Daten eines DBMS einmal in dieser Form (als Objects) vorliegt, sie in jedes andere DBMS umzuwandeln.

Bsp.: Auslesen der Daten einer bestimmten Tabelle aus einem DBMS -> umwandeln in ein Table-Object -> auslesen der Daten der Tabelle und anlegen einer Neuen in einem 2ten DBMS

Provider:

Nun kommen wir auch schon zu den Providern; sie stellen die Funktionalität zur Verfügung, um auf ein bestimmtes DBMS zu greifen und mit ihm arbeiten zu können. Demzufolge existiert für jedes DBMS ein Provider.
Das hat folgenden Hintergrund: jeder Provider beinhaltet optimierten und angepassten SQL-Code. Somit ist eine stabile und "schnelle" Arbeit mit dem DBMS möglich. Besonders wird das wichtig, wenn es um die Arbeit mit älteren Systemen geht (Bezug auf verschiedene Datentypen) oder um den SQL-Code (Bezug auf DBMS-spezifische Optimierungen).
Die Provider sollten eigentlich zur Laufzeit ladbar sein, wurden nun aber von mir direkt integriert, da es eine scheiss Arbeit ist, das zu testen (Stichwort Reflection glaub ich).

das eigentliche System:

Nun kommen wir zu der eigentlichen Hülle. Sie stellt die Schnittstelle zwischen den Providern / Objects und dem Programm /Dienst /WebService dar, welcher der Benutzer am Ende draufsetzt. Das ist hier ein Framework, kein Programm. Man muss es selber ansprechen und Befehle ausführen. Es stellt einem nur viele Funktionen zur Verfügung, die es vereinfacht, mit einem DBMS zu arbeiten.

Bsp.: Man erstellt ein Table-Objekt und füttert es mit Informationen (Tabellenname, Typ, Zeichensatz etc.) -> ruft die Funktion auf createTable (TableObject) -> die Tabelle wird angelegt.

Im Hintergrund wird noch geregelt, für welches DBMS diese Funktion gerade aufgerufen werden soll und mit welchen Zugangsdaten dies geschieht, aber ich glaube, dass ist hier erstmal nicht von Belang.

An sich ist diese Software nur als Unterbau gedacht. Als eine Art Add-On für verschiedenste Systeme. Einerseits als Zusatz für ein Datenbank-Manager (Administration), anderseits für ein Spiel, welches mit einer Datenbank arbeiten muss/will. Wegen der einfachen Funktionen und der Objekte, sollte eine "einfache" Handhabung gewährleistet sein.

Weitergedacht könnte man diese Objekte zu einem Pool weiterer Objekte bringen. Den Datenbankbenutzer, der als Objekt vorliegt, kann ja auch schon ein angemeldeter Nutzer eines Webservices sein. Dies sind aber alles Träumereien, welche mir nicht direkten Nutzen zeigen.

Dieses Projekt ist eigentlich aus einem Gedankenspiel zu meiner Belegarbeit hervorgegangen. Diese hänge ich einfach mal mit an, um vielleicht einige Unklarheiten zu beseitigen. Zu beachten ist aber, dass dieses Framework bereits vieles "weitergedacht" verwendet und es somit zu Missverständnissen kommen kann.

Sollten weitere Fragen auftreten, dann einfach fragen. Es ist ja auch im meinem Interesse, dass ihr mich und mein Anliegen versteht; ohnedem könntet ihr ja nicht die (richtige) Antwort geben. Danke für eure bisherigen Antworten!

07.01.2007 - 17:59 Uhr

Ich bin schon seit über einem halben Jahr dabei, ein Framework zu erstellen, welches einem erlaubt, Daten aus einem DBMS in ein anderes zu übernehmen.

Dieses Framework ist komplett in C# geschrieben. Von der Funktionalität her ist noch nicht sehr viel umgesetzt. Einige kleine Dinge, wie Tabellenname und -eigenschaften können ausgelesen werden, zudem können bereits Tabellen und Datensätze angelegt werden.
Andererseits ist die, ich nenne sie mal Technologie, welche dies bewerkstelligt, zu 80 % bereits programmiert und funktionsfähig.

Falls es etwas kompliziert und schwerverständlich klingt, so weise ich darauf hin, dass ich hier nicht das Framework und dessen Einzelteile beschreiben möchte. Mir geht es darum: Ich habe schon seit längerem keinen Bock mehr drauf dies weiter zuentwickeln. Einerseits hab ich kaum Zeit, da ich beim Bund bin und in einer Unteroffiziersschule des Heeres eingesetzt bin (noch bis Ende März). Andererseits fehlt mir dann ehrlich gesagt die Lust, wenn dann mal Zeit da ist, an dem Projekt weiterzuarbeiten.

Diesen Thread habe ich eigentlich nur eröffnet, um mal von euch zu erfahren, ob sich so ein Projekt überhaupt lohnen würde. Lohnen in Bezug auf die Nutzbarkeit. Braucht man es überhaupt heutzutage, dass man Daten wie wild von einem DBMS in ein anderes konvertiert?

Schreibt bitte mal eure Meinung. Wenn am Ende herauskommt, dass es totaler Quark ist und es eh keiner gebrauchen könnte, dann werd ich es einstampfen und mich anderen (wichtigeren) Dingen wittmen.

02.10.2006 - 12:12 Uhr

@rapthor:

Welche Version von Mono hast du installiert. partial ist nämlich erst in der 2.0er Version drin, welche bei Mono glaub ich bei 1.1.15 oder 1.1.16 beginnt. Das Referenzfehler kommen, dass ist zur zeit noch normal. Liegt aber glaub ich eher noch in den Windows Forms, da die anderen Bibliotheken bisher zu 99 % unterstützt werden.

k00ni

01.10.2006 - 14:05 Uhr

Ich arbeite mit MySQL 5.0 und dessen .NET Provider. Wie kann man sich dort mit einem Server verbinden, ohne im ConnectionString eine Datenbank angeben zu müssen. Problem ist, ich kann zur Zeit nur eine Datenbank erstellen, wenn ich auch vorher eine ausgewählt habe.

Als Alternative könnte ich immer die Systemdatenbanken auswählen, aber das wäre in meinem Fall eher "dirty" und ineffizient.

k00ni

26.06.2006 - 18:01 Uhr

Du bist mein Gott. niederknie

Thread kann geclosed werden, es sei denn Noodles möchte sich noch etwas von mir feiern lassen. 😁

k00ni

26.06.2006 - 17:46 Uhr

Hallo,

ich habe folgenden Code

dataGridView1.DataSource = objResponseSet.GetFirstTObject().Data;

Diese Zeile weisst der DataSource des DataGridViews ein DataSet zu. Data ist in dem Falle das DataSet.

Wo ich das aufrufe? Ich drücke einen Button, dann werden alle Daten aus einer Tabelle ausgelesen und in ein DataSet gepackt, per Fill. Das DataSet wird dann zurückgegeben und dem DataGridView zugewiesen.

Ich glaube mich zu erinnern, dass man in .NET 1.1 dem DataGrid einfach eine DataSource zugewiesen hat und dann hat er diese auch angezeigt. Bei mir hier zeigt er aber garnichts an; theoretisch müsste er den Inhalt der Tabelle anzeigen. Muss ich da noch eine Funktion ausrufen oder was aktivieren?!

Stehe grad auf dem Schlauch. Zudem verwirrt mich etwas, was hier steht. 😜

k00ni

18.06.2006 - 00:49 Uhr

Hallo,

wenn ich eine DLL unter Windows "kompiliere", also den C# - Code in IL-Code umwandle, ist es mir dann möglich, diese einfach unter Linux in eine Anwendung einzubinden?

Oder muss ich diese dann nochmals per Mono "kompilieren" bzw. "interpretieren"?

k00ni

10.06.2006 - 10:55 Uhr

Nach einigem googeln habe ich erfahren, dass diese Funktion erst in der nächsten Version (2.1) enthalten sein soll.

Diese gibt es bisher scheinbar nur als Sources. Unter diesem Link
kann man sich mit einem SVN-Prog die Sourcen ziehen und dann eine lauffähige Exe erzeugen. Auf der Seite ist auch schön beschrieben, wie man sich diese erstellt.

k00ni

10.06.2006 - 10:23 Uhr

Hallo,

ich habe bis jetzt nur bei C# Projekten die Funktion gesehen, sowohl für .net 1.1 etc. als auch für mono 1.1 und 2.0 zu kompilieren.

Wie sieht das bei VB.NET Projekten aus ? Scheint da eine ähnliche Funktion zu fehlen ?

Wenn es soetwas wirklich nicht geben sollte, wie kann ich das anderweitig lösen. Ich möchte nämlich VB.NET Code für Mono kompilieren.

k00ni

09.06.2006 - 23:18 Uhr

Hallo,

ich suche ein Add-in für #develop, mit dem ich grafische Benutzeroberflächen für die wxWidgets gestalten kann. Bis jetzt habe ich nur GUI-Designer, wie XRC GUI editor, wxGlade etc... getestet und diese passen mir nciht so richtig (schlechte Einbindung in VS 2005 bzw. #develop)

Gibt es soetwas überhaupt bzw. wird bereits an soetwas gearbeitet ? Danke für alle Infos 🙂

k00ni

09.06.2006 - 20:55 Uhr

N'abend,

ich habe mir nun das neuste GTK# für Windows eingerichtet, Version 2.8.4 glaub ich. Zudem noch das aktuelleste Mono (1.1.15.1) und #develop 2.0 (1462).

Nach einem Testlauf konnte ich nun ein Fenster sehen.. ohne vorherige Fehlermeldung 👅

Ich werd mal testen, in wie weit die Komponenten von GTK zu meiner Anwendung passen oder ob ich bei den WindowsForms bleiben muss.

Wie ist das nun mit GTK#? Ist das fertig kompilierte Programm nun ein durch einen "mono MeinProgramm.exe" unter Linux lauffähig? Was sollte ich bei der Entwicklung beachten?

Ich bin in dieser Richtung noch sehr neu und hoffe, dass ihr mir (wie bisher) weiterhelfen könntet 🙂

Danke für die bisherigen Posts und noch einen schönen Abend,

k00ni

<nachtrag>

Ich habe gerade gemerkt, dass #develop keinen grafischen Designer für GTK# zur Verfügung stellt. 🙁 Somit wird für mich das Ding nicht einsetztbar, da ich auf diesen angewiesen bin. Und wieso kann ich im #develop bei einem vb.net projekt nicht für mono kompilieren lassen?

</nachtrag>

09.06.2006 - 20:11 Uhr

Hallo,

ich habe gehört, dass GTK# nicht so gut auf nicht-Linux-Systemen läuft. Es wird keine Native GUI angesprochen, sondern auf die des Betriebssystems aufgesetzt, wenn ich das was ich bis jetzt gehört habe, richtig verstanden habe.

Aber ich würde zur Zeit eigentlich nur die Plattformen Linux und Windows bedienen wollen mit meiner Software. Gibt es für GTK# ein Plugin für das Visual Studio 2005 ? In #develop scheint es ja vorhanden zu sein, nur scheint mir, dass es dort noch Probleme mit den Gtk#-Windows-Dlls gibt... Schauen wir mal, ob ich die noch wegbekomm.

k00ni
p.s.: 4:2 -> gute erste Halbzeit 😉

09.06.2006 - 16:39 Uhr

Hallo,

ich bin dabei eine Anwendung in C# 2.0 zu entwickeln, welche auf verschiedenen Betriebssystemen laufen soll. Als Zielsysteme sehe ich erstmal Windows XP und Linux (Ubuntu oder SuSE).

Dazu habe ich mich mit den wxWidgets.NET auseinander gesetzt. Dazu gab es noch ein Konvertierungstool, was einem ein Projekt von WindowsForms in wxWidget konvertiert. Nur scheint es da noch herbe Probleme zu geben. Kennt jemand Tutorials dazu oder am Besten gleich einen Designer (auch Plugins fürs VS oder #develop) ?

Habt ihr bereits Erfahrungen mit dem wxWidget-Framework gesammelt ? Wenn ja, könnt ihr diese bitte mal hier reinschreiben. Oder arbeitet ihr mit einem anderen Framework ? Auch dann wäre es schön mal etwas darüber zu hören. 🙂

k00ni

04.06.2006 - 16:41 Uhr

Und schlechtere Tools nehmen, nur damit man sich etwas als non-Windows User beweisen kann, ist einfach kindisch...

Falls das jetzt auf mich bezogen war, dann kann ich dir versichern, dass ich keiner der Sorte bin. 🙂

Und bitte, nicht anfangen mit rumtrollen oder dergleichen. Ich spreche niemanden an, ich sags nur 😉

k00ni

04.06.2006 - 16:37 Uhr

Schaue dir mal, wie schon oben geschrieben, #Develop an. Gibt es in Version 2.0 und 1.1. (für die jeweilige Version des .NET Frameworks)

Das mit dem Mono ist gar kein Problem: Alle unter .NET "interpretierten" Programme, können im Mono-Framework "kompiliert" werden, egal auf welcher Plattform du dich befindest. Dabei wird ja einfach nur die exe mit dem mono compiler aufgerufen und er führt die dann aus. (bis auf PInvokes und einige exotische Dinge geht bis jetzt alles)

Du kannst deine Anwendung also unter Windows entwickeln, eine dll oder exe erzeugen lassen und diese dann einfach unter Linux oder MacOS starten. Den Rest macht das Mono-Framework bzw. die Mono-VM.

Aber wie gesagt, manchmal könnte es noch krachen... also nicht wundern. 😉

k00ni
ps.: ich kenne jetzt nur für das VS 2003 ein Plugin, das es ermöglicht, direkt in der IDE für das Mono - Framework zu kompilieren. Ich habe leider jetzt aber den Namen vergessen. Suche doch mal unter: VStoMake oder schaue mal auf den Blog vom Mono-Projekt.

04.06.2006 - 16:29 Uhr

Hallo,

ich entwickele nun schon seit längerem. Dabei programmiere ich in C# und nun zur Zeit auch in VB.NET (Beide in Version 2.0). Es läuft bei mir ein Windows XP Home System und dazu das Visual Studio 2005.

Nebenbei teste ich immer wieder verschiedene Linuxversionen auf dem Laptop. openSuSE, Ubuntu, ... . Ich würde gern komplett auf Linux umsteigen, nur gibt es da einen Hänger: IDE MonoDevelop nicht zu gebrauchen (Stabilität, schwerfällig)

Letztens habe ich von Eclipse gelesen, eine IDE für Java, C++ und Co. Diese soll auch ein Plugin für C# haben.

Nun meine Fragen:
*Kann man damit "vernünftig" arbeiten? (Mit Eclipse + dem C# Plugin) *Wie sieht die Unterstützung für das Mono-Framework aus? *Wichtig: gibt es einen grafischen Designer ?

Weiterhin wäre für mich noch interessant, wie ich VS 2005 Projekte (bzw. Solutions) in die jeweiligen Projektdateien konvertiere.

Zusammenfassend:

Ich möchte (effektiv) unter Linux Anwendungen oder Ähnliches mit C# / VB.NET für das Mono-Framework entwickeln (Linux = Ubuntu oder SuSE). Eignet sich dazu die Eclipse - IDE? Wenn nicht, welche Alternativen könnt ihr mir empfehlen? (Vielleicht auch eventuellen Erfahrungen zu Eclipse..?)

Dies wäre bis jetzt nämlich der einzigste Hinderungsgrund, nicht auf Linux zu wechseln.

k00ni
ps.: Gibt es einen Port von #develop auf Linux? (Nein, ich meine nicht MonoDevelop)

26.05.2006 - 21:21 Uhr

Hallo,

"Integrated Security=SSPI";

Hast du das zufällig nun rausgenommen?

Ehrlich gesagt, sehe ich kein Problem mit deinem Quellcode.

Ich tippe nun auf folgendes:*dein Windows-Account, den du für die Anmeldung im MS SQL Server benutzt, gibt es nicht, oder er hat nicht die nötigen Rechte

Könntest du das mal checken ?

k00ni

25.05.2006 - 22:38 Uhr

Da steht doch Integrated Security, was soviel bedeutet wie Windows auth, dann

Ups, das habe ich nicht gewusst. Danke FZelle 🙂

Nun könnte es doch aber sein, dass du mit deinem abngemeldetem Account nicht in der Datenbank vorhanden bist oder das dir bestimmte Rechte fehlen. Könnte es irgendwie daran liegen?

k00ni

25.05.2006 - 18:27 Uhr

Meiner Meinung nach ist der aber unvollständig. Normalerweise enthalten ConnectionStrings immer auch Angaben über Username und Passwort. Dies fählt bei dir aber völlig. Ich glaube auch nicht, dass der MS SQL Server auch ohne diese Angaben läuft.

Schreibst du mal den Link zu diesem ConnectionString rein? Und währest du auch mal bereit etwas Code zu posten ?! Denn wenn wir nicht wissen, was du genau machst, dann fliegen unsere Lösungsansätze fast immer ins Blaue... 😉

k00ni

25.05.2006 - 15:43 Uhr

Hallo,

bei dem DELETE bist du auf dem richtigen Weg. Eigentlich musst du nur ein DELETE auf dem DBMS absetzen, um deinen gewünschten Datensatz zu löschen.

DELETE FROM tblPersonal WHERE (PersonalId==@ar)

Dieses Statement solltest du mal ändern. Und zwar in die Richtung, dass du eine Bedingung ausliest, die der Datensatz erfüllen muss, wenn er gelöscht werden soll. Diese stellst du dann mit den WHERE Bereich rein.

Also bspw.:

DELETE FROM tblPersonal WHERE P_Name = 'Bert';

Ich kenne mich mit dem MS SQL Server nicht aus, es dürfte aber soweit trotzdem funktionieren. Es werden alle Datensätze aus tblPersonal gelöscht, wo der P_Name "Bert " ist.

k00ni

25.05.2006 - 13:28 Uhr

Hallo,

ich nehme mal an, dass das

@"Data Source=(local)\sqlexpress;Initial Catalog=database1;"+ "Integrated Security=SSPI";

dein Connectionstring ist, oder? Wenn ja, dann fehlt hier noch einiges, wenn nicht, dann poste bitte mal den kompletten ConnectionString. (Vielleicht auch gleich etwas Quellcode, damit man ein wenig mehr Übersicht bekommt.)

Mit welchem DBMS arbeitest du nochmal ?

k00ni

21.05.2006 - 12:45 Uhr

Hallo,

ich habe diesen Thread jetzt mal kurz überflogen und bin ein wenig überrascht auf die Reaktion mancher Leute. Eines möchte ich kurz nur klarstellen: Ich möchte diese "Diskussion" nicht wieder aufflammen lassen, nur meine Gedanken dazu posten.

Wie ihr mit den Nutzern eurer Community umgeht ist eure Sache, nur sollte man nicht immer gleich mit Google und RTFM kommen. Ein kleines SQL Statement hätte ihm denke ich mal schon gereicht. Aber ok, jeder wie er möchte. Die Meisten sind schliesslich persönlich hier angagiert und bekommen oft dafür keinen Cent. 🙂

Ok, zurück zu der Eingangs gestellten Frage:

Das Hinzufügen, Ändern und Löschen von Datensätzen wird nicht per ADO.NET gelöst, sondern durch SQL-Statements, die an das DBS übergeben werden. Je nachdem welches DBS du verwendest, sieht die Syntax dieser Commandos anders aus.

Für das Hinzufügen brauchst du: INSERT INTO _tablename _ (...)

Für das Ändern brauchst du: UPDATE (...) SET (...) FROM _tablename _

Für das Löschen brauchst du: DELETE FROM _tablename _ WHERE Bedingung

Das müssten die wichtigsten Anweisungen sein. Die SQL-Statements enthalten bestimmt noch Fehler. Liegt daran, dass ich lange keine mehr abgesetzt habe. Wenn du Fragen haben solltest, dann einfach mal nach "INSERT INTO SQL" oder "UPDATE SET SQL" etc. in Google suchen.

_NACHTRAG:

Fasst bloß die Hälfte geschrieben. Die arbeitest unter ADO.NET mit sogenannten Providern für die DBS 'e. Jeder stellt dir verschiedene Klassen zur Verfügung: Connection, Command etc. Die SQL-Statements werden an ein sogenanntes SQLCommand - Objekt übergeben, welche dann wiederum durch einen "Reader" ausgeführt werden. Diese ganze Arbeit ist sehr komplex und es würde hier den Rahmen sprengen, dir das alles zu erklären. Gute Seiten findest du unter der MSDN2 (.NET 2.0) bzw. MSDN (.NET 1.1), Google, codeproject.com, hier im Forum, überall im Internet. Vielleicht sollte auch gleich ein Buch her, damit du alles auf einen Blick hast. (www.terrashop.de hat viel Billiges)_

Grüße und noch ein schönes Wochenende

k00ni

18.04.2006 - 15:43 Uhr

Hallo,

.NET stellt dir mit der Bibliothek

System.Xml

gute Dienste zur Verfügung. Wie du einzeln auf die Knoten zu greifen kannst, weiss ich jetzt nicht. Du kannst aber in der MSDN oder hier im Forum bei den Befehlen fündig werden.

Wenn du dann an die Daten gekommen bist, kannst du dir ein SQL-Statement bauen. Je nach Datenbanksystem brauchst du dann eventuell noch einen Provider, der dir den Zugang zur Datenbank gewährt. [Diesen musst du als Referenz in dein Projekt einbinden.]

Hast du die Verbindung zur Datenbank, dann setzt du einfach das Query ab und fertig ist.

Das war jetzt eine etwas grobe Übersicht. Ich weiß nicht, welches DBS du verwendest, welche Sprache, welche .NET bzw. Mono Version, welche IDE ... Ich hoffe, es hilft dir trotzdem 🙂

k00ni

17.04.2006 - 18:12 Uhr

Ähm, da muss ich mich entschuldigen.

Ich hatte auf der Seite eher technische Dinge gefunden und keine Beiträge, wie du sie gepostet hast.

Danke dir, werde mir die Links gleich mal anschauen. =)

k00ni

17.04.2006 - 17:41 Uhr

Hallo,

watn Beitrag maxE 😉 Nix für ungut, aber das war die erste Seite die ich studiert habe. Ich dachte eher an Vergleiche, Tests oder Meinungen zu dieser Sprache.

k00ni

17.04.2006 - 15:12 Uhr

Hallo,

von IronPython hab ich schon gehört. Ich werde mich nun etwas näher mit Boo beschäftigen, da es mir von Anfang an sehr zusagte.

Zu dem Chrome: 🙄 Nichts für ungut, aber ich habe jetzt seit 3 Jahren dieses Object Pascal (Delphi 7) am Hals und ich finds ehrlich gesagt zum kotzen. Tut mir leid. Ich finde die Syntax hässlich, die Logik verdreht und viel zu überbläht. Das erste was ich mache, wenn ich das Abi fertig habe, ist das Deinstallieren von Delphi 😁
Klar das dies nun nur noch wenig bis gar nichts mehr mit Delphi zu tun hat, aber die Sprache an sich, wird ja beibehalten.

Was mich auch ein wenig stören würde, ist, dass Chrome bzw. diese Add-Ins etc. kommerziell sind. Nicht dass ich was dagegen hätte, aber fürs Testen möcht ich keinen Cent ausgeben. Danach vielleicht 😉

Hat jemand noch gute Links zu Infos von Boo ?

k00ni

17.04.2006 - 10:48 Uhr

Hallo,

ich möchte gerne wieder langsam mit proggen in C# anfangen. Dafür habe ich mir nun nach langem Testen SharpDevelop (2.0...) mit Mono 1.1.15 auf Windows XP Home herausgesucht.

Meine Frage wäre nun: Unter SharpDevelop kann man unter Projekte das Kompilieren für .NET 1.0 bis 2.0 und für Mono 1.0 bis 2.0 einstellen.

Ich habe es auf Mono 2.0 gestellt. Er kompiliert auch wunderbar nur sollte da nicht noch irgendetwas kommen biggrin.gif Weiss nicht so recht. Ist meine Anwendung dann einfach mit Mono "kompiliert" wurden und wird dann mit dem Mono 1.1.15 aufgerufen ?! Kann man das auch irgendwie nachprüfen? 🤔

Wenn ich dieses Ding dann 1 zu 1 nehme und es im Linux starte, also die .exe, dann müsste es sie sich doch rein theoretisch neu "kompilieren" und dann starten... ? (etwaige Fehler seien hier mal ausgeklammert )

Grüße,
k00ni

17.04.2006 - 10:05 Uhr

Hallo,

mich junkt es zur Zeit mal eine neue Sprache auszuprobieren. Hat jemand von euch schon Erfahrung gesammelt mit Boo oder Nemerle?

Mich würde brennend eure Erfahrung, Testberichte und euch fremde Meinungen interessieren.

Ich selbst arbeite neben C# und Delphi auch noch mit PHP 4/5. Deshalb habe ich schon einige Erfahrungen im Skripting. Was mir nur immer wieder schwer fällt ist der Wechsel von der einen in die andere Welt ... aber das sei jetzt nicht das Thema 🙂

Gibt es noch andere Sprachen, welche nun mit Mono Einzug in die .NET-Welt erhalten? Wenn ja, welche?

Grüße,
k00ni

24.02.2006 - 23:11 Uhr

Hallo,

danke dir, für die schnelle Antwort! Lohnt sich das echt schon mit WinFX? Habe gelesen, dass man WinForms doch schon schneller ablegen möchte, als geplant.

kOOni

24.02.2006 - 22:58 Uhr

Hallo,

ich habe mir nun derzeitig #develop 2.0 und das Visual Studio 2005 (c#) installiert. Weiterhin noch die verschiedenen Pakete für WinFX.

Leider ist es mir nicht gelungen einen Designer für WinFX in einer der beiden IDEs zu finden. Gibt es da einen? Muss dieser erst per Add-In hinzugefügt werden?

k00ni
ps.: Habe in dieser Richtung mal was von "Cider" gehört.

22.02.2006 - 00:45 Uhr

Hallo,

ich habe mich vor einem Tag mal in das Thema "eXtreme Programming" eingelesen und fand es recht interessant. Dabei fielen Begriffe, wie "NUnit" oder "JUnit".

Nach einiger Recherche fand ich auch schon das entsprechende Projekt für .NET. Hier der Link dazu.

Ich möchte ein altes C#-Projekt wieder re-worken. Dabei möchte ich das "eXtreme Programming" mit anwenden. Hat jemand von euch Informationen, Links und vielleicht auch Tipps und Tricks für die Handhabung und den Einsatz von NUnit.

Kann man das in VS C# 2005 Express nutzen? Ist das "NAnt" das Gleiche wie "NUnit" in #develop 2.0? Wie binde ich dies ein? 🤔

Fragen über Fragen 🙂

kOOni

18.11.2005 - 13:31 Uhr

Das habe ich dir geschrieben in meinem Nachtrag. Ich weiß nicht, wo du arbeitest, ob Windows oder Linux 🙂

Mit der Variante vom Eisbär dürfte es auch funzen.

kOOni

18.11.2005 - 12:34 Uhr

Hallo,

also Mono unterstützt schon seit einiger Zeit die WindowsForms! Und zwar in einem beachtlichen Ausmaße. Laut der Entwickler sind derzeitig 99% umgesetzt.

Nimm am Besten einfach mal deinen Code und lasse ihn mal durch Mono rauschen.

_Nachtrag:
Möglichkeiten für die Umwandlung? Wenn du unter Windows arbeitest, nimm SharpDevelop. Gehe dort in die Projekteigenschaften und wähle dir das Zielframework aus. Dann dort auf Mono1.1. Dann einfach neu kompilieren. (untestet!)

Unter Linux versuche es mal mit MonoDevelop. Ist aber noch sehr instabil, weshalb hier und da warten und Frust angesagt sein könnte 🙂 _

kOOni

17.11.2005 - 12:05 Uhr

Hallo,

System.Reflection.Assembly AssemblyModuleMySQL;

AssemblyModuleMySQL = System.Reflection.Assembly.LoadFrom(Path +
"\\eQ_ModuleMySQL.dll");

Type MyType = Type.GetType("eQ_ModuleMySQL.ModuleMySQL");

_Module MyObj = new _Module();

MyObj = (_Module)Activator.CreateInstance(MyType);

also irgendwie stehe ich zur Zeit voll auf dem Schlauch, aber nicht, weil ich keine Ahnung hab, sondern weil das Ding nicht laufen will, obwohl alles so ist, wie es sein müsste.

Nutze ich oberen Code, so sagt er mir, dass MyType null ist. Er findet also die Klasse ModuleMySQL nicht, obwohl sie besteht.

Und jetzt kommts: Wenn ich mir per AssemblyModuleMySQL.GetTypes (...) alle gefundenen Types zurückgeben lasse, dann hat er sie aufeinmal drin.. 🤔

Entweder hab ich ein Brett vorm Kopf oder das Programm spinnt... 😜

Danke für eure Hilfe!

kOOni

16.11.2005 - 12:05 Uhr

Stimmt 🙂

Nun kommt das Nächste:

MyObj = (_Module)Activator.CreateInstance(MyType);

Diese Zeile wirft die Meldung

Value cannot be null.
Parameter name: type

Nun, das Komische ist nur, dass er die dll einwandfrei einbindet. Denn die "LoadFrom"-Methode wirft keine Fehlermeldung. Nun scheint er die ModuleMySQL-Klasse nicht zu finden.. 🤔

kOOni

16.11.2005 - 11:36 Uhr

@Programmierhans:

<offtopic>

Ok, mache ich. 🙂

</offtopic>

btT:


System.Reflection.Assembly AssemblyModuleMySQL;

AssemblyModuleMySQL = System.Reflection.Assembly.LoadFrom(Path + 
"\\eQ_ModuleMySQL.dll");

Type MyType = Type.GetType("eQ_ModuleMySQL.ModuleMySQL");

_Module MyObj = new _Module();

MyObj = (MyObj)Activator.CreateInstance(MyType);

Nun kommt folgende Fehlermeldung

The type or namespace name 'MyObj' could not be found (are you missing a using directive or an assembly reference?) F:..\eQual_ModuleManager.cs

in der Zeile mit dem (MyObj). Was ich dazu sagen muss, ich habe dies jetzt einfach dirty per Strg-C und Strg-V eingebaut... 🙂

Nachtrag:

Was macht eigentlich die neue Zeile, Friedel?

kOOni

16.11.2005 - 11:29 Uhr

Hallo,

danke ersteinmal für die Antworten!

Ich habe nun folgendes Problem:

Cannot implicitly convert type 'object' to 'eQual._Module'. An explicit conversion exists (are you missing a cast?)

Ich habe in der per


System.Reflection.Assembly AssemblyModuleMySQL;

AssemblyModuleMySQL = System.Reflection.Assembly.LoadFrom(Path + 
"\\eQ_ModuleMySQL.dll");

Type MyType = Type.GetType("eQ_ModuleMySQL.ModuleMySQL");

_Module MyObj = new _Module();

MyObj = Activator.CreateInstance(MyType);

Die dll-Datei eingebunden. Vorher noch die Deklaration der "ModuleMySQL" (sie befindet sich in der Dll "eQ_ModuleMySQL.dll")

public interface Module
    {                           
        void Connect();
        void Disconnect();
    }


    public class ModuleMySQL : Module 
    {
        public ModuleMySQL(string datasource, string databasename, string userid,
                                      string password)
        {

        }

        public void Connect ()
        {
        }

        public void Disconnect () 
        {
        }
    }

Er meint, dass ich vielleicht einen 'Cast' vergessen habe, aber ich weiss nicht, was er damit meint.

kOOni

13.11.2005 - 17:04 Uhr

Hallo,

ich habe nun eine Idee, was es sein könnte. Ich habe das schonmal ähnlich in C++ gesehen. Und ich glaube, dass meintest du auch mit "casten".

Und zwar benötige ich eine Art Technik, die einem eine Art anonyme Klasse als Daten bzw. Klassentyp zur Verfügung stellt. Dies nennt sich "Casting".

Mal kurz ein Beispiel:

public class Stack<T>
{
T[] items;
int count;
public void Push(T item) {...}
public T Pop() {...}
}

Ich glaube, dass ich dafür auch die Generics benötige (sind in .NET 2.0 implementiert)

Ich habe nun folgende Vorstellung:

  1. Ich lade die Assembly per
Assembly objAssembly=System.Reflection.Assembly.LoadFrom(/* pfad zur Assembly */);
  1. Dann suche ich die Klasse mit dem Namen "MyClass"

oder

  1. Ich lege mir nur eine Klasse an und lasse sie mir zurückgeben

System.Reflection.Assembly b = Reflection.Assembly.LoadFrom("meine_dll.dll");
Type type = b.GetTypes();

  1. Dann erstelle ich eine neue Instanz von ihr (der Klasse):

object a;
a = b.CreateInstance(types(0).FullName)

Nun kommt das Problem. Ich darf ihm hier keinen richtigen Typ zuweisen, wie "object" oder "string", sondern nur eine Art Prototyp. Dieser Prototyp ist dann ein PLatzhalter für die richtige Klasse, welche instanziert wird zur Laufzeit. Denn wenn ich ihm hier einen bekannten Typ zuweise, wie object, dann kann dieser Typ ja nicht meine Methoden enthalten, die ich erst einlesen will. Ich brauche also im Endeffekt einen Typ der jeden anderen Typ annehmen kann.
Ich finde, dass ist etwas schwer zu verstehen, aber ich hoffe, ihr könnt mir folgen. Ich habe soetwas schoneinmal bei C++ gesehen.

_Nachtrag:
Könnte sich auch in C++ um die Templates handeln. _

(Man möge mir für etwaige Fehler verzeihen, denn ich hab hier fremden VB.NET Code umgeschrieben. http://www.tutorials.de/tutorials202552.html)

Schönen Abend noch,

kOOni

13.11.2005 - 15:02 Uhr

Hallo zusammmen,

danke erstmal für eure Hilfe, das hatte ich ganz vergessen!

Nun habe ich mich endlich mal hinsetzen können und habe etwas herumprobiert.

string pluginDirectory = "F:\\.. \\Release";

DirectoryInfo dirInfo = new DirectoryInfo(pluginDirectory);
FileInfo[] pluginFiles = dirInfo.GetFiles("*.dll";);

if(pluginFiles.Length>0)
{
foreach(FileInfo plugin in pluginFiles)
{
Assembly assembly = Assembly.LoadFrom(plugin.FullName);
string assemblyName = assembly.GetName().ToString();

Console.WriteLine (assemblyName);

string[] assemblyNameList = assemblyName.Split(',');
assemblyName = assemblyNameList[0].Trim();
Type assemblyType = assembly.GetType("Namespace."+assemblyName);

if(assemblyType != null)
{
object pluginObject = Activator.CreateInstance(assemblyType);
Console.WriteLine (pluginObject.GetType().ToString() );
}
else
{
Console.WriteLine ( "assemblyType = null!" );
}
}
}

Console.ReadLine ();

In dem Release-Ordner habe ich mal eine Testassembly eingerichtet. Führe ich diese Console-Anwendung nun aus, so kommt folgende Ausgabe:

Testassembly, Version = ...
assemblyType = null!

Nun habe ich noch eine Frage dazu:

Type assemblyType = assembly.GetType("Namespace."+assemblyName); 

Was bewirkt dies? Was meinst du mit Namespace. ?

Aso, was mir noch aufgefallen ist. Bei dieser Zeile hat er gleich abgebrochen:

 YourObject baseObject = pluginObject as YourObject;

Dabei habe ich statt YourObject meine Klasse "Class1" hereingemacht. Nichts. Geht nicht so..

Könntet ihr mir nicht ein kleines Beispiel-Projekt anlegen liebfrag =)

kOOni
ps.: Ich benutzte nun: .NET1.1 mit dem Visual Studio 2003 Academic

12.11.2005 - 13:46 Uhr

Hallo,

erstmal entschuldigung, ich hatte mich mit dem Quellcode vertan. Weshalb du meinen letzten Post vergessen kannst.

Ich hatte es so ähnlich bewerkstelligt. Was meinst du mit Casten?

Zur Zeit habe ich kaum die Möglichkeit daran weiterzuarbeiten, aber ich würde das Problem trotzdem gern lösen.

Danke dir ersteinmal für deine Hilfe!

kOOni