| Von Philipp Stephani am 24.05.2007 um 19:51 | | Doch, du darfst die Runtimes auf jeden Fall mitliefern. MS bietet dafür extra Redistributable-Packages an. | | Von said am 24.05.2007 um 11:28 | wie jetzt? habs nicht so richtig kappiert? ich habe ein eigenes setuppacket entworfen, mit der sich die wichtigen vb6 runtimedateien und einige von mir hergestellte ocx auf dem zielsystem installiert lassen. diesen setup verwende ich als subsetup in allen meiner setups, damit die software rasch installiert werden kann und sofort zu verfügung steht. darf ich das denn jetzt nicht oder wie? ich meine die runtimedaten mit meiner software mitliefern? ich meine das wäre doch total bescheuert, weil man beim erstellen des setups selbstverständlich alle nötigen komponente einbeziehen muss. sonst installiert sich doch kein mensch ein solches programm, bei dem die halbe abhängigkeit fehlt! und wie soll das dem kunden zumutbar sein? die meisten anwender haben grundsätlich keine ahnung vom programmieren geschweige denn von irgendwelchen fehlenden komponenten oder sowas in der art. wenns nicht läuft, dann läufts halt nicht! dann wirds auch nie wieder installiert. damit hat man dann einen kunden weniger. ich meine wenn man sich die vbstudio kauft, so wird man sie dann doch vernünftig einsetzen dürfen. ich bitte um aufklärung. mfg kurt | | Von Philipp Stephani am 13.09.2006 um 19:54 | Hallo, die Kolumne ist ja schon etwas älter, und beim nochmaligen Durchlesen sind mir doch noch einige Unstimmigkeiten aufgefallen: - Angeblicher Nachteil der Vergrößerung der Anwendungsdatei: Für große Funktionen kann das durchaus stimmen; kleine, oft verwendete Funktionen sollte der Compiler dagegen ohnehin automatisch inlinen. Dadurch wird eine Geschwindigkeitssteigerung erzielt, ohne die Ausgabedatei übermäßig zu vergrößern. Es werden natürlich nur die benötigten Funktionen eingebunden und nicht ganze Bibliotheken. - Vorhandensein der VB6-Runtime und des .NET Frameworks in Windows: Die Realität sieht anders aus. Kein einziges System außer Windows XP enthält die VB6-Runtime, und auch in Windows XP nicht in der aktuellen Version. Das .NET Framework ist sogar auf überhaupt keinem einzigen heute verfügbaren Produktivsystem vorhanden. Das heißt, dass die meisten der hier präsentierten Argumente nicht zählen, weil sie von einem Vorhandensein der Runtimes ausgehen, was in keinem einzigen Fall von Haus aus gewährleistet ist. - Komaptibilität des .NET-Framework: Schön wär's. In der Regel sind Programme nicht kompatibel (z.B. Paint.NET). Es müssen also sämtliche Versionen des .NET Frameworks gleichzeitig installiert sein, was die Festplatte nicht gerade schont. Von einer Festverdrahtung des .NET Frameworks in Vista kann, so weit ich weiß, auch keine Rede sein; das Framework ist wohl weiterhin ein einfacher Aufsatz auf die Windows-API mit ein paar zusätzlichen Klassen (sonst könnte es nicht unter Windows XP laufen). Wenn ich mir die Änderungen in Vista so anschaue, erscheinen sie mir geradezu marginal und rechtfertigen kaum eine neue Hauptversionsnummer. | | Von Tornado am 19.03.2005 um 23:45 | Hi, super Kolumne, aber ich kann dir leider nicht zustimmen. Ich habe schon einige Programme programmiert, auch für eine Spielecommunity, die verschiedene Funktionen hatte, und weniger als 5% hatten die Runtime!!! Annähernd jeder musste sie erst installieren, obwohl ALLE winxp hatten. Ich würde mir wünschen, dass VB verschiedene Runtimes in die exe integriert, die es zumindest möglich machen, die benötigten runtimes zu identifizieren und zu kopieren. Dabei denke ich vor allem an non-visuelle funktionen, also keine Formen, buttons o.Ä., zur kommunikation nur msgbox / inputbox. das würde VB um einiges benutzerfreundlicher und vor allem entwicklerfreundlicher machen. gruß florian | | Von Daniel Pramel am 17.01.2005 um 11:57 | Zitat: "[...]allerdings sollte man hier den Fehler eher beim Benutzer suchen" Konrad, der Fehler liegt nie beim Benutzer. Schon vergessen? | | Von UnbeaTable am 01.01.2005 um 13:30 | | sehr coole Kolumne! :) | | Von Philipp Stephani am 18.11.2004 um 19:11 | | Das geht in VB leider überhaupt nicht, deswegen müssen bei "ernsthaften" Anwendungen die Laufzeitbibliotheken immer mit ausgeliefert werden. Es kann einfach nicht vorausgesetzt werden, dass der Benutzer die benötigte Version (auch mit richtigem SP) schon hat. | | Von Wolfgang Wolf am 15.09.2004 um 15:29 | Warum Runtime-Aufrufe? Das ist es ja was ich mir von VB wünsche: die von mir gepostete Funktionen (If, NotExistVBRuntime, MsgBox und Shell) in der Exe verfügbar machen, ohne dass dazu die Runtime benötigt wird. Hätte den Vorteil, dass man dem Benutzer zumindest eine vernünftige Fehlermeldung ausgeben könnte. Wenn das Programm von CD gestartet wird, könnte man bei Bedarf sogar die Installation der Runtime anbieten. Warum ist der Anwendungsstart nur über eine Runtime sinnvoll? Ein C Programm kann ich doch auch ohne MFC starten. Beim Start kann ich dann prüfen ob die MFC vorhanden ist und fordere ggf. den Benutzer auf diese zu installieren. Mit dieser Funktionalität (eine Prise PB in VB) würde ich nie wieder über die VB-Runtime lästern ;-) | | Von Konrad L. M. Rudolph am 15.09.2004 um 14:28 | W. Wolf: ähm. Du hast sicher Recht, die Fehlermeldung von VB ist nicht gerade sehr hilfreich für Normalbenutzer, es ist eben eine Standard-Fehlermeldung. Aber der von Dir gepostete Aufruf macht mich stutzig. In diesem kurzen Code werden bereits mindestens drei Runtime-Aufrufe getätigt -- wie bitte sollte dieser Code also ohne Runtimes laufen? Außerdem hinkt diese Idee sowieso, da bereits der ganze Anwendungsstart nur über die Runtimes funktioniert und das ist auch extrem sinnvoll so. Wenn das nicht so wäre, dann wäre VB längst nicht so komfortabel, wie es eben ist. Fazit: es geht einfach nicht -- auch nicht in der Theorie! | | Von W. Wolf am 09.09.2004 um 19:22 | Hallo Konrad, nichts gegen Laufzeitbibliotheken, auch nichts gegen die VB-eigenen. Das Problem dabei ist eben nur, dass ohne Runtime rein gar nichts geht. Ich wäre schon mit einem VB glücklich dass mir gewisse Gundfunktionalität bietet, z.B.: If NotExistVBRuntime If MsgBox("Auf Ihrem System fehlen die VB-Runtime-Dateien. Solle diese Laufzeitbibliotheken auf Ihrem System aktualisiert werden?", vbYesNo) Then Shell "vbruntime.exe" Exit Sub End If Else Exit Sub End If Leider vermag VB in keiner Version diesen einfachen Code zu runtimefreinen Nativ-Code kompilieren. Wer seine Anwender nicht mit einer nichts sagenden "Die DLL xyz.dll wurde im angegebenem Pfad nicht gefunden"-Meldung konfrontieren will, muss auf ein Setup mit integrierter Runtime bestehen oder vor die eigentliche Exe ein C, Delphi- oder PB-Dummy-Programm schalten (wie unter www.ww-a.de\vbcd1.htm beschrieben), dass die Existenz der Runtime in der richtigen Version prüft, ggf. den Benutzer über dessen fehlen informiert und Gegenmaßnamen anbietet. Unter diesen Umständen kann ein VB-Programm sogar von CD-ROM starten. | | Von Philipp Stephani am 30.08.2004 um 00:45 | @Marco: Ja, das mit dem .NET Framework stört mich auch etwas. Auch, dass es so groß sein muss und nur komplett ausgeliefert werden kann. Ich denke, dass eine Standard-.NET-Anwendung nur ein paar Prozent der Klassen benutzt, die anderen bräuchte man eigentlich nicht. Man kann auch weder Longhorn noch DSL voraussetzen, damit schließt man ungefähr 100% aller Benutzer aus (weil es Longhorn noch nicht gibt...). Ich fände es auch nicht schlecht, wenn MS eine kostenlose CD mit dem Framework rausgeben würde, wie es das ja schon mit vielen Paketen macht. | | Von Marco am 18.08.2004 um 11:25 | Hi Konrad, dieses Thema wurde ja schonmal (vielleicht auch des öfteren) im VB-Forum angesprochen. Und die Sache mit dem .NET-Framework bleibt dennoch ein Problem für viele Programmierer, bzw. stellt es vielleicht die letzte Hürde dar. - Wie du schon geschrieben hast, wird das .NET-Framework vermutlich in Longhorn "fest verdrahtet" sein. Und dann dürfte die Ausrede mit dem "noch zu downloadenden Framework" nich mehr ziehn. Was ist aber wenn sich die Version dieses Frameworks ändert? Bei mir war es so: Ich hab mir ein Tool runtergeladen und wollte es starten. Dieses verlangte aber das .NET-Framework. Intelligenterweise hatte ich bereits eines installiert. Dummerweise aber die falsche Version. Ergo mußte ich mir die neueste Version mir über 20MB laden, die für mich als 56k-Modem-User nich gerade klein ist. Ok, bei VB6 gibts auch verschiedene Runtimes, aber wenn ich noch eine veraltete VB6-Runtime installiert hatte, lief das Programm trotzdem und hat nicht von mir verlangt, ich solle 20MB aus dem Netz schaufeln. In sofern is das mit dem fetten .NET-Framework und der Philosophie: "Wenn eine neue Version, dann komplett!" echt sch****... PS: Keiner kann erwarten, dass ich einen ISDN/DSL-Internetzugang nutze, wie auch du keine 60GB-Platte hast. ;) | | Von Hendrik am 18.08.2004 um 10:19 | Hallo zusammen, erstmal ein großes Dankeschön an Konrad für diese ausführliche und interessante Kolumne :-) Ich gehörte ursprünglich auch zu den Leuten, die lieber ein Setup mit einkompilierter Runtime erstellt haben, einfach deshalb, weil ich selbst die leidvolle Erfahrung gemacht habe, das ein Programm nicht lief, weil irgendeine Komponente fehlte. Nachdem man aber nun (z.B. hier im Forum) gehört hat, dass es bei einigen Betriebsystemen (ich glaube Win95, NT4) zu Problemen kommen kann, sofern man da bei der Installation einfach die VB6 Runtimes SP6 installiert, werde ich auch dazu übergewechseln ein kleines Setup zu erstellen und den Link für die Runtimes bereitzustellen. OK. Anders sieht das vielleicht bei "professionellen" Anwendungen aus, die eine Menge Geld kosten. Da kann man vielleicht nicht unbedingt verlangen, dass der Kunde zusätzlich noch Dateien herunterlädt; der will einfach die CD einlegen, das Setup starten und fertig. @Jürgen: Ich stimme Dirr im Großen und Ganzen voll zu. Selbstverständlich kann man mit VB excellente Anwendungen schreiben (auch wenn andere da eine andere Meinung vertreten..). OK, ob man komplett auf Zusatzkomponenten verzichten kann hängt natürlich immer von dem Programm ab. Gruß, Hendrik | | Von Florian Rittmeier am 18.08.2004 um 10:08 | Hallo am, wenn jemand keine Setups ausführen darf, dann hat das sehr gute Gründe. Es gibt nämlich Umgebungen, in denen es unerwünscht ist, wenn Betriebsfremdeanwendungen eingesetzt werden. Gruß Florian | | Von am 18.08.2004 um 09:59 | Hallo, ich würde mir ein VB wünschen, das per Option auch ohne Laufzeitbibliotheken auskommt. Wie in der guten alten DOS-Zeit. Für schlanke Applikationen, z.B. zum Lesen und schreiben von Daten im Dateisystem. Oder immer dann, wenn keine grafische Ein- und Ausgabe notwendig ist. Oder zum direkten Ansteuern der Hardware.... Weitere Gründe: - damit eine Anwendung möglichst unabhängig von der Windows-Umgebung und von anderen Applikationen eingesetzt werden kann - um zu gewährleisten, dass eine Applikation alles zur Verfügung hat, was sie für die Ausführung benötigt - um auch Programme ausliefern zu können, die ohne Setup-Routine auskommen - weil man dem Anwender nicht immer zumuten kann, dass er wegen einer bestimmten Applikation fehlende Runtimes installiert - weil nicht jeder Anwender dazu in der Lage ist (oder es nicht darf), selbständig ein Programm-Setup zu starten. Man sollte nicht ausser Acht lassen, dass auch Heute noch zu einem erstaunlich hohen Prozentsatz ältere Windows Versionen eingesetzt werden, die eben nicht die erforderlichen Runtime-Versionen "im Bauch haben". Eric Apholte | |