Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  .NET oder COM?

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  .NET oder COM? (406 mal gelesen)
Benny4
Mitglied
Softwareentwickler


Sehen Sie sich das Profil von Benny4 an!   Senden Sie eine Private Message an Benny4  Schreiben Sie einen Gästebucheintrag für Benny4

Beiträge: 178
Registriert: 16.02.2006

AutoCAD 2008
WIN XP Pro SP2

erstellt am: 27. Mrz. 2009 17:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich habe da mal eine Verständnisfrage: Was ist denn eigentlich der Unterschied zwischen einer .NET - Programmierung in AutoCAD oder der Programmierung mit dem COM - Zugriff von AutoCAD?

Also was ich so rausgefunden habe oder wie mir das vorkommt ist folgendes:
Wenn ich über COM auf AutoCAD zugreife, kann ich ja eine eigene Instanz von AutoCAD erzeugen. Programmiertechnisch kommt es mir dann irgendwie so vor wie AutoCAD VBA. Also gibt es dann da keinen Transactions-Manager und so. Ebenso muss ich mich nicht darum kümmern dass meine Objekte in die Datenbank und so geschrieben werden. Ich zeichen eine Linie so: ThisDrawing.ModelSpace.AddLine(startPoint, endPoint). Und so ist meine Linie gezeichnet.

Bei .NET bin ich ja direkt in AutoCAD integriert. Will ich eine Linie zeichnen muss ich ein Line - Object erzeugen, das dem ModelSpace  hinzufügen und der Datenbank bis ich dann eine Linie habe.

Kann ich über COM auch so programmieren wie ich das in .NET mache?

Danke schon mal für jede Auskungt und Klärung die ich kriegen kann.

------------------
Grüsse Benny

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 28. Mrz. 2009 00:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi Benny,

vorerst: die Unterschiede technisch zu beschreiben bedarf mehr als nur eine kleine Antwort in einem Forum und grenzt eigentlich an Schulung; und da gibt's auch im Internet jede Menge Stoff.

Die praktischen Konsequenzen im Umgang mit AutoCAD sind oberflächlich folgende:

COM-basierend werden Objektmodifikationen direkt in der Datenbank durchgeführt, dies und vor allem die Prüfung der Modifikationen auf Fehler bedeuten einen wesentlichen Einfluss auf Performance (schlechter) und Programmierzeilen (weniger).

ManagedAccess bedeutet, wie Du schon richtig festgestellt hast, dass auf einem TransAction-basierenden Modell gearbeitet wird (es gab zwar mal auch den direkten Modus ohne TransAction, weiss nicht, ob der noch geht, jedenfalls aber nicht empfohlen), damit werden Modifikationen in Objekt-Abbildungen (und nicht direkt an den Originalen) durchgeführt, diese bleiben solange in einem eigenen Speicherbereich bis mittels Commit die Elemente in die Originaldatenbank zurückgeführt werden.
Damit steigt die Performance, jedoch auch die Anzahl der Programmierzeilen und man gewinnt den zusätzlichen Vorteil, dass ('fast' sorglos) Geometrieelemente gebaut und zerstört werden können, ohne dass die ursprüngliche Datenbank belastet wird. Du kannst z.B. temporäre Linien erstellen um Schnittpunkte zu ermitteln und diese dann wieder 'zerstören' und bist nicht abhängig (in Bezug auf Performance) von der Datenmenge Deiner ursprünglichen Datenbank.
Ebenfalls steigt aber auch die Fehleranfälligkeit, denn während über COM übergebene Objekte relativ genau geprüft werden, bevor 'echt geschrieben' wird, hast Du mit ManagedAccess einen sehr direkten Zugriff in's AutoCAD hinein und kannst damit auch Fehler in die Datenbank einbauen, die ev. erst viel später (durch _audit) im Dwg-File erkennbar werden oder zu unbehandelbaren Fehlern führen und AutoCAD zum Abflug bringen (die ganzen xxxViolation- oder xxxException-Fehler).

Ich hoffe dass diese durchaus oberflächlich gehaltene Erklärung eine Hilfe ist, Detailfragen gerne weiter, globale Fragen sind halt ein wenig schwer in einem Forum unterzubringen, sorry.

- alfred -

------------------
www.hollaus.at

[Diese Nachricht wurde von a.n. am 28. Mrz. 2009 editiert.]

Benny4
Mitglied
Softwareentwickler


Sehen Sie sich das Profil von Benny4 an!   Senden Sie eine Private Message an Benny4  Schreiben Sie einen Gästebucheintrag für Benny4

Beiträge: 178
Registriert: 16.02.2006

AutoCAD 2008
WIN XP Pro SP2

erstellt am: 30. Mrz. 2009 15:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Alfred,

vielen Dank für die sehr ausführliche Antwort. Ich sehe mich in meinen bisherigen Annahmen dadurch auch bestätigt. Eine spezielle Frage hätte ich da noch: Ich habe ja gelesen, dass AutoDesk mit ACAD 2010 VBA sterben lassen will oder das zumindestens nicht mehr standardmäßig mit installieren will. Und da sogar ein "neues" VBA in Planung ist. Was glaubst du, ändert sich dann auch der COM-Zugriff von AutoCAD? Ist mir aus dem Grund wichtig, weil es in diesem Fall für mich jetzt nicht viel Sinn machen würde mit meiner Applikation über COM auf AutoCAD zuzgreifen und dann, in den schon nächsten ACAD-Versionen alles neu machen zu müssen.

------------------
Grüsse Benny

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 30. Mrz. 2009 15:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

COM-basierend kann ich mir nicht vorstellen, das ist eine Basis von Windows für die Kommunikation zwischen unterschiedlichen Applikationen, die kann IMHO nicht so schnell abgedreht werden (ich übernehme aber keine Haftung für solche Aussagen  , denn ich hätte auch nicht geglaubt, dass ODBC mit 64-bit Windows nicht gehen wird).

COM und VBA ist auch nicht gleichzusetzen, VBA ist 'nur' eine Programmiersprache, COM und ActiveX sind applikationsübergreifende Zugriffsmethoden. VBA nutzt zwar COM, aber auch wenn VBA nicht mitinstalliert wird, existiert die ActiveX-Serverkomponente in AutoCAD auch weiterhin.

- alfred -

------------------
www.hollaus.at

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz