Zitat:
Original erstellt von cadplayer:
Du hast recht Holger, nur leider gibt es einen kleinen Nachteil in .net, in meiner Firma arbeitet man mit unterschiedlichen Acad versionen. Man muss da die versionsabhängigen Referenzen genau zuordnen... sonst gibt´s Kaos.
...
Ich denke, dass ich dir im Arx/.Net-Forum schon mal ein paar Screenshots gepostet hatte, wie ich meine Projekte aufbaue.
Aktuell bediene ich
15 Plattformen (unterschiedliche CAD-Systeme, unterschiedler Versionen, unterschiedlicher Frameworks)
-> AuotoCAD 2011 - 2018
-> BricsCAD c14 - v17
-> ZwCAD 14 - 16
Und du kannst dir gewiss sein, dass ich keine Code-Zeile doppelt schreibe.
Die Sache ist doch die: Die Verweise müssen geändert werden. Die Namespaces und Bezeichner (Klasse / Eigenschaften/ Methoden) sind aber unverändert. Es gibt wenige Ausnahmen, die habe ich aber mit Argumenten für die bedingte Kompilierung in den Griff bekommen.
Das bedeutet, egal, welche DLL du in den Verweisen drinnen hast ... dein Code läuft.
Natürlich gibt es in den neueren Versionen Techniken, die es in den älteren Frameworks nicht gibt ... . Darum fange ich immer in der Version an zu programmieren, die der Kunde als niedrigste Zielversion angibt.
Ich habe aber auch die Erfahrung gemacht, dass ab .Net 4.0 die Änderungen in meinem Alltag kaum eine Rolle spielen.
Kurze Anleitung, wie es geht:
Aufgabe: Von einem Programm, was du für AutoCAD 2016 programmiert hast, brauchst du nun die Versionen für 2017 und 2018.
Lösung:
1) Kopiere die *csproj Datei (im Windows-Explorer) und gib der einen versionsbezogenen Namen *_2017.csproj
2) Öffne die Projektmappe im Visual Studio
3) Füge der Projektmappe ein vorhandenes Projekt hinzu und wähle Die eben kopierte Datei: *_2017.csproj
4) Öffne in die Projekteigenschaften
--> korrektes Framework einstellen
--> ggf. Assembly-Namen ändern und/oder Ziel des Builds ändern (so dass du immer weist, welche dll nun für welche acad-Version ist.
5) Lösche die Verweise auf die 2016er AutoCAD-Dlls
6) Füge die Verweise auf die 2017er AutoCAD-Dlls hinzu (lokale Kopie = false einstellen nicht vergessen!!!)
Fertig!
Ab jetzt ist alles, was du in deinem Programm änderst, in allen Projekten geändert. Du musst lediglich für alle Versionen extra kompilieren.
Fügst du eine Klasse, einen Dialog, Bilder .. in einem Projekt hinzu, ist das natürlich in den anderen Projekten ebenfalls zu tun. Dazu kannst du dir im Projektmappenexplorer alle Dateien anzeigen lassen und kannst dann die Dateien via RMT zu den Projekten hinzufügen.
Diese Projektstruktur habe ich mir als Template-gespeichert .. so dass in wenigen Minuten ein neues Projekt aufsetzen kann, was in allen o.g. CAD-Systemen läuft.
Fazit: Das Argument --Unterschiedliche AutoCAD-Versionen-- als K.o.-Kriterium anzuführen, lasse ich nicht gelten.
Über Schulung haben wir ja bereits gesprochen ... aber genau dieses Thema "Projektorganisation" ist in meinen Schulungen ein Schwerpunkt. Klassen, Vererbung auch .. den Rest kann man im Internet lesen.
Grüße!
Holger
------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!

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