Вопрос к опытным программистам, потому как не хочется дойти до конца, а потом возвращаться к началу:
1. Можно ли в Visual Basic сделать EXE-шник, работающий в чистой Windows (без установленной MS Visual Studio?
2. Можно ли в Visual Basic сделать неинсталлируемую программу, запускаемую например с флэшки?
3. Если вышеперечисленное выполнимо, то обязательно ли использовать для этого MS Visual Studio версии .NET?
Я профессионал в аппаратуре но не в софте. Однако, для технологического пульта управления, изготовление которого я сейчас заканчиваю, потребуется управление от ПК.
Сто лет назад я делал это в Basic под DOS. Потом купил хорошие книжки про Visual Basic 6 и начал, с удовольствием, разбираться. Потом меня пригнули к железу (с запретом программирования, так как у нас появились программисты). Потом программисты ушли далеко вперед и сейчас на мои мелкие задачки у них уже не стоИт...
[Ответ]
Spectator 11:32 20.07.2013
1. да, конечно))) создавать программы, которые работают только с установленной средой разработки - это черезчур даже для Microsoft)))
2. да, инсталляция - по сути просто раскидывание нужных файлов по нужным папкам, можно свалить их в кучу и использовать безо всякой инсталляции. это не будет правильно и красиво, но работать будет.
3. последняя не .NET версия Visual Basic - 6.0, 1998 года выпуска. вполне можно использовать её. непонятно, правда, зачем.
Вы, наверное, заплутали с Runtime средой Васика, напишите конкретнее какую цель преследуете.
[Ответ]
Лайм 12:49 20.07.2013
главное - чтобы был установлен .net framework, ибо без него не будет ничего работать
[Ответ]
Engineegr 14:12 20.07.2013
Spectator, спасибо за ответ!
1&3. Мне приходится ходить к смежникам со своими тестовыми программами - показывать (а то и доказывать), что разработанное мною железо работает безупречно. Поскольку за софт я не получаю ни копейки, то и раздавать свои тестовые программы мне не хочется. Для этого мне нужно сделать неинсталлируемую программу, не требующую установки на чужом компьютере никаких дополнительных библиотек, кроме имеющихся в Windows.
Когда QBasic был в составе установленной MS DOS мне, для моих задач, было все равно - интерпретирующая среда (всегда имеющаяся у смежника!) или скомпилированный EXE-шник. Позднее, для Win9x, мне пришлось делать EXE-шники под DOS. Сейчас в операционках нет полной поддержки DOS-программ, поэтому я и вынужден обратиться к Visual Studio. Ну и, хотелось бы сделать это на Basic - он мне немного знаком.
2. Я где-то читал, что и сама Microsoft не очень рада тому, что заставила всех программистов не использовать INI-файлы, записывая все в реестр, и "раскидывать нужные файлы по нужным папкам". Это приводит к приводит к зарастанию ОС при многочисленных инсталляциях/деинсталляциях - программисты тоже люди и они делают ошибки. Я тоже хочу, чтобы это не было, как Вы выразились "правильно и красиво", но по другой причине, - я не хочу оставлять на чужих компьютерах свои программы.
[Ответ]
Engineegr 14:43 20.07.2013
Лайм, спасибо, что подтвердили мои худшие опасения.
Я сейчас открыл последнюю книгу, которую купил по Visual Basic - Дан Эпплман (Переход на VB .NET. Стратегии, концепции, код. Питер, 2002) пишет:"Архитектура .NET не требует установки исполнительных модулей .NET на всех компьютерах, использующих компоненты или приложения, написанные с использованием Common Language Runtime (это относится и ко всем компонентам и приложениям VB .NET). Книга написана об .NET Framework версии Beta 2.
Однако, на сегодняшний день, мне приходилось устанавливать множество драйверов, требующих установки этой треклятой библиотеки. Если бы политика Microsoft не была столь откровенно монополистской, то в рамках моей задачи, я был бы уверен что на всех компьютерах эта библиотека есть. А то попробуй скачать ее с официального сайта...
Лайм, если Вы разбирались с этим вопросом, то может быть подскажете, какого рода приложения не будут работать на чистой Windows XP SP3?
[Ответ]
Spectator 15:00 20.07.2013
нужно понимать для чего нужна инсталляция.
в ходе этого процесса выполняется ряд задач, который, в частности, может вообще не включать запись чего либо в реестр... основная задача - обеспечение целостности всех частей программы, включая программные модули (библиотеки), файлы данных, записи в реестре и т.п.
при этом отдельные части могут быть исключены. установочная программа совершенно не обязана вообще что либо записывать в реестр.
в Вашем случае приходит сразу в голову дубовой но вполне выполняющий свои задачи вариант - создание установочного пакета, который у клиента будет устанавливаться НА ФЛЭШКУ.
т.е. все библиотеки попадут в папку Windows, и в самом крайнем случае там и останутся - ну да и хрен с ними. а собственно программа будет записываться при установке на ту же флешку. так что если Вы ее унесете физически после посещения клиента, то сможете быть уверенным что и программы у него не останется.
касательно языка - я бы все же рекомендовал оставить Basic в покое... купите книгу по Delphi и полистайте её. по сложности Pascal, который лежит в основе Delphi, отличается от Basic крайне незначительно. зато Вы получите в итоге современную (поддерживаемую на сегодняшний день) среду разработки, возможность полноценно компилировать программу, получая исполняемый файл, содержащий все библиотеки внутри и все остальные плюшки.
[Ответ]
Лайм 15:11 20.07.2013
Сообщение от Engineegr:
если Вы разбирались с этим вопросом, то может быть подскажете, какого рода приложения не будут работать на чистой Windows XP SP3?
ну я может не правильно понял, но никакие приложения, написанные в Visual studio работать не будут, пока на системе не будет установлен фреймворк (а в вин7 фреймворк уже включён).
Если приложение использует какую то бд, то так же наверняка потребуется ещё устанавливать какие то драйвера и пр.
[Ответ]
Engineegr 15:55 20.07.2013
Spectator, спасибо за рекомендацию Delphi. Я уважаю Никлауса Вирта но, к сожалению, мне уже поздновато менять колею...
Распространенность Paskal/Delphi обусловлена тем, что его преподают во всех технических вузах мира - этот язык не допускает двояких толкований. Но это уже в ваши времена. А мы, поверьте, мы были хорошими студентами, просто даже наши преподаватели этого не знали!
[Ответ]
Spectator 16:21 20.07.2013
Сообщение от Engineegr:
Распространенность Paskal/Delphi обусловлена тем, что его преподают во всех технических вузах мира
а то что его преподают во всех технических и не только технических вузах мира обусловлено, в свою очередь, тем что это язык, созданный для обучения программированию.
я, если что, его поклонником как раз не являюсь, скорее наоборот. но в случае когда необходимо быстро и без заморочек научиться создавать несложные программы для передачи их клиентам это будет наиболее оптимальный вариант.
если исходить из того что на Бейсике вы худо бедно программировать научились, освоить Паскаль на базовом уровне труда никакого составить не должно. Зато Вы получите нормальный рабочий современный инструментарий.
дело ведь не в том что Бейсик - не такой, а Паскаль / Дельфи - такой и хороший. дело в том что Microsoft бейсик не особо поддерживает и мутит там с этим .NET что-то. а Дельфи - вполне существующая рабочая среда разработки. вопрос в программах, а не в самом языке.
[Ответ]
silly 16:36 20.07.2013
Сообщение от Engineegr:
Ну и, хотелось бы сделать это на Basic - он мне немного знаком.
У QBasic, Visual Basic и VB.NET реально похожи только ключевые слова для циклов и ветвлений. Про библиотеки я вообще молчу. То есть, никакого повторного использования полученных знаний быть не может.
Сообщение от Engineegr:
Я где-то читал, что и сама Microsoft не очень рада тому, что заставила всех программистов не использовать INI-файлы, записывая все в реестр, и "раскидывать нужные файлы по нужным папкам". Это приводит к приводит к зарастанию ОС при многочисленных инсталляциях/деинсталляциях - программисты тоже люди и они делают ошибки.
Бардак точно так же можно и в текстовых файлах устроить. С реестром в винде проблемы на уровне реализации (недокументированный бинарный формат, странноватый контроль целостности).
[Ответ]
eXtruder 12:25 22.07.2013
Для приложений VB6(который не .NET) нужны его runtime-модули, в минимальном виде, если память не изменяет, это 1 dll-ка, по мере добавления используемых модулей в приложение, количество требуемых библиотек может расти.
Если требования к приложению позволяют выполнять его в управляемой среде, вероятно, лучше обратить внимание на более-менее свежие версии .NET framework и Visual Studio, тогда проблем с портабельностью приложения быть не должно. Между старыми версиями .NET есть неполная обратная совместимость, и, например, приложения, собранные для .NET 1.1 не будут выполняться в среде 2.0. В тоже время, если я не ошибаюсь, в новых версиях Visual Studio и .NET framework отсутствует поддержка Windows XP, на это тоже следует обратить внимание, если приложение планируется на ней запускать.
[Ответ]
Engineegr 10:47 24.07.2013
eXtruder, большое спасибо! Насколько я припоминаю свое первое знакомство с VB6, все именно так - если программа использует только внутренние возможности VB6, то ей необходима только одна собственная, VB-шная, DLL. В чистой Windows 98 ее не было, однако я обнаружил ее после установки MS Office 2000...
Поддержка XP вроде бы есть в Visual Studio 6 SP5, но я до конца не уяснил этот момент, так как только что ее установил.
[Ответ]
Andrew_80 10:28 30.07.2013
Engineegr, если уж настолько прикипели к бейсику и от приложения требуется автономность - попробуйте PureBasic.
Синтаксис прост, неплохой набор встроенных библиотек, программы получаются маленькие, быстрые, не требующие лишних dll; в последних версиях появилась визуальная IDE, не такая приятная как в дельфи, конечно, но все же..
[Ответ]
Engineegr 17:55 11.08.2013
Andrew_80, спасибо! Но переучиваться мне, честное слово, поздно...
Я уже начал программировать, выяснил что программа на Visual Basic 6 SP5 нормально работает в XP и, самое главное, нашел на работе консультанта. Он когда-то написал много программ такого же, технологического, назначения.
Если кому-нибудь будет интересно, то есть такой ресурс - http://vbzero.narod.ru/. Книги по VB6 уже давно нет смысла покупать, а учебник на этом сайте поможет стартовать в программировании "для себя".
Огромное спасибо всем, кто высказал свое мнение!!!
[Ответ]