Benutzer mit den meisten Antworten
FileSysteme

Frage
-
Hallo Leute,
habe gestern mir mal VB2010 Express geladen, leider gab es Schwierigkeiten
mit meinen bisher verwendeten "Scripting.FileSystemObject" mit den ich
Dateien auf Existenz geprüft, copiert, gelöscht etc. habe.
Frage:
Nehme ich künftig "My.Computer.FileSystem" oder "System.IO-Namesspace"?
Ist das im Prinzip das gleiche, ist einer von beiden schneller, umfangreicher,
moderner, leichter zu handhaben? Oder ist das alles wurscht?
Gebt mir mal euer Entscheidungskriterium! DANKE!
Viele Grüße!
RUDI
Antworten
-
Hallo Ellen,
Du solltest in der Richtung denken: Was interessiert mich die Programmiersprache?
und vielleicht sogar: Was interessiert mich das verwendete Framework?Programmiersprachen wären analog beim Auto der Antriebsmotor, und da spielt
es vom Prinzip keine Rolle, ob es ein Otto- oder Dieselmotor antreibt.
Und in der Erweiterung: Ob man einen Motor für ein Auto oder ein Flugzeug konzipiert,
die Konzepte sind gleich (auch wenn man in die Details viel Zeit investieren muss).Um zum Ausgang zurückzukommen: Das "My-Konzept" hat prozedurale Wurzeln
und stellt ein Hilfsmittel dar, gedacht für Leute, die einfach nur ein Auto nutzen wollen
und schon Probleme beim Wechseln der Zündkerze haben.
"Erfunden" für VB 2005 als die Akzeptanz von VB.NET nicht so dolle war,
und man Migranten unter die Arme greifen wollte - geändert hat es wohl aber nichts ;-)Verwendest Du hingegen die zugrundeliegenden Konzepte, so findest Du dich in
Das ist ein Kann und kein Muss, aber wer "richtig programmieren" lernen will,
anderen Programmiersprachen und Frameworks leichter zurecht, zum Vergleich
z. B. Java IO vs. System.IO (die Namen sind andere aber vieles ist sehr ähnlich).
sollte sich von der Denke in einer Programmiersprache lösen.
Und versuchen die Algorithmen und Logiken zu verstehen, um sie selbst anzuwenden.
Und schon das Beschäftigen damit, worauf "My" aufbaut, kann lehrreich sein.Dann profitiert man von Blogs wie z. B. Eric Lippert (aus dem C# Entwicklerteam)
und kann u. U. das eine oder andere dort mal einsetzen.Just my 2 Cents... Elmar
- Als Antwort markiert Rudi Remmiz Freitag, 10. Februar 2012 09:55
-
Nicht "tot geredet". Sie sind in den meisten Fällen nur überflüssig, wie ein Kropf und oft im direkten Vergleich umständlicher im Handling, wie eben auch einfach nur ein zusätzlicher "Wrapper", der in einigen Situationen performancerelevant sein kann.
Hallo Thorsten,
ich arbeite auch mit den System.Io Klassen. Auch mit dem My. Namespace. Ich habe nie mit VB6 programmiert. Daher sehe ich die Sache völlig wertfrei. Ich lasse mich gerne überzeugen. Wenn Du mir einen einen besseren Weg aufzeigst und mich überzeugst, dann setze ich das auch 100% um. Das ist normaler Usus in meinem Beruf, welchen ich ausübe.
schöne Grüße Ellen
P.S. Danke für Deine Antwort.
Ich benutze/ I'm using VB2008 & VB2010- Als Antwort markiert Rudi Remmiz Freitag, 10. Februar 2012 09:55
-
Hallo Ellen,
Du solltest in der Richtung denken: Was interessiert mich die Programmiersprache?
und vielleicht sogar: Was interessiert mich das verwendete Framework?Hallo Elmar,
> Was interessiert mich die Programmiersprache.
Eine Programmiersprache ist die höchste Form der logischen Ausdrucksmöglichkeit. Zu diesen Sprachen zähle ich VB.Net. Ich halte VB.Net für eine ausgereifte, komplexe und sehr hoch entwickelte Computersprache. Ich würde gerne eine Diskussion starten zum Thema: C# versa VB. (Nicht in diesem thread)
>Was interessiert mich das verwendete Framework?
Ja alles. Ohne das geht garnichts.
Danke Elmar und schöne Grüße Ellen
Ich benutze/ I'm using VB2008 & VB2010- Als Antwort markiert Rudi Remmiz Freitag, 10. Februar 2012 09:55
-
Hallo zusammen,
das ist ja eine sehr lebhafte Diskussion. Die Frage von Rudi ist wirklich berechtigt. Ich habe nachgeforscht und in der Doku jeweils ein Beispiel dazu gefunden.
Gewusst wie: Schreiben von Text in eine Datei (System.IO)
http://msdn.microsoft.com/de-de/library/6ka1wd3w(v=VS.80).aspxMicrosoft schreibt hier:
Benutzer von Visual Basic ziehen es möglicherweise vor,
die vom My.Computer.FileSystem-Objekt für Datei-E/A bereitgestellten
Methoden und Eigenschaften zu verwenden.Gewusst wie: Schreiben von Text in Dateien in Visual Basic (My. Namespace)
http://msdn.microsoft.com/de-de/library/1t4kyezf(v=VS.80).aspxDie Tatsache, dass es in NET 2 Namespaces gibt für Fileoperationen, hat mich am Anfang sehr verwirrt. Mittlerweile kann ich aber damit umgehen. Ich habe da keine Probleme mit. Das Argument c# kennt keinen My. Namespaces ist für mich kein ausreichendes Ausschlusskriterium. Wenn man etwas genauer hinsieht, spricht doch einiges für System.IO. Die Methoden sind flexibler. Es hängt einfach davon ab, was man machen möchte.
schöne Grüße Ellen
Ich benutze/ I'm using VB2008 & VB2010- Als Antwort markiert Rudi Remmiz Freitag, 10. Februar 2012 09:55
-
Hallo Ellen,
> Was interessiert mich die Programmiersprache.
/Eine Programmiersprache ist die höchste Form der logischen
Ausdrucksmöglichkeit. Zu diesen Sprachen zähle ich VB.Net.
Ich halte VB.Net für eine ausgereifte, komplexe und sehr hoch
entwickelte Computersprache.Dem muss man nichts weiter hinzufügen.
Ich würde gerne eine Diskussion starten zum Thema: C# versa VB.
Das solltest Du vielleicht lieber doch nicht tun, denn Du würdest
damit weniger eine sachliche Diskussion, sondern eher einen
Glaubenskrieg auslösen.Eine bestehende Aufgabenstellung lässt sich sowohl mit C#
als auch mit VB.net lösen. Für die spätere Funktionalität der
Anwendung ist die verwendete Programmiersprache in diesem
Fall unerheblich.Die Diskussion C# vs. VB.net wurde in vielen Foren und
Newsgroups schon sehr häufig geführt. Dabei wurde lediglich
sichtbar, dass manche Leute nur die von ihnen verwendete
Programmiersprache als die einzig richtige sehen und sich
gar nicht die Mühe machen, die andere näher kennenzulernen.
Ich habe jedenfalls bisher noch kein einziges Argument gehört,
das mir die eine oder die andere der beiden Sprachen als die
"Bessere" erscheinen liesse.Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)- Als Antwort markiert Rudi Remmiz Montag, 22. November 2010 15:12
-
Hallo,
Ich glaube die My.Namespace sind deshalb gemacht worden, um den VB6 Programmieren den Umstieg ein wenig Schmackhafter zu machen.
wäre es das Ziel gewesen, wäre es besser gewesen, die VB6 Entwickler zu fragen, was sie wünschen. Wobei die Wünsche oft und reichlich kommuniziert wurden. My.Playground war nicht dabei.
Ich gestehe das ich die My.Ressource und My.Settings sehr gerne benutze
Diese sinnvollen Erleichterungen haben einzig den Nachteil in diesen fragwürdigen Zwangsnamespace "My" gewandert zu sein, was man zum Glück ändern kann. Es geht mehr um unnötige Duplizierungen und "Shortcuts", die nach hinten losgegangen sind, wie:
My.Computer.Clipboard.[...]
vs.
Clipboard.[...]
s = My.Computer.FileSystem.CombinePath(a, b)
vs.
s = IO.Path.Combine(a, b)
Was sich nochmal mit dem passenden Import von System.IO. verkürzen lässt.
Richtig schön wird es, wenn versucht wird, hier Zeilen mit With zu verkürzen:
With My.Computer.FileSystem
s = .CombinePath(a, b)
End With
Eine Diskussion vb.net versus c# wird immer vom persönlichen Geschmack getragen.
Es wäre eine müßige Diskussion. VB und C# befinden sich auf Augenhöhe, auch wenn diese Message immer noch nicht bei einigen Entscheidern angekommen ist. Maßgeblicher Einflussfaktor ist hier das .NET Framework.
Thorsten Dörfler
Microsoft MVP Visual Basic
vb-faq.de- Als Antwort markiert Rudi Remmiz Freitag, 10. Februar 2012 09:55
-
Hallo Ellen,
danke, mit Deiner Hilfe wurde meine Ausgangs-Frage doch noch
nachhaltig im Forum diskutiert und ich habe allerhand über die
Ursprünge von "My.Computer..." und "System.IO" erfahren.
Ergebnis: ich nutze jetzt bevorzugt "System.IO".
Mich schert C# auch nicht, da ich gerade mit VB 2008 arbeite.
Vor 30 Jahren habe ich mit FORTRAN IV gearbeitet, war auch geil!
Meine Frage zielte eher in die Richtung, welches Tools die längere
"Halbwertzeiten" hat, da ich dies ständige umschreiben von "Peanuts",
wie Lesen und Schreiben von Dateien satt habe.
Vielen Dank für die zahlreichen Beiträge!
Rudi
- Als Antwort markiert Rudi Remmiz Montag, 22. November 2010 15:11
Alle Antworten
-
Hallo Thomas,
darf ich ein Frage stellen? Diese Klassen in My.Computer.FileSystem werden hier immer "tot geredet". Man sagt die sind nicht interoperabel zu C#. (Was interessiert mich C#) stimmt das?
schöne Grüsse Ellen
Ich benutze/ I'm using VB2008 & VB2010 -
Hallo Ellen,
Diese Klassen in My.Computer.FileSystem werden hier immer "tot geredet".
Nicht "tot geredet". Sie sind in den meisten Fällen nur überflüssig, wie ein Kropf und oft im direkten Vergleich umständlicher im Handling, wie eben auch einfach nur ein zusätzlicher "Wrapper", der in einigen Situationen performancerelevant sein kann.
Man sagt die sind nicht interoperabel zu C#. Was interessiert mich C#?
Es ist nicht zeitgemäß mit Scheuklappen durch die .NET Welt zu wandern. Viele Beispiele findet man eher in C#, als in VB. Wenn man hier elementare Namespaces, wie System.IO nicht kennt, weil man sich durch Verwendung von My.Computer.FileSystem komplett isoliert, verschließt man sich wertvollen Ressourcen. Zudem hat man auf dem Arbeitsmarkt weit bessere Karten, wenn man sich in beiden Sprachen sicher bewegen kann, was keine große Kunst ist, da der Großteil eben vom Framework vorgegeben ist.
Thorsten Dörfler
Microsoft MVP Visual Basic
vb-faq.de -
Diese Klassen in My.Computer.FileSystem werden hier immer "tot geredet". Man sagt die sind nicht interoperabel zu C#. Was interessiert mich C#? stimmt das?
Ellen,
nicht "My.Computer.FileSystem" steht in Frage, sondern das ganze My.*-Gebilde.
Dieses wurde von Microsoft nachträglich dazugebastelt, weil sich seinerzeit angeblich
(IMHO mal wieder aufgrund falscher Feedback-Auswertung)
viele Umsteiger von VB6 in den hoch-offziellen und -normierten .NET-Namespaces (wie uva System.IO) nicht zurechtfänden.
Dadurch entstand aber fast nur Redundanz+Overhead abseits aller anderen .NET-Sprachen+Standards+Tools, nicht nur zu C#! -
viele Umsteiger von VB6 in den hoch-offziellen und -normierten .NET-Namespaces (wie uva System.IO) nicht zurechtfänden.
Dadurch entstand aber fast nur Redundanz+Overhead abseits aller anderen .NET-Sprachen+Standards+Tools, nicht nur zu C#!
Hallo Thomas,Ich programmiere gelegentlich auch in C# und habe auch erfolgreich eine in VB erstellte Dll's dort eingebunden. Funktioniert perfekt. Den My. Namespace allerdings noch nicht getestet. Daher meine Frage. Danke für die Info.
schöne Grüße Ellen
Ich benutze/ I'm using VB2008 & VB2010 -
Hi,
Ich programmiere gelegentlich auch in C# und habe auch erfolgreich eine in VB erstellte Dll's dort eingebunden. Funktioniert perfekt. Den My. Namespace allerdings noch nicht getestet. Daher meine Frage. Danke für die Info.
das eine hat mit dem anderen gottlob auch nichts zu tun :)
Du kannst problemlos VB.NET Assemblies/Projekte/... in C# Projekte einbinden und mit denen arbeiten. Nur innerhalb von C# selbst gibt es My... nicht und daher wäre VB.NET Code, der in C# umgeschrieben werden muss/soll, entsprechend neu aufzubauen.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hallo Ellen,
Du solltest in der Richtung denken: Was interessiert mich die Programmiersprache?
und vielleicht sogar: Was interessiert mich das verwendete Framework?Programmiersprachen wären analog beim Auto der Antriebsmotor, und da spielt
es vom Prinzip keine Rolle, ob es ein Otto- oder Dieselmotor antreibt.
Und in der Erweiterung: Ob man einen Motor für ein Auto oder ein Flugzeug konzipiert,
die Konzepte sind gleich (auch wenn man in die Details viel Zeit investieren muss).Um zum Ausgang zurückzukommen: Das "My-Konzept" hat prozedurale Wurzeln
und stellt ein Hilfsmittel dar, gedacht für Leute, die einfach nur ein Auto nutzen wollen
und schon Probleme beim Wechseln der Zündkerze haben.
"Erfunden" für VB 2005 als die Akzeptanz von VB.NET nicht so dolle war,
und man Migranten unter die Arme greifen wollte - geändert hat es wohl aber nichts ;-)Verwendest Du hingegen die zugrundeliegenden Konzepte, so findest Du dich in
Das ist ein Kann und kein Muss, aber wer "richtig programmieren" lernen will,
anderen Programmiersprachen und Frameworks leichter zurecht, zum Vergleich
z. B. Java IO vs. System.IO (die Namen sind andere aber vieles ist sehr ähnlich).
sollte sich von der Denke in einer Programmiersprache lösen.
Und versuchen die Algorithmen und Logiken zu verstehen, um sie selbst anzuwenden.
Und schon das Beschäftigen damit, worauf "My" aufbaut, kann lehrreich sein.Dann profitiert man von Blogs wie z. B. Eric Lippert (aus dem C# Entwicklerteam)
und kann u. U. das eine oder andere dort mal einsetzen.Just my 2 Cents... Elmar
- Als Antwort markiert Rudi Remmiz Freitag, 10. Februar 2012 09:55
-
Ich programmiere gelegentlich auch in C# und habe auch erfolgreich eine in VB erstellte Dll's dort eingebunden. Funktioniert perfekt. Den My. Namespace allerdings noch nicht getestet. Daher meine Frage.
Ellen,
all dies ist nicht so sehr eine technische (kompatibilitäts-) Frage
(mit managed Code kann man ja sehr vieles machen/verbinden, auch unendlich sinnloses, ohne dass der Compiler sich verschluckt!),
sondern eine Frage von Architektur, Stil, konsequentem Design und Nachhaltigkeit. Aber all dies wurde mit My.* definitiv verletzt. -
Nicht "tot geredet". Sie sind in den meisten Fällen nur überflüssig, wie ein Kropf und oft im direkten Vergleich umständlicher im Handling, wie eben auch einfach nur ein zusätzlicher "Wrapper", der in einigen Situationen performancerelevant sein kann.
Hallo Thorsten,
ich arbeite auch mit den System.Io Klassen. Auch mit dem My. Namespace. Ich habe nie mit VB6 programmiert. Daher sehe ich die Sache völlig wertfrei. Ich lasse mich gerne überzeugen. Wenn Du mir einen einen besseren Weg aufzeigst und mich überzeugst, dann setze ich das auch 100% um. Das ist normaler Usus in meinem Beruf, welchen ich ausübe.
schöne Grüße Ellen
P.S. Danke für Deine Antwort.
Ich benutze/ I'm using VB2008 & VB2010- Als Antwort markiert Rudi Remmiz Freitag, 10. Februar 2012 09:55
-
Hallo Ellen,
Du solltest in der Richtung denken: Was interessiert mich die Programmiersprache?
und vielleicht sogar: Was interessiert mich das verwendete Framework?Hallo Elmar,
> Was interessiert mich die Programmiersprache.
Eine Programmiersprache ist die höchste Form der logischen Ausdrucksmöglichkeit. Zu diesen Sprachen zähle ich VB.Net. Ich halte VB.Net für eine ausgereifte, komplexe und sehr hoch entwickelte Computersprache. Ich würde gerne eine Diskussion starten zum Thema: C# versa VB. (Nicht in diesem thread)
>Was interessiert mich das verwendete Framework?
Ja alles. Ohne das geht garnichts.
Danke Elmar und schöne Grüße Ellen
Ich benutze/ I'm using VB2008 & VB2010- Als Antwort markiert Rudi Remmiz Freitag, 10. Februar 2012 09:55
-
Ich glaube die My.Namespace sind deshalb gemacht worden, um den VB6 Programmieren den Umstieg ein wenig Schmackhafter zu machen.
Ich gestehe das ich die My.Ressource und My.Settings sehr gerne benutze, alle anderen habe nie gebraucht, weil die direkten Framework Funktionen einfacher für mich sind. Eine Diskussion vb.net versus c# wird immer vom persönlichen Geschmack getragen. Ich für meinen Teil finde VB.net sehr angenehmer und logischer zu lesen und zu verstehen, wobei ich aber auch ein c# Beispiel meist mit ein wenig Recherche in vb.net umsetzen kann.
Gruß Thomas
-
Hallo Ellen,
bitte, bitte, bitte keinen Thread Programmiersprache A vs. Programmiersprache B!!!
Zum einen ist dies etliche Male geschehen (nicht gezählt dabei Stammtische, Podiumsdiskussionen uam.)
Und solche Diskussion hat selbst dann wenig Aussicht auf Erfolg (der erst einmal zu definieren wäre),
wenn die Teilnehmer die Sprachen gut kennen - günstigerweise auch noch einige mehr
sowie deren Konzepte (siehe Wikipedia bezüglich deklarativ, imperativ uam.)Schöne Grüße und eine Gute Nacht wünscht
Elmar
(der sich an solchen Diskussionen nicht mehr beteiligen wird) -
Hallo,
Ich glaube die My.Namespace sind deshalb gemacht worden, um den VB6 Programmieren den Umstieg ein wenig Schmackhafter zu machen.
wäre es das Ziel gewesen, wäre es besser gewesen, die VB6 Entwickler zu fragen, was sie wünschen. Wobei die Wünsche oft und reichlich kommuniziert wurden. My.Playground war nicht dabei.
Ich gestehe das ich die My.Ressource und My.Settings sehr gerne benutze
Diese sinnvollen Erleichterungen haben einzig den Nachteil in diesen fragwürdigen Zwangsnamespace "My" gewandert zu sein, was man zum Glück ändern kann. Es geht mehr um unnötige Duplizierungen und "Shortcuts", die nach hinten losgegangen sind, wie:
My.Computer.Clipboard.[...]
vs.
Clipboard.[...]
s = My.Computer.FileSystem.CombinePath(a, b)
vs.
s = IO.Path.Combine(a, b)
Was sich nochmal mit dem passenden Import von System.IO. verkürzen lässt.
Richtig schön wird es, wenn versucht wird, hier Zeilen mit With zu verkürzen:
With My.Computer.FileSystem
s = .CombinePath(a, b)
End With
Eine Diskussion vb.net versus c# wird immer vom persönlichen Geschmack getragen.
Es wäre eine müßige Diskussion. VB und C# befinden sich auf Augenhöhe, auch wenn diese Message immer noch nicht bei einigen Entscheidern angekommen ist. Maßgeblicher Einflussfaktor ist hier das .NET Framework.
Thorsten Dörfler
Microsoft MVP Visual Basic
vb-faq.de- Als Antwort markiert Rudi Remmiz Freitag, 10. Februar 2012 09:55
-
Hallo zusammen,
das ist ja eine sehr lebhafte Diskussion. Die Frage von Rudi ist wirklich berechtigt. Ich habe nachgeforscht und in der Doku jeweils ein Beispiel dazu gefunden.
Gewusst wie: Schreiben von Text in eine Datei (System.IO)
http://msdn.microsoft.com/de-de/library/6ka1wd3w(v=VS.80).aspxMicrosoft schreibt hier:
Benutzer von Visual Basic ziehen es möglicherweise vor,
die vom My.Computer.FileSystem-Objekt für Datei-E/A bereitgestellten
Methoden und Eigenschaften zu verwenden.Gewusst wie: Schreiben von Text in Dateien in Visual Basic (My. Namespace)
http://msdn.microsoft.com/de-de/library/1t4kyezf(v=VS.80).aspxDie Tatsache, dass es in NET 2 Namespaces gibt für Fileoperationen, hat mich am Anfang sehr verwirrt. Mittlerweile kann ich aber damit umgehen. Ich habe da keine Probleme mit. Das Argument c# kennt keinen My. Namespaces ist für mich kein ausreichendes Ausschlusskriterium. Wenn man etwas genauer hinsieht, spricht doch einiges für System.IO. Die Methoden sind flexibler. Es hängt einfach davon ab, was man machen möchte.
schöne Grüße Ellen
Ich benutze/ I'm using VB2008 & VB2010- Als Antwort markiert Rudi Remmiz Freitag, 10. Februar 2012 09:55
-
Hallo Ellen,
> Was interessiert mich die Programmiersprache.
/Eine Programmiersprache ist die höchste Form der logischen
Ausdrucksmöglichkeit. Zu diesen Sprachen zähle ich VB.Net.
Ich halte VB.Net für eine ausgereifte, komplexe und sehr hoch
entwickelte Computersprache.Dem muss man nichts weiter hinzufügen.
Ich würde gerne eine Diskussion starten zum Thema: C# versa VB.
Das solltest Du vielleicht lieber doch nicht tun, denn Du würdest
damit weniger eine sachliche Diskussion, sondern eher einen
Glaubenskrieg auslösen.Eine bestehende Aufgabenstellung lässt sich sowohl mit C#
als auch mit VB.net lösen. Für die spätere Funktionalität der
Anwendung ist die verwendete Programmiersprache in diesem
Fall unerheblich.Die Diskussion C# vs. VB.net wurde in vielen Foren und
Newsgroups schon sehr häufig geführt. Dabei wurde lediglich
sichtbar, dass manche Leute nur die von ihnen verwendete
Programmiersprache als die einzig richtige sehen und sich
gar nicht die Mühe machen, die andere näher kennenzulernen.
Ich habe jedenfalls bisher noch kein einziges Argument gehört,
das mir die eine oder die andere der beiden Sprachen als die
"Bessere" erscheinen liesse.Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)- Als Antwort markiert Rudi Remmiz Montag, 22. November 2010 15:12
-
Hallo Ellen,
danke, mit Deiner Hilfe wurde meine Ausgangs-Frage doch noch
nachhaltig im Forum diskutiert und ich habe allerhand über die
Ursprünge von "My.Computer..." und "System.IO" erfahren.
Ergebnis: ich nutze jetzt bevorzugt "System.IO".
Mich schert C# auch nicht, da ich gerade mit VB 2008 arbeite.
Vor 30 Jahren habe ich mit FORTRAN IV gearbeitet, war auch geil!
Meine Frage zielte eher in die Richtung, welches Tools die längere
"Halbwertzeiten" hat, da ich dies ständige umschreiben von "Peanuts",
wie Lesen und Schreiben von Dateien satt habe.
Vielen Dank für die zahlreichen Beiträge!
Rudi
- Als Antwort markiert Rudi Remmiz Montag, 22. November 2010 15:11