Dieser Artikel ist Teil einer Serie über Software-Engineering-Praktiken und -Tools für die Entwicklung großer Anwendungen in LabVIEW.
|
Das Aufstellen von Richtlinien zum Speichern und Verwalten von Dateien erfordert Voraussicht darüber, wie die Anwendung strukturiert wird, wie die Funktionalität aufgeteilt wird und welche Dateitypen über den Quellcode hinaus wichtig sind, um den Überblick zu behalten. Nehmen Sie sich Zeit, um Entscheidungen darüber zu treffen, wie die Funktionalität auf den Code aufgeteilt wird, und arbeiten Sie mit Entwicklern an Dateispeicherorten und den zusätzlichen Dateien oder Ressourcen, die sie benötigen, um ordnungsgemäß zu funktionieren. Verwenden Sie diese Informationen im nächsten Abschnitt, um die Kriterien zu bestimmen, nach denen Sie Dateien auf der Festplatte gruppieren.
Wie Dateien auf dem Datenträger organisiert werden, sollte nicht erst am Ende überlegt werden. Eine fehlerhafte Planung für große Anwendungen führt zu zusätzlichem Zeitaufwand für das Verschieben und Umbenennen von Dateien während der Entwicklung. Denken Sie beim Umgang mit einer großen Anzahl von Dateien daran, dass diese Vorgänge ein erhebliches Risiko für die Integrität von Links in LabVIEW und damit für das Verhalten Ihrer Anwendung darstellen können. Wenn Sie diese Praktiken so früh wie möglich festlegen, verringern Sie das Risiko, große Dateisätze zu einem späteren Zeitpunkt zu verschieben, und Sie können dazu beitragen, dass Entwickler Dateien leicht finden und bestimmen können, wo neue Dateien gespeichert werden sollen.
Viele Softwareentwickler verfügen bereits über Praktiken und Systeme, um zu bestimmen, wo Dateien gespeichert werden sollen. Letztendlich gibt es eine große Kombination von Verfahren und Strukturen, die legitime Optionen darstellen, aber die folgenden sind etablierte allgemeine Verfahren, die sich als gut skalierbar für große Anwendungen erwiesen haben. Die Speicherung von Dateien in einem einzigen Stammverzeichnis stellt sicher, dass alles, was Sie brauchen, leicht zugänglich ist, und die Durchsetzung einer Standard-Namenskonvention hilft den Benutzern zu wissen, wo sie Dateien finden und wo sie neue Dateien ablegen müssen. Ordner auf der Festplatte werden üblicherweise verwendet, um Dateien zu gruppieren oder zu kategorisieren und dadurch SubVIs von Aufrufern zu trennen. Umgekehrt erschweren flache Verzeichnisstrukturen das Auffinden von Dateien oder des Top-Level-VIs und sind selbst bei einer geringen Anzahl von VIs nicht zu empfehlen. Die Kriterien für die Gruppierung dieser Dateien sind in der Regel eine Kombination aus Dateifunktionalität, Typ und hierarchischer Ebene in der Anwendung. In der Tat sollte die Organisation auf der Festplatte eine physische Manifestation der Beziehung von Dateien und Code in der Anwendung sein.
Abbildung 1: Dieser Screenshot zeigt eine Beispielanwendung, die ohne Verwendung des LabVIEW-Projekt-Explorers auf der Festplatte organisiert wurde.
Abbildung 1 veranschaulicht Konzepte wie die Organisation aller Dateien in einem Stammverzeichnis, die Trennung der obersten Ebene VI von den Abhängigkeiten und die verschiedenen Kriterien, nach denen Dateien in Ordnern abgelegt werden.
Dynamisch geladene Dateien stellen eine zusätzliche Herausforderung dar, die oft besondere Aufmerksamkeit erfordert. Da diese Dateien von keinem Aufrufer in der Anwendung statisch verknüpft werden, können sie leicht verlegt oder vergessen werden, wenn der Speicherort gewechselt oder die Pfade zu den Dateien auf irgendeine Weise geändert werden.
Um sicherzustellen, dass sich alle Dateien, auf die dynamisch zugegriffen wird, am richtigen Ort befinden, können Sie sie in einem separaten Ordner gruppieren und über relative Pfade auf sie verweisen. Wenn es notwendig ist, die Anwendung zu verschieben oder zu verteilen, können Sie sicher sein, dass Sie die benötigten Dateien haben, indem Sie einfach den Ordner einschließen.
Wenn große Anwendungen Code gemeinsam nutzen, ist es wichtig, darauf zu achten, wo diese Dateien gespeichert sind und dass sich Änderungen versehentlich auf andere Aufrufer auswirken können. Die Wiederverwendung von Code ist üblich und wird gefördert, um die Entwicklung zu beschleunigen, indem Sie die Vorteile bereits abgeschlossener Arbeiten nutzen können. Ähnliche Anwendungen können die gleiche Funktionalität erfordern, oder verschiedene Zweige des Codes können sich auf den gleichen Satz von gemeinsamen VIs beziehen. Der Verweis auf dieselbe Kopie des Codes erfordert häufig, dass sich diese Dateien außerhalb des Stammverzeichnisses von mindestens einer Anwendung befinden. Wenn Sie jedoch Änderungen an diesen allgemeinen VIs vornehmen möchten, sollten Sie lokale Kopien zum Testen und zur späteren Integration erstellen.
Sie können auch Anbieter von Versionsverwaltungen verwenden, um mehrere Softwareversionen zu verfolgen und die Änderungen zu vergleichen, die zwischen mehreren Iterationen vorgenommen wurden. Weitere Informationen finden Sie unter Verwendung der Versionsverwaltung in LabVIEW.
Die Organisation von Anwendungen auf der Festplatte ist von grundlegender Bedeutung, um sicherzustellen, dass die Entwicklung skaliert werden kann, wenn die Größe und Anzahl der VIs wächst. Betrachten Sie dies jedoch als den ersten Schritt in einem Prozess. Es gibt noch viele inhärente Herausforderungen, die Sie mit ausgefeilteren Methoden und Tools wie dem LabVIEW-Projekt-Explorer mindern können.
Der Projekt-Explorer wurde in LabVIEW 8.0 eingeführt, um Entwicklern einen Überblick über die für eine Anwendung benötigten Dateien auf Systemebene zu geben. Das Ziel des LabVIEW-Projekt-Explorers ist es, Entwicklern dabei zu helfen, Dateien in der Entwicklungsumgebung einfach zu finden und zu organisieren und zusätzliche Funktionen bereitzustellen, die die Herausforderungen bei der Verwaltung und Entwicklung großer LabVIEW-Anwendungen bewältigen. Seit der Erstveröffentlichung des LabVIEW-Projekt-Explorers hat NI auf der Grundlage von Kundenfeedback immer wieder neue Funktionen integriert. Weitere Informationen zur neuesten Version des Projekt-Explorer-Fensters finden Sie in der LabVIEW-Hilfe unter dem Thema Verwalten eines Projekts in LabVIEW.
Abbildung 2: Dieses Projekt zeigt, wie dieselbe Anwendung, die wir in Abbildung 1 gesehen haben, im LabVIEW-Projekt-Explorer organisiert werden kann.
Verwenden Sie LabVIEW-Projekte, um LabVIEW- und andere Dateien zu gruppieren, Build-Spezifikationen zu erstellen und Dateien auf Zielsysteme zu übertragen oder herunterzuladen. Wenn Sie ein LabVIEW-Projekt speichern, erstellt LabVIEW eine .lvproj-Datei, die Verweise auf Dateien auf der Festplatte, Variablen, Hyperlinks, Konfigurationsinformationen, Build-Informationen, Einsatzinformationen usw. enthält.
Der LabVIEW-Projekt-Explorer reproduziert oder kopiert Ihre Dateien nicht an neue Speicherorte auf der Festplatte. Er bietet eine neue Methode zur Anzeige von Dateien auf der Festplatte und bietet Verknüpfungen zu den Speicherorten der Dateien auf der Festplatte. Mit dem LabVIEW-Projekt-Explorer können Sie:
1Diese werden in diesem Artikel nicht behandelt.
Beachten Sie, dass einige der in diesem Artikel beschriebenen Funktionen nur in LabVIEW 8.5 oder höher verfügbar sind. Informationen zu den Neuerungen in der neuesten LabVIEW-Version finden Sie unter Was ist neu in LabVIEW?
Es gibt zwei Seiten zur Anzeige von Dateien im LabVIEW-Projekt: die Seite „Objekte“ und die Seite „Dateien“.
Abbildung 3: Die Seite „Dateien“ zeigt eine gefilterte Ansicht aller Objekte im Projekt, so wie sie sich auf der Festplatte befinden, und ermöglicht es dem Benutzer, Dateioperationen wie Kopieren und Umbenennen durchzuführen
Die Standardansicht ist die Seite Objekte, die Ihnen eine Baumansicht der Objekte bietet, die Sie dem LabVIEW-Projekt hinzugefügt haben, und sie nach Hardwareziel gruppiert. Sie können in dieser Ansicht Ordner erstellen, um entweder die Organisation von Dateien anzupassen oder diese mit einem bestimmten Speicherort auf der Festplatte zu synchronisieren. Hier werden Sie wahrscheinlich die meiste Zeit verbringen.
Sie können auf der Seite Objekte keine Dateien von der Festplatte löschen – dies soll Benutzer vor dem versehentlichen Löschen von Programmcode schützen. Sie können Ihren Programmcode jedoch in Dateien auf Ihrem Computer organisieren, indem Sie mit der rechten Maustaste auf Objekte in der Dateiansicht klicken und Auf Datenträger verschieben… auswählen.
Auf der Seite Dateien wird angezeigt, wo sich die Objekte befinden, zu denen eine entsprechende Datei auf der Festplatte existiert. Verwenden Sie diese Ansicht, um dieselben Dateioperationen durchzuführen, die Sie normalerweise in Ihrem Systemdateibrowser ausführen würden, z. B. Verschieben, Kopieren oder Löschen. Da LabVIEW die Änderungen kennt, ist es in der Lage, Aufrufer zu aktualisieren und Verknüpfungen zu erhalten, wenn Änderungen vorgenommen werden.
Sie können die Hierarchie der Dateien im LabVIEW-Projekt-Explorer anpassen, ohne das Layout der Dateien auf der Festplatte zu beeinflussen. Es wird jedoch empfohlen, dass die Organisation im LabVIEW-Projekt die Hierarchie, die Sie auf der Festplatte eingerichtet haben, so genau wie möglich widerspiegelt.
Sie können den Inhalt Ihres LabVIEW-Projekts mithilfe von zwei Arten von Ordnern organisieren: virtuelle Ordner und automatisch auffüllende Ordner. Mit virtuellen Ordnern können Sie die Organisation von Projektobjekten anpassen, ohne Änderungen auf der Festplatte vorzunehmen.
Abbildung 4: Benutzer können beim Organisieren von Dateien im LabVIEW-Projekt-Explorer aus automatisch ausgefüllten oder virtuellen Ordnern auswählen
Virtuelle Ordner eignen sich ideal für Szenarien, in denen Sie die Organisation von Dateien in LabVIEW ändern möchten, ohne dabei Änderungen an den Speicherorten auf der Festplatte vorzunehmen. Wenn Sie dem LabVIEW Project Explorer einen Ordner auf der Festplatte als virtuellen Ordner hinzufügen, wird dieser durch eine Snapshot-Ansicht zum Zeitpunkt des Hinzufügens dargestellt. Wenn Sie nachträglich Änderungen vornehmen, z. B. neue Dateien hinzufügen, werden diese Änderungen nicht im LabVIEW-Projekt angezeigt. Sie können jedoch Änderungen manuell vornehmen, indem Sie neue Dateien in das LabVIEW-Projekt ziehen oder den virtuellen Ordner vorübergehend in einen automatisch befüllten Ordner umwandeln.
Mit virtuellen Ordnern können Sie Dateien von zwei oder mehr separaten Speicherorten auf der Festplatte im LabVIEW-Projekt-Explorer gruppieren. Sie sind auch nützlich, um die im LabVIEW-Projekt-Explorer angezeigten Informationen zu filtern, damit Sie feststellen können, ob Dateien mit anderen Objekten gruppiert sind, die Sie nicht benötigen.
NI hat in LabVIEW 8.5 das automatische Auffüllen von Ordnern eingeführt, um den Inhalt von Ordnern auf der Festplatte automatisch wiederzugeben. Sich automatisch auffüllende Ordner werden mit einem physischen Ordner synchronisiert, d. h. sie zeigen immer alle Änderungen oder Modifikationen an, die außerhalb der LabVIEW-Entwicklungsumgebung an diesem Ort vorgenommen werden. Verwenden Sie, wann immer möglich, automatisch auffüllende Ordner, um die Festplattenhierarchie im LabVIEW-Projekt-Explorer zu erhalten. Das automatische Auffüllen von Ordnern wird nicht empfohlen, wenn Projektbibliotheken oder LabVIEW-Klassen verwaltet werden oder wenn versucht wird, eine große Anzahl von Querverweisen aufzulösen.
Verwenden Sie automatisch auffüllende und virtuelle Ordner, um die Organisation und Strukturierung Ihrer Anwendungsdateien im LabVIEW-Projekt-Explorer zu gewährleisten. Automatisch auffüllende Ordner sind ideal, um die Struktur auf der Festplatte zu erhalten und zu pflegen, aber es gibt Situationen, in denen Sie sie entweder nicht verwenden können oder Anpassungen benötigen. In diesen Fällen können Sie virtuelle Ordner verwenden, um die Organisation der Dateien im LabVIEW-Projekt-Explorer anzupassen.
LabVIEW lädt automatisch alle statisch verknüpften SubVIs in den Speicher, wenn Sie das aufrufende VI öffnen. Der Abschnitt Abhängigkeiten des LabVIEW-Projekt-Explorers wird automatisch mit denselben SubVIs gefüllt, wenn sie dem LabVIEW-Projekt nicht hinzugefügt wurden, wenn das aufrufende VI in den LabVIEW-Projekt-Explorer geladen wird. Ab LabVIEW 8.5 werden Benutzerabhängigkeiten vom Inhalt der Datei vi.lib getrennt, um die Identifizierung der Dateien zu erleichtern, die von den Entwicklern der Anwendung geschrieben wurden.
Das Hinzufügen von Dateien zu einem LabVIEW-Projekt zeigt LabVIEW an, welche Dateien und Ressourcen für die Verwendung in einer Anwendung vorgesehen sind. Überprüfen Sie den Abschnitt "Abhängigkeiten", um sicherzustellen, dass Sie Ihrem LabVIEW-Projekt alles hinzugefügt haben, was Sie benötigen. Wenn Sie dies noch nicht getan haben, werden die verbleibenden Dateien in diesem Abschnitt aufgelistet. Dies ist ein wichtiges Verfahren, um sicherzustellen, dass Sie die Kopie eines SubVIs verwenden, die Sie auch verwenden wollen.
Ein VI in Ihrem LabVIEW-Projekt kann fälschlicherweise mit dem falschen SubVI verknüpft werden. In diesem Fall wird durch das Hinzufügen der Kopie des zu verwendenden SubVIs zum LabVIEW-Projekt LabVIEW signalisiert, dass ein oder mehrere Aufrufer fälschlicherweise mit einem anderen SubVI mit demselben Namen verknüpft sein können. Dieses Szenario wird oft als Cross-Linking bezeichnet.
LabVIEW öffnet SubVIs von Orten, die im Aufrufer gespeichert sind, unter Verwendung relativer Pfade. Findet LabVIEW kein SubVI an der erwarteten Stelle, sucht es das SubVI anhand des Namens. LabVIEW lädt das erste SubVI, das es mit diesem Namen findet, in den Speicher und informiert den Anwender über die geänderten Links. Da mehrere VIs mit unterschiedlichen Funktionen einen gemeinsamen Namen haben können (z. B. initialize.vi) oder zwei Versionen desselben VIs an unterschiedlichen Speicherorten existieren, kann es vorkommen, dass LabVIEW auf die falsche Datei verweist.
Cross-Linking tritt häufig auf, wenn große Mengen von Dateien verschoben oder kopiert werden, um eine Codehierarchie an einem neuen Speicherort zu reproduzieren. Wenn sich relative Pfade ändern, können Verknüpfungen beschädigt werden und Ihre Anwendung kann unwissentlich mit dem falschen Satz von Abhängigkeiten verknüpft werden.
LabVIEW kann nicht zwei verschiedene VIs mit demselben Namen in den Speicher laden. Wenn Sie also zwei Anwendungen öffnen, die auf unterschiedliche SubVIs mit demselben Namen verweisen, bedeutet dies, dass eine Anwendung mit der falschen Abhängigkeit ausgeführt wird.
Es gibt mehrere Maßnahmen, die Sie ergreifen können, um das Cross-Linking zu verhindern:
Die Gewährleistung einer korrekten Verknüpfung ist eine gemeinsame Herausforderung für alle Programmiersprachen. Sorgfältige Praktiken können das Auftreten des Cross-Linkings minimieren und Backups von korrekt verknüpften Dateien bereitstellen, aber es ist immer noch ein großes Problem für Anbieter, die große Anwendungen entwickeln. Mit dem LabVIEW-Projekt in LabVIEW 8.5 wurden mehrere neue Funktionen eingeführt, die Entwicklern helfen sollen, Cross-Linking zu erkennen und aufzulösen.
Abbildung 5: LabVIEW kann den Benutzer automatisch vor Konflikten warnen
Die vielleicht vorteilhafteste Funktion im Zusammenhang mit der Vernetzung ist, dass das LabVIEW-Projekt feststellt, ob ein VI ein SubVI mit demselben Namen wie eine dem LabVIEW-Projekt hinzugefügte Datei aufruft. LabVIEW weist Sie mit einem gelben Warnhinweis auf dem Dateisymbol darauf hin. Dann gibt es mehrere Möglichkeiten, weitere Informationen über die Dateien zu finden, um festzustellen, welche Datei die richtige Version hat:
Sobald Sie Cross-Links identifiziert und festgelegt haben, wie die Verknüpfungen zu beheben sind, können Sie die Korrekturen manuell vornehmen oder die Werkzeuge des LabVIEW-Projekt-Explorer verwenden, um den Prozess zu durchlaufen.
Es gibt mehrere Methoden, um Konflikte zu lösen, nachdem LabVIEW sie erkannt hat. Wenn Sie die nachstehenden Empfehlungen befolgen, können Sie sicherstellen, dass die Verknüpfungen zu den SubVIs erhalten bleiben, während Sie die erforderlichen Änderungen vornehmen.
Sie können diese Empfehlungen mit dem Dialogfeld „Projektkonflikte lösen“ automatisieren. Wählen Sie Projekt » Projektkonflikte lösen im Fenster des LabVIEW-Projekt-Explorer, um das Dialogfeld „Konflikte lösen“ anzuzeigen. Sie können auch auf die Schaltfläche „Konflikte lösen“ in der Symbolleiste klicken oder mit der rechten Maustaste auf ein konfliktbehaftetes Objekt im Fenster des LabVIEW-Projekt-Explorers klicken und „Konflikte lösen“ aus dem Kontextmenü wählen, um zu diesem Dialogfeld zu gelangen.
Abbildung 6: Das Dialogfeld „Konflikte lösen“ fordert den Benutzer auf, das richtige SubVI auszuwählen
Dieses Dialogfeld enthält die folgenden Komponenten:
Verwenden Sie dieses Dialogfeld, um Konflikte aufzulösen, indem Sie die konfliktbehafteten Objekte umleiten, um abhängige Objekte über den richtigen Pfad aufzurufen.
Mit den Empfehlungen in diesem Artikel können Sie Richtlinien für die Entwicklung und die Anwendungsverwaltung aufstellen, die sicherstellen, dass Sie für die Entwicklung umfangreicher Anwendungen skalieren können. Denken Sie daran, die Organisation der Dateien auf der Festplatte zu berücksichtigen und Kriterien für die Sortierung der Dateien festzulegen. Verwenden Sie den LabVIEW-Projekt-Explorer für eine Ansicht Ihrer Anwendung auf Systemebene, um einfach auf Dateien zuzugreifen und in ihnen zu navigieren sowie die Vorteile von Werkzeugen zur Erkennung des Cross-Linkings zu nutzen.