download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

Разлика между portable и традиционна програма

< 1 2 >

Автор
Съобщение
insecteater
Съб, 03.04.10, 10:09
Някой срещал ли е правила за тези два типа? Доколкото съм запознат, ситуацията е следната:

Нормални инсталиращи се програми:
1. За конфигурацията си използват записи в регистрите на операционната система
2. Могат да се използват от много потребители, включително и такива с ограничени права без проблем - т.е. използват потребителските папки, до които текущият потребител има права. Така всеки потребител е с различни настройки.
3. Нямат нужда от администраторски права за да работят след като са инсталирани
4. За временни файлове и различни операции без свян използват хард диска на компютъра и не консумират излишно количество памет.

Portable програми
1. За конфигурацията си използват файлове в собствената си папка, от която са пуснати
2. За да се използват, са нужни права за четене/запис в собствената им папка. Различни потребители работят с един и същ набор настройки.
3. Ако програмата има нужда от някакъв service или някакъв драйвер на ниско ниво, трябват администраторски права всеки път когато се пусне
4. Написани са така, че да използват предимно паметта и да извършват дискови операции колкото се може по-малко.

Някой сеща ли се още нещо? Питам, понеже ми е интересно, ако тръгна да правя програма, какво трябва да съблюдавам, като разработвам различните и варианти. Щото мога да направя portable програма и да я опаковам в инсталатор. Разработката пести работа наистина, но не е особено ефективно за последващо използване и администрация.

редактиран от insecteater на 03.04.10 10:10
редактиран от insecteater на 03.04.10 10:10
electric_cc
Съб, 03.04.10, 11:26
dreven е съвършенно прав. За сведение заедно с Владимир Висулчев направихме програма за превръщане на инсталируеми програми в портабъл по технологията Manifest на Microsoft. MakeManifest. Досега съм копирал чрез разкомпресиране над 30 файла на различни операционни системи, включително на Windows 7 и досега всички работят безпроблемно. Открихме един недостатък: ако в пътя на папката, в която работи програмата MakeManifest има интервали, генерираният .манифест дава грешка. Например, ако папката е New_Folder грешка няма, но ако е New Folder се получава грешка. Установихме, че това се дължи на предаването на параметри. Това в скоро време ще бъде коригирано с версия 2.3.
insecteater
Съб, 03.04.10, 18:36
Идеята ми беше да се разгледат крайъгълните камъни, около които се въртят разликите между двата типа програми. Точките които си посочил – доста от тях не са предимства, а характеристики. Ще си позволя да коментирам на свой ред:

Т. 1 и 2 – характеристика. Тия предимства бързо могат да ти вгорчат живота ако си от страна на администратора и са ти възложили някакви отговорности.

Т. 3 Няма голямо отношение, но да.
Т. 4 Предполагам, че имаш предвид по-голямата гъвкавост за предварителна настройка преди да започне експлоатацията и? Да, предимство е. Макар и не толкова използваемо (и в двата смисъла).
Т. 5 По тази точка малко недоумявам. Ако една програма работи с application data папката, а не в своята си собствена, тогава вече почва да избягва от критерия за portable – поправи ме ако греша (то това е и идеята да се изясни кое е точно portable-a). В смисъл къде отива преносимостта и анонимността, ако част от данните ти седят в application data?
Т. 6 Това пак е по-скоро характеристика. Когато е замесена работа с база данни например и/или някаква автентикация (което е различно от оторизация), това предимство се губи и може да доведе до невъзможност за работа с програмата. Слава богу поне, че рядко се срещат такива случаи.
Т. 7 – Това е много сладурско предимство – предимството да деинсталираш по – добре . В работата си имам компютри, които от 2006-та нищо не е деинсталирано. Предимство е, ама …. Не всеки си инсталира и деинсталира програми през седмица. А някои дори гледаме да не го правим от чист мързел. Сещам се за новият компютър, който ти позволява да рестартираш по-бързо.
8. Това е всъщност основният недостатък, който ми пречи Машината се защитава от зловреден код – перфектно, но точно поради тая точка, няма и кой да защити програмата от зловреден код (или от глупостта на потребителя).

Няма да изпадам в подробности, но съм имал доста случаи когато именно антивирусните програми са ми спестявали доста работа. При добре конфигурирани и изработени компютърни системи наистина не би трябвало да имаме нужда от антивирусни. За съжаление обаче действителността не е такава.

За недостатъците им:
1. Portable програмите се теглят обикновено архивирани от нет-а – тук не мога да схвана какво точно имаш предвид.
2. Е то и това е характеристика – не е недостатък – щом ползват повече RAM и процесор, тогава не ти ползват флашката, която има ограничен брой цикли на запис. Това е един от крайъгълните камъни за които става дума наистина.

Ще подъвча още малко – Portable програми – малко като шампоана Wash and go – ползваш и бягаш, докато програмите които се инсталират са „сигурност и надеждност”
Освен споменатите досега разлики между двата типа, има ли още нещо, което да се явява като разлика, или вече изчерпахме направленията?

Всякакви коментари по обсъдените точки а и нови идеи са добре дошли 

tegote
Съб, 03.04.10, 20:40
Ами като сте почнали темата... Аз имам въпрос. Какви портейбъли могат да бъдат тези EXE-та, които се правят от Thinstall? Защото същите си отварят нейде папки и правят записи в тях. След изтриване на папката с програмата, записите си остават! Portable ли е това? Май си е октопод.
electric_cc
Съб, 03.04.10, 20:46
http://en.wikipedia.org/wiki/Portable_application Тук е казано по-точно. dreven не се е изразил точно за някои неща. Например една и съща програма, ако се инсталира или е е направена по метода манифест след стартиране заема в RAM еднакво място. Това зависи единствено от самата програма: какви променливи и масиви дефинира. При метода манифест се създава към програмата MyFile, един файл MyFile.manifest, който лъже системата, че компонентите са регистрирани, те трябва да се намират в съответната папка на програмата. Това е заложено в самата ОС, която трябва да е XP или по-нова. Ако програмата е направена чрез BoxedApp след стартиране тя създава виртуална папка или диск, разкомпресира си всички компоненти там и се стартира. След затваряне на програмата всичко изчезва, понеже е виртуално. На флашката или диска остават само променените данни, ако има такива. Може би точно за това dreven казва, че се изисква повече RAM. Току що видях поста на tegote. Ползвах Thinstall, но често имаше грешки, може би защото беше безплатна версия, но откакто ползвам програми, създадени по технологията манифест, не съм имал проблеми.
редактиран от electric_cc на 03.04.10 20:51
tegote
Съб, 03.04.10, 21:20
Може ли уточнение какъв е този CAB файл? По подразбиране, без да съм чел си мисля, че става дума за архив с файлове - пакет! Кой го прави, с какво и лесно ли става? :(
electric_cc
Нед, 04.04.10, 07:37

RE: Разлика между portable и традиционна програма

” Може ли уточнение какъв е този CAB файл? По подразбиране, без да съм чел си мисля, че става дума за архив с файлове - пакет! Кой го прави, с какво и лесно ли става? :( „
CAB е съкратено от CABINET и представлява на практика компрес от файлове, които могат да се разкомпресират с WinRar или всяка друга програма, която поддържа този формат. Инсталиращата програма разкомпресирва този файл, проверява къде да го запише и дали има нужда от регистриране в системния регистър. Например инсталиращата програма на Windows 98 SE съдържа 75 CAB файла. Такива файлове се създават от различни компилатори, например от Visual Basic. Програмата, за която ставаше дума в този форум работи по подобен начин. Тя разкоммпресирва избрания CAB файл, създава съответните папки и записва файловете в тях. След това проверява кои компоненти имат нужда от регистрация и записва файла MyFile.exe.manifest, който лъже операционната система, че уж компонентите са регистрирани. Всъщност в системния регистър нищо не се записва, но програмите си работят нормално, защото ОС първо чете файла .manifest и след това извършва необходимите действия.
insecteater
Нед, 04.04.10, 09:33
Целта ми беше друга - да се посочат разликите, за да се знае какво трябва да се съблюдава при създаването на двата типа програми. И също така да си изясня с ваша помощ, че когато се създават такива програми, е добре да се подходи по различен начин за всеки тип (изяснено).
В защита на portable програмите разбира се че може да се каже много. И аз ги ползвам с удоволствие и в миналото съм създавал такива.

Накратко - ако седна да правя СОБСТВЕНА програма в двата варианта - с инсталатор и portable, ще съблюдавам правилата от най първият ми пост. В последващите дискусии не забелязах да се добави нещо към тях. А пък работата с "виртуализацията" на системни папки и нагаждането на инсталационни програми към portable вариант не ми е по вкуса. То вярно, че напоследък има тенденция не да се оптимизира кодът, а просто да се увеличават хардуерните мощности, ама ... това си е чисто консуматорско поведение. Същото, заради което децата ни ще наследят едно бунище, а не планета (философстване).

Относно големите печалби които се очакват си имам собствени възгледи, включващи услуги, производство, алчност, и една много важна дума - рентабилност. Там възгледите ми са близки до тези на Boy4o, че и на Яя (няма отношение към темата).

Благодаря за коментарите и споделените възгледи

А и още нещо - Христос воскресе!!!

electric_cc
Пон, 05.04.10, 08:53
Сещам се за един съществен недостатък на традиционните програми. Ще го поясня с пример, понеже ми се случи. Инсталирах една програма, която ползва RICHTX32.DLL. Понеже файлът беше записан в работната папка, а не в SYSTEM32, то и регистрацията му се промени. Записът беше пробен и затова изтрих папката вместо да деинсталирам по нормалния начин. Посоченият файл си съществуваше в системната папка, но Word-а започна да дава грешки. Наложи се да го регистрирам ръчно чрез Regsvr32 и нещата се оправиха. При Portable програмите това никога няма да се случи, т. е. те са "безопасни" по отношение некомпетентно манипулиране от потребителите.
tegote
Пон, 05.04.10, 13:53

RE: Разлика между portable и традиционна програма

” Сещам се за един съществен недостатък на традиционните програми. Ще го поясня с пример, понеже ми се случи. Инсталирах една програма, която ползва RICHTX32.DLL. Понеже файлът беше записан в работната папка, а не в SYSTEM32, то и регистрацията му се промени. Записът беше пробен и затова изтрих папката вместо да деинсталирам по нормалния начин. Посоченият файл си съществуваше в системната папка, но Word-а започна да дава грешки. Наложи се да го регистрирам ръчно чрез Regsvr32 и нещата се оправиха. При Portable програмите това никога няма да се случи, т. е. те са "безопасни" по отношение некомпетентно манипулиране от потребителите. „
Страшно много противоречие и мазило! Първо казваш, че библиотеката ти била в работната папка на програмата, а после изведнъж файлът бил в системната директория!!!! Прграмата, която си изтрил - тя ли ти го прехвърли там???? Другото което - сам си си виновен, аз знам че програми се премахват с деинсталиране, а ти си изтрил само папката, а записите за деинсталация си ги оставил, супер тъпо е..... :/ не знам...

< 1 2 >

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2024   Experta Ltd.