2 Stimmen

Ausführen eines .NET-Programms von einem zugeordneten Laufwerk oder freigegebenen Ordner - Pro/Cons

Dies mag für einige von Ihnen eine dumme Frage sein, aber was sind die Vor- und Nachteile der Ausführung einer Windows Forms .Net-Anwendung von einem freigegebenen Laufwerk. Bis vor kurzem wusste ich nicht einmal, dass dies möglich ist. Nach meinen Recherchen sieht es so aus, als ob .Net 3 SP1 dieses Verhalten erlaubt (ohne dass irgendwelche Sicherheitsänderungen erforderlich sind).

Ich bin neugierig auf Gleichzeitigkeitsprobleme oder Skalierbarkeit.

Außerdem gehe ich davon aus, dass auf jedem Client, der die Anwendung vom freigegebenen Laufwerk ausführt, weiterhin .Net erforderlich ist. Für jede Hilfe bin ich dankbar.

4voto

Joel Coehoorn Punkte 377088

Wir haben eine Reihe von in .Net geschriebenen Konsolenprogrammen für die nächtliche Stapelverarbeitung. Diese Programme "leben" auf einem SAN, auf das über ein gemapptes Laufwerk zugegriffen wird. Da wir immer noch mit .Net 2.0 arbeiten, musste der Verarbeitungsserver speziell konfiguriert werden, damit diese Programme ausgeführt werden können, und natürlich muss auf dem Verarbeitungsserver das Framework installiert sein, aber ansonsten funktioniert es hervorragend. .Net3.5sp1 würde sogar die spezielle Konfiguration beheben.

Dieses Szenario ist wahrscheinlich anders als das, an das Sie denken. Wenn Sie eine Anwendung in einem gemeinsamen Ordner bereitstellen wollen, damit viele verschiedene Benutzer darauf zugreifen können, ist dies eine schlechte Idee. Wenn Sie in Datendateien schreiben, die sich im selben Ordner wie die Anwendung befinden (was ohnehin keine gute Idee ist, aber immer wieder vorkommt), werden diese Dateien von allen Benutzern gemeinsam genutzt (und gesperrt). Außerdem führt jeder Benutzer, der das Programm gerade ausführt, dazu, dass das Dateisystem eine Sperre auf die Programmdatei setzt, wodurch Sie möglicherweise keine Updates mehr verteilen können. Wenn Sie dies tun möchten, bietet .Net ein ausgezeichnetes System namens ClickOnce zur Unterstützung der Bereitstellung von Anwendungen auf Netzwerkfreigaben.

3voto

Otávio Décio Punkte 72052

Sie müssen auf jedem Client die richtige .Net-Version installiert haben, aber es gibt keinen Grund, warum Sie nicht in der Lage sein sollten, von einem gemeinsam genutzten Laufwerk aus zu arbeiten, wir machen das hier und bei den Clients ohne Probleme, solange der Benutzer Zugriff auf die Freigabe hat.

2voto

Hans Passant Punkte 894572

Gleichzeitigkeit und Skalierung sind nur in den extremsten Fällen ein Thema. Sie verwenden die Netzwerkfreigabe lediglich als Laufwerk für die Bereitstellung der Baugruppen. Die Anwendung läuft immer noch auf der Arbeitsstation und verbraucht nur die Betriebssystemressourcen und CPU-Zyklen dieses Rechners. Anders als eine ASP.NET-Anwendung.

Wenn die Anwendung selbst eine Art von gemeinsam genutzter Ressource verwendet, nicht untypischerweise einen Datenbankserver, spielen Gleichzeitigkeit und Skalierung definitiv eine Rolle. Dies gilt jedoch unabhängig davon, ob die Anwendung über eine Netzwerkfreigabe ausgeführt wird oder nicht.

Eine Überlegung: Die Bereitstellung eines Updates kann schwierig sein. Sie müssen alle Benutzer dazu bringen, die Anwendung zu beenden, damit keine Sperre für die Baugruppen mehr besteht. Es wäre klug, dies in die Anwendung einzubauen. Etwas so Einfaches wie ein FileSystemWatcher, der nach einem bestimmten Dateinamen sucht, wird die Arbeit erledigen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X