Newsgroup: it.comp.lang.delphi
Titolo: Nuovo progetto - Classico o FM ?

dovendo iniziare un nuovo progetto Client/Server, non sarebbe una 
cattiva idea pensare da subito al "cross".
 
I db: Firebird, Oracle 10
Server : Linux 64 bit Locali e Decentrati via VPN
 
Al momento non c'e' l'esigenza oltre Win (da XP a Win7) , ma non si puo' 
escludere Android, Mac non interessa, Linux Desktop forse tra n anni 
qualcuno lo chiedera'
 
Alternative valutate:
* Lazarus : sembrerebbe la via piu' vicina a Delphi, ma di fatto ci sono 
degli aspetti che non mi sono piaciuti:
- compilazione Lenta
- a volte seguire passo/passo con F7/F8 diventa  veramente lento
siamo anni luce dalle prestazioni dell'Ide Delphi;
 
* Qt: servono almeno 6 mesi per essere efficienti (non ho questo tempo, 
e resta uno strumento a basso livello da integrare, quindi diverso dal 
target Delphi/FM)
 
Restiamo quindi su XE2 professional
- Delphi non ha problemi
- Firemonkey, lo conosco poco non posso giducarlo, pero' non mi sento di 
escluderlo a priori
* Pro : Non solo Windows, dbExpress, Indy, una parte delle Jedy, TMS
* Contro : alcuni componenti non mi risultano esserci:
es: TVirtualStringTree
mai usato le griglie TMS, non so simili come concetto a TVirtualStringTree.
 
altra cosuccia extra:
 
Le altre versioni, cosa offrono in piu' (in termini di tempi di 
sviluppo), della Professional ?
 
leggendo il data-sheet, hanno tutte in piu' DataSnap, in ambito C/S che 
vantaggi reali si avrebbero ?
 
quando si tratta di iniziare c'e' sempre il dubbio se la scelta sia giusta.
 
... penserete ...., con questo caldo non hai altro a cui pensare ?
... a settembre mi prendero' una settimana di vacanza, ma i tarli 
preferirei lasciarli a casa ....
ovviamente gradita qualunque altra idea;
ciao.
 
^^^
Architect/Ultimate/Enterprise
Database server connectivity for leading database servers and ODBC
DataSnap middleware for building application and data service
Cloud computing with Amazon and Microsoft Windows Azure
 
Ultimate
Fast SQL database development, database change management, SQL 
profiling,and SQL tuning with DB PowerStudioï¿œ, Developer Edition
 
Architect
Database modeling and design with ER/Studio Developer Edition

 vantaggi reali si avrebbero ?
 
Per cominciare, leggi bene qui:
http://docwiki.embarcadero.com/RADStudio/en/Developing_DataSnap_Applications
 
 
 
Ciao,
  Marco.
 
-- 
MARCO BREVEGLIERI
#Home: 
http://www.marco.breveglieri.name
 
#Blog: 
http://www.compilaquindiva.net
 

>
 
leggero' sicuramente, verso la parte Web, sicuramente dovrebb dare dei 
vantaggi, credo anche per le interrogazioni online, ma da utente 
"Professional", sono solo supposizioni.
 
Invece penso alla parte Hosting, se prendiamo Aruba, offre MySql o MsSql
 
se invece la parte aziendale usa Firebird / Oracle, si dovrebbe comunque 
fare un "travaso di dati" da Oracle a MySql per rendere visibili i dati 
di determinate Tabelle.
 
come si risolve, nel momento in cui avviene una registrazione nel db 
aziendale, se di interesse pubblico, viene inviata anche al db Web, 
pero' la velocita' diventa deteminante (considerando le normali 
connessioni Adsl), per questo mi chiedo se DataSnap sia superiore 
rispetto ai consueti DbExpress.
 
(non e' il mio caso, ma e' calzante) prendiamo una Usl, che rende 
disponibili online i referti, sicuramente a livello interno non usano 
MySql (mi risulta che sia molto diffuso Oracle, come pure Db2), anche in 
queste realta' ci dovra' essere
un passaggio Azienda/Web, alcune delle scelte sono di trasferire i 
referti della giornata (varie aree) di sera in blocco, e non ad ogni 
registrazione di referto; per non penalizare la rete.
Non so ora cosa utilizzino come strumenti di sviluppo (gira tutto su Win 
XP), molti anni fa Rpg su Ibm 36/38
 
ciao.
 

 rispetto ai consueti DbExpress.
 
Queste considerazioni dipendono del tipo di dati che devi travasare, dalla quantità e dai trasferimenti che devi fare.
 
Senza stabilire questi, non ha senso valutare in termini di velocità dbExpress, DataSnap o altro.
 
Bisogna capire cosa devi fare: prima devi stendere un'analisi, poi valuti l'architettura, i moduli da realizzare e in seguit gli strumenti.



forse, ma e' prevista l'integrazione di determinate operazioni con il 
web, non devo pilotare le pagine, solo esportare verso i web-db (come 
nel caso ulss), i dati non saranno disponibili in tempo reale.
 
ciao.

 ogni form ha un suo Datamodule e ResourceString
 
Perch� non evolvere la tua architettura verso un ORM?
In questo modo ti liberi dalle continue modifiche ai sorgenti del 
datamodule.
 
-- 
morde
Android
QT 4.7
Delphi (5,6,7.. expired)
Firebird Database
 

 nel caso ulss), i dati non saranno disponibili in tempo reale.
 
In tal caso, devi ottenere le specifiche di funzionamento e il dettaglio dei servizi che ti vengono esposti e che puoi invocare per sapere come puoi trasferire i dati.
 
In ambito Web, comunque, i framework, i linguaggi e le possibili soluzioni sono infinite.


 datamodule.
 
Ce n'è uno abbastanza promettente: *dORM*. :)
http://code.google.com/p/delphi-orm/
 


 
http://code.google.com/p/delphi-orm/
 
 
io sto usando da qualche mese, e finora con una certa soddisfazione*, 
mORMot. 
http://blog.synopse.info/
 
 
*da chiarire che non ci ho fatto ancora niente di veramente serio, ma 
per qualche piccolo progetto ha risposto sempre bene, anzi a volte 
meglio di quanto sperassi.
 
-- 
Emanuele Desideri
 
 

 I db: Firebird, Oracle 10
 
Hmmmm… se sia o meno una cattiva idea, dipende da cosa intendi 
esattamente per "cross" :)
Dovendo iniziare un nuovo progetto, in ogni caso, per Oracle penserei 
ad una versione più recente della 10, magari la 11g (non so se la 12c 
sia già in commercio).
Considera comunque che Firebird e Oracle sono database MOLTO diversi. 
Se prevedi di implementare la business logic della tua applicazione su 
database, dovrai prevedere funzionamenti fondamentalmente diversi.
Tutto dipende da quel che vuoi fare esattamente.
 

 
Ho capito bene? 
Gli statement sql vanno generati a mano in funzione del tipo di database?
 
A.

 Gli statement sql vanno generati a mano in funzione del tipo di database?
 
No, � tutto ben incapsulato (a giudicare dagli esempi):
http://delphi-orm.googlecode.com/files/dorm_introduction.pdf
 
 
finalmente un orm semplice.


Allora non ho capito di cosa si parla nella diapositiva n 27...
Me lo fate un disegnino?
 
A.

 Me lo fate un disegnino?
 
Ironico ;)
Mi chiedo se stiamo guardando la stessa cosa: la diapositiva 27 � 
l'ultima del pdf.. ti spiegheresti meglio? cose c'� che non capisci?


Ho scritto una cazzata. la diap è la 21:
 
"Generate Sql Script, for a Dorm managed...."
 
 
A.

 "Generate Sql Script, for a Dorm managed...."
 
Penso di averti capito: tu ti stai chiedendo se, dato un db 
*preesistente*, esiste la possibilit� di mappare le tue classi con 
questo orm?
 
Dalle slide si evince che lui dia la possibilit� di generare un sql di 
creazione delle tabelle di cui hai definito *preventivamente* gli 
oggetti applicativi.
 
Io non ti so rispondere: considera che l'intero team dietro a questo orm 
� italiano, quindi penso proprio che non ci siano problemi a chiedere 
chiarimenti.
anzi, se chiedi facci sapere cosa ti dicono pf. ;)


Qualcuno ha in piedi qualcosa di SERIO E FUNZIONANTE basato su questa tecnologia usando collegamenti lan, vpn e wan? 
Magari qualcosa che usa UN DATABASE con tabelle da qualche milione di record?
 
Se si:
 
1) ci sono cose da evitare o da non fare?
 
2) c'e' qualcosa di specifico sulla quale uno si deve sbattere per metterlo in piedi, tipo le permission per MTS, DCom etc? Eventualmente ste cose vanno fatte solo sui client, solo sui server o su entrambi? Ancora, sono richieste particolari permission agli utenti? Penso a contesti con domini o active directory dove addirittura puoi definire profili utenti che NON POSSONO APRIRE CONNESSIONI SOCKET. Questa cosa l'ho vista CON I MIEI OCCHI presso due diversi clienti (Uno in Italia e uno in Australia...).
Lo so, mo starete pensando "mammia mia che scassacazzo!"....
Ma non dobbiamo dimenticare che ci sono clienti che hanno veramente TANTI CLIENT, magari distribuiti in piu' sedi distanti anche molto km, che l'installazione non sempre la fa chi sviluppa e quindi meno cose gli installatori devono fare meglio e'.
Altrimenti chi sviluppa passa le nottate al telefono ad ogni installazione.
Non so voi ma la notte (e non solo) preferisco fare ALTRO.....
 
3) se qualcosa non va, il sistema fornisce indicazioni chiare sul PERCHE' o siamo ai livelli dei fantastici catastrophic failure di com/dcom?
 
4) Funziona in modo *identico* su tutti i winzozz (xp sp2, xp sp3, win7 32, win7 64, win server..) oppure ci sono comportamenti diversi?
 
5) Le performance come sono?
 
6) Su cosa si perde piu' tempo per mettere in piedi un qualcosa basato su 
uesta tecnologia?
 
7) Ci sono differenze nella comunicazione se client e server girano su un solo pc o su pc diversi? Per chi non lo sapesse Dcom usa un protocollo diverso se client e server girano sullo stesso pc....
 
8) Per quanto tempo il server rimane stabile? Non e' che inizia a succhiare memoria e devi riavviare il computer ogni 3 ore? 
 
Scusate le domande toste, ma visto che mezzo mondo si dice ENTUSIASTA di Zeos e poi scopro che non supporta le Stored Procedure, prima di perdere anche un solo secondo preferisco mettere le mandi avanti e avere dati OGGETTIVI, se esistono.
 
Polemic Mode ON
Anche di qua sono passati commenti su Zeos ma QUASI NESSUNO ha mai fatto presente questa storia delle stored procedure:
 
https://groups.google.com/forum/?hl=en&fromgroups=#!searchin/it.comp.lang.delphi/zeos$20stored$20procedure/it.comp.lang.delphi/q1ni6J-orRo/OW6aEA2NB-wJ
 
 
Forse TUTTI NOI, OVVIAMENTE ME COMPRESO, dovremmo cercare di avere un punto di vista piu ampio e non dare troppe cose per scontate.
Polemic Mode OFF
 
A.
 
 

 anzi, se chiedi facci sapere cosa ti dicono pf. ;)
 
c'e' anche un googlegroup su cui puoi chiedere:
https://groups.google.com/forum/#!forum/dorm-the-delphi-orm
 
 
ciao
Giacomo

Ho scritto a Daniele Teti per capire se e come è posisibile collaborare al progetto....
 
 
 

 Ho scritto a Daniele Teti per capire se e come è posisibile collaborare al progetto....
 
Purtroppo non ho ancora trovato il tempo di dare una mano ma lo
sto seguendo con interesse.
Manca la connessione con Oracle, potresti aiutare in quella direzione!
 
ciao
G
 
 

 sto seguendo con interesse.
 
Lo stesso vale (purtroppo) anche per me. :)


 8) Per quanto tempo il server rimane stabile?
 
Non sono a conoscenza di problemi specifici in merito.


 un passaggio Azienda/Web
 
Le modalita` in questi casi sono due:
 
 - Si implementa un ETL cross database (facile se si usa Talend);
 - Invece di un hosting web si acquista un hosting VPS (o cloud, che di
   questi periodi fa figo) e si installa tutto il necessario per mettere in
   piedi la cosa.
 
Detto questo, tieni presente che per ora Embarcadero usa FreePascal per il 
cross platfom, che e` il compilatore alla base di Lazarus (che tu hai 
scartato per problemi secondo me secondari)
 
Enrico

 scartato per problemi secondo me secondari)
 
Va precisato che FPC viene utilizzato in XE2 solo per la piattaforma 
iOS, mentre con l'inizio del prossimo anno � previsto il rilascio di 
nuove soluzioni - basate su FireMonkey - per iOS e Android che faranno 
uso (stando agli annunci) dei nuovi compilatori (backend e frontend) 
Delphi e C++Builder "in cantiere".
 
A parte questo, se il suggerimento � da intendere come "dai un'occhiata 
a FPC e a Lazarus dato che ti interessa il crossplatform", una sbirciata 
vada sempre data quindi sono d'accordo. :)


 Perchï¿½ non evolvere la tua architettura verso un ORM?
 
Be', che l'adozione di un framework di persistenza sia una reale "evoluzione" è tutto da vedere. 
 

 Be', che l'adozione di un framework di persistenza sia una reale "evoluzione" � tutto da vedere.
 
E' tutto da vedere, certo.
Quello che personalmente vorrei evitare, se capitasse a me, � di andare 
a modificare continuamente i datamodule, le queries e tutti gli oggetti 
grafici che wrappano i dati. Mi riferisco ad una applicazione che 
-presumo- l'OP stia sviluppando, senza oggetti applicativi ma mettendo 
direttamente i valori letti dal db nei controlli visuali.


>
 
se FreePascal e' alla base di Firemonkey (perche' per Embarcadero questo 
e' il cross), come spieghi i tempi di link ? (e' li che perde il tempo)
un ambiente che compila/linka in tempi lenti, che eseguendo il debug 
passo/passo F8, a volte diventa estremamente lento, non li considero 
problemi secondari.
 
 

>
 
le query primo o poi vanno variate, e' inevitabile, ma Form e Datamodule 
non si vedono direttamente, lo fanno tramite una Interface, in modo 
simile a quanto fa l'esempio di Daniele Teti;
nel costruttore del Form si provvede ad istanzaire, non si puo' neppure 
assegnare in modo visuale il DataField del ClientDataSet, si scrive il 
nome del campo.
nel ClientDataSet discendente, e' stata aggiunta una property IdQuery 
dove inseriamo il numero della Query che sara' "pescata" in Memo del db, 
e da li elaborata.
questo sistema funziona dai tempi di D5, su db oracle, prima di passare 
ad un ORM , dovrei essere piu' che certo; non e' detto che ci guadagni 
nel passaggio, se il sistema ha dei bug ?
 
ciao.
 
 

 problemi secondari.
 
FreePascal NON è alla base di nulla. FireMonkey è una libreria. Semplicemente, e solo quando sviluppi con XE2 su iOS (perché da XE3 non sarà più così), il codice della libreria e del tuo progetto viene passato a XCode e compilato con FPC per ottenere l'eseguibile.
 
Sui tempi lenti, purtroppo non posso essere d'aiuto perché ho un'esperienza (quasi) nulla con Lazarus, ma in questo contesto io valuterei tutti i vantaggi in gioco nelle rispettive soluzioni e, una volta identificato un problema (es. compilazione lenta), prima di abbandonare ufficialmente cercherei di capire il perché si verifica e controllerei sui forum di supporto le possibili motivazioni.
 
Ad esempio, può accadere magari che per il tuo progetto non sia necessario inglobare nell'eseguibile tutto il codice della LCL perché devi sfruttare i runtime package, e compilando in quella modalità ci impiega pochi secondi (ipotizzo).
 
Insomma, è solo un incoraggiamento a verificare bene un problema per evitare di buttare via una soluzione che può esserti congeniale per un "difetto", magari presunto, che si sistema con una opzione di compilazione. Non si sa mai... :)


>
si come lo sono MsSQL e Oracle, per i clienti che usano MsSQL, ci sono 
query specifiche (diverse come sintassi),
cosi' quando lo stesso prodotto deve funzionare su Oracle invece che su 
MsSQl, si richiama una query specifica (software per Compagnie ramo 
Assicurativo), stesso per le StoredProcedure o Trigger.
ma la logica lato sviluppatore non cambia in funzione del Db (D2007 + 
Oracle 9 al 99%, resta l'1% che usa MsSQL), fors eper i sistemisti.
 

>
Ho provato le versioni modificate di Lazarus (CodeTyphoon seguite da 
PiloLogic), queste ti permettono di installare l'ambiente senza troppi 
problemi (come avviene in delphi), provato su Win e Linux.
Il codice che si sviluppa con pochi accorgimenti (evitare chiamate Api 
per windows), funziona sia in Win che Linux, per Mac mai provato.
Periodicamente vengono rilasciati gli aggiornamenti con le rel. piu' 
aggiornate dei package.
Bene, verificando le Indy ad es. con la rel. 10.5.8.1 (CodeTyphon 2.40) 
tutto funzionava connessione a server e trasferimento ftp;
in seguito hanno aggiornato alla 15.5.8.3 (CodeTyphon 2.60) la 
connessione a server ftp solleva eccezione (codice identico al 10.5.8.1)
ancora successivamente con la 15.5.8.8 (CodeTyphon 2.70) esegue la 
cennessione al server ftp, ma fallisce al momento del Ftp.List;
 
per evitare rogne avevo risolto con la libreria Synapse.
Il punto e' come fidarsi di un'ambiente che da una versione alla 
successiva presenta delle anomalie; la colpa sara' delle Indy o di 
Lazarus (rel. 1.1 e  Fpc 2.7.1)
 
ciao.
 
 

 la parte web, esiste gia' su dominio Hosting, un VPS cosa offre di diverso
 
Nell'hosting ti mettono a disposizione un'istanza del server http e uno 
spazio confinato per la home http e la tua eventuale directory cgi, 
insieme tipicamente ad un istanza di un db server con accesso limitato 
ad un numero ben definito di database. L'istanza del sistema operativo, 
del server web e db sono condivisi con un numero più o meno alto di utenti.
 
Nel caso del VPS ti viene messa a disposizione in modo esclusivo 
un'istanza del sistema operativo con i suoi servizi, ad essere condiviso 
in questo caso è l'hardware ed il vps non è altro che una macchima 
virtuale le cui risorse vengoo modulate in funzione del contratto.
I vantaggi sono innegabili a partire dall'accesso completo all'os con 
tutto quello che ne consegue... installazione e rimozione di software e 
servizi ad esempio.
 
--
TeeBX VoIP communication platform (coming soon)
http://code.google.com/p/teebx/
 
-----------------------------------------------
Lightweight++ Business Friendly++ Open++

 mettendo direttamente i valori letti dal db nei controlli visuali.
 
Sinceramente, la necessità di compiere manualmente ciò che Delphi 
prevede automaticamente, con i controlli db-aware, non mi è mai stata 
chiara.
 

 problemi secondari.
 
Non capisco se la subordinata "che eseguendo il debug passo passo" sia 
legata alla frase principale "un ambiente che compila/linka in tempi 
lenti" :)
Scritta così non ha senso (il debug avviene quando l'eseguibile è GIA' 
compilato).
La fase di linking è sempre stata lenta, con qualunque sistema di 
programmazione. E' Delphi che ci ha abituati bene, ed è estremamente 
veloce sia in fase di compilazione che di linking.
Ma Delphi è monopiattaforma. Storicamente, i compilatori cross-platform 
hanno sempre prodotto file oggetto che andavano linkati manualmente, 
sulla piattaforma specifica, e questa fase è sempre stata 
particolarmente lenta.
Delphi compie internamente tutte le operazioni di "aggancio", 
rivelandosi estremamente veloce.
Che io sappia, è allo studio l'utilizzo di un linker interno anche per 
FP, ma non ho mai usato FP per cui di più non so.
 

 Lazarus
 
Semplice: ti sviluppi le librerie che ti servono per i fatti tuoi ed eviti 
qualsiasi problema. Ma ti farei notare che il discorso dovresti applicarlo a 
qualsiasi cosa non prodotta da te (ah, l'uomo, questo strano essere con il 
tragico vezzo della fallibilita`...)
 
Enrico

 problemi secondari.
 
Quindi il tuo discorso non e` incentrato su livelli tecnici ma 
sull'usabilita` dell'IDE da parte dello sviluppatore. Da questo punto di 
vista no, attualmente Delphi non e` cross platform, se ne riparlera` se e 
quando Embarcadero riprendera` in mano il progetto Kylix
 
Enrico

 Lazarus (rel. 1.1 e  Fpc 2.7.1)
 
Questo vale più o meno per molte librerie. Stiamo parlando di prodotti 
gratuiti e Open Source: se non sono ritenuti sufficientemente affidabili 
o supportati tecnicamente, puoi creare la tua libreria o acquistare e 
adottare un altro prodotto, questo è ovvio. :|


 tragico vezzo della fallibilita`...)
 
Concordo al 100%. :)


 versi da Windows
 
Al momento, con Delphi, applicazioni native che possono essere compilate 
per SO diversi da Windows sono possibili solo con FireMonkey.


 Lazarus (rel. 1.1 e  Fpc 2.7.1)
 
O magari del tuo codice ;)
Io, per prudenza di programmatore, non lo escluderei ;)
 


secondo il tuo punto di vista, dovremmo impiegare il tempo a scriverci 
in proprio le librerie; dato che gli sviluppatori di queste non le 
farebbero affidabili; e questo solo per il gusto di utilizzare uno 
strumento free.
in anni di Delphi non mi e' mai capitata una situazione simile, diciamo 
invece che CodeTyphoon in particolare e' uan sorta di laboratorio, non 
sempre vengono fornite le versioni "stable" dei package;
non solo, ma anche l'Ide non e' molto "preciso", poni di avere 3 form, 
con Delphi (ma anche Lazarus liscio), scegli uno dei form, premi F12 e 
cambi da codice a form e viceversa, in CodeTyphoon (sempre rel 
successive la 2.40) questo non sempre avviene, e' piu' facile che si 
attivi il form precedentemente usato e non quello seleazionato (unica 
via sicura da menu Progetto->Form.
Ma se hai un progetto da sviluppare, non puoi perderti dietro i 
capriucci dell'Ide o dubitare di una dato package.
Un po' comne il falegname, usa strumenti "professionali e non 
hobbystici", per tagliare / levigare / fresare.
Tu sai bene che nel nostro settore, non ci sono margini di 
sperimentazioni, ti commissionano un dato prodotto e devi cercare di 
farlo velocemente, per evitare che la pagnotta se la mangi qualcun'altro.
Non ho niente contro Lazarus e simili (con CodeTyphoon rel. 2.40 ho 
fatto un progetto reale), ma i successivi rilasci mi hanno fatto passare 
la voglia di continuare ad utilizzarlo.

>
gia' sempre colpa del codice, ma anche la libreria e' codice.
 
ad ogni modo e' talmente banale fare un test il componente e' IdFtp 
palette "Indy Clients Protocols (am)", scaricati CodeTyphon 2.50, 2.60, 2.70
 
queste sono istruzioni basilari, non si puo' sbagliare, se da una rel. 
ad un'altra si verificano problemi, secondo me ci sono 2 possibili cause
a) il porting Indy 10.5.8.x da Delphi a Lazarus ha qualche bug
b) Lazarus stesso
 
Ftp: IdFtp;
 
Ftp.Host
Ftp.Port
Ftp.username
Ftp.password
 
verificati i 4 dati sopra, e che il server ftp sia regolarmente attivo.
se Ftp.Connect solleva eccezione non e' colpa dei mio codice
 
o ancora
 
Ftp.ChangeDir(sDirectory);
Ftp.List;
 
se prendo IdFtp Indy 10 su Delphi XE2 la rel. e' "10.5.8.0", e quella 
"funzionante" era la 10.5.8.1.
continuop a pensare che le rel proposte per lazarus/CodeTyphoon siano 
versioni in fase di sviluppo non ancora a punto, magari un modo per 
testarle, su strumenti free possoo permetterselo, con embarcadero direi 
di no.

 strumento free.
 
Se non lo hai capito, era ironico. Per la serie: se non ti fidi dello 
strumento che ti viene fornito, costruiscitelo da solo.
 

 b) Lazarus stesso
 
c) Il tuo codice aveva problemi che nella versione precedente non si 
manifestavano, e in questa sì, magari per controlli più stringenti, a 
livello di libreria.
 
 

 livello di libreria.
 
D) il server FTP non era raggiungibile al momento del connect e l'eventuale 
eccezione non era gestita
 
Enrico

 eccezione non era gestita
 
No, lui afferma che nel primo caso riusciva a connettersi e trasferire 
il file. Anche se non gestisci l'eccezione, questa si manifesta 
comunque.
 

 il file.
 
Quello che intendo e` che nel primo caso c'erano tutte le condizioni per non 
far comparire l'eccezione, ovvero il server era perfettamente raggiungibile 
e non c'erano problemi di sorta. Problemi che sono invece apparsi nel 
secondo caso
 
Enrico

 in anni di Delphi non mi e' mai capitata una situazione simile
 
Delphi e` un IDE sviluppata attivamente da una societa` che lucra sul suo 
funzionamento. Ma questo non significa che sia esente da problemi, 
semplicemente tu non ne hai notati. Detto questo, senza offesa per quella 
frangia moderata del newsgroup, mi ritengo sempre piu` fortunato di non aver 
cominciato la mia carriera di programmatore con Delphi, in quanto noto 
sempre piu` un concetto diseducativo che ha l'ambiente Embarcadero verso i 
suoi sviluppatori: l'ambiente e` monolitico, ovvero se una sua parte non 
funziona (compilatore, editor, libreria) e` colpa dell'ambiente e non della 
parte specifica
 
Enrico

 
Il fatto che si possano usare librerie o componenti  fatti da altri non vuol dire che uno DEVE farlo...Ci vuole il buon senso.
 
Se mi serve una griglia molto potente e di impatto, prendo i devexpress.
Se devo gestire problematiche di firma digitale, uso ipworks.
 
Ovviamente, se qualcosa non va, potrei avere seri problemi.
NSoftware e Devexpress hanno, da quel che so, un supporto tramite i forum che funziona bene.
Ancora, spezzo una lancia anche in favore di Devart..
Ho postato 2 cose e pur non avendo  acquistato i loro prodotti  ho avuto risposte in tempi brevi.
 
Ma se devo usare SCM o IPC non mi metto certo a usare un componente scritto chissa' in che modo da chissa' chi...
I soliti siti pullulano di componenti, librerie e frammenti di codice scritti da gente che, volendo essere gentili, non capisce manco 'o cazzo...
Ricordo ancora come fosse ieri un post su delphi3000 "come formattare un floppy disk da delphi"... Ai tempi questa cosa mi avrebbe  fatto molto comodo...
Bhe, il tipo lanciava da delphi un file bat con il comando format....
 
Va detto che chi usa questo materiale cinofallico in modo bovino secondo me e' ancora piu' "criminale" di chi lo ha pubblicato...
E credo che ognuno di noi possa raccontarie piu' di un episodio al riguardo.
 
Ancora, il primo paragrafo di un manuale i qualsiasi rad o linguaggio dovrebbe essere "come gestire le eccezioni".
Troppo spesso vengono nascoste.
Troppo spesso vengono gestite male o non gestite affatto...
Troppo spesso, se gestite, non solo non riportano eventuali messaggi o codici restituiti dal sistema operativo ma mostrano anche messaggi che non c'entrano un kazzen con il motivo VERO.
 
Si, delphi e' monolitico...
E' nato in un periodo nel quale tutto era monolitico.
E se si "apre" forse codegaer smette di incassare soldi...
 
Oggi molti prodotti sono aperti. Pensiamo solo a Eclipse.
Ma il fatto che un prodotto sia aperto e non monolitico non lo rende per definizione migliore di un prodotto monolitico.
 
Fino ad ora, quello che lo letto su lazarus si puo sintetizzare in:
 
1) Supporta Linux (azz...manco xe2, lo fa...)
Ma qua sarebbe da precisare forse che va su linux X86...
Oppure creo un exe con lazarus e lo faccio girare su un linux Alpha?
Ah, Non si puo' fare????
Allora SMETTIAMOLA UNA BUONA VOLTA DI FAR GIRARE INFORMAZIONI INCOMPLETE.
 
2) IL linking e' lento
Scusate: cosa vuol dire "lento"? 
 
3) ci sono un po di casini tra una versione e l'altra
 
Polemizzo:
 
1) Se lazarus e' cosi' bello, figo, gratuito, open e multipiattaforma, PERCHE' NON DECOLLA? 
Perche' tutti usano delphi nonostante il costo, il suo essere  monolitico, il suo non supportare linux etc?
 
2) qualcuno qui e' al corrente di una applicazione lazarus che gira su Linux che fa QUALCOSA DI SERIO? Parlo di usare un bel database Oracle (con stored procedure!), un interfaccia utente bella corposa e complessa e che magari gestisce device seriali o tpc? 
Non ditemi "si"....
Datemi dei link e un posto da cui scaricare qualcosa da vedere, a costo di fare la nottata per preparare una macchina virtuale linux.
E poi provo a vedere su windows come va.....e magari anche su mac.
 
3) Non e' che Lazarus e' tosto come e' tosto ZEOS, che e' talmente tosto da NON PERMETTERE L'USO DI STORED PROCEDURE, ALMENO CON ORACLE, alla faccia dei commenti entusiastici...?
 
Scusate la polemica ma ribadisco che sono veramente STUFO di gente che parla a vanvera, che scrive commenti entusiastici su qualcosa che magari non ha mai usato, che suggerisce soluzioni che non ha provato "SULLA PRP PELLE", che dice che un linguaggio funziona da dio xche e' riuscito a scrivere compilare ed eseguire "hello world!", che passa informazioni fuorivianti incomplete o addirittura totalmente sballate.
 
 
A.

 alla faccia dei commenti entusiastici...?
 
Scusa, ma che c'entrano le SP con Lazarus? Che intendi dire?
 

 parla a vanvera,
 
Piu` che altro, il tuo mi sembra uno sfogo dovuto alla frustrazione di dover 
usare un prodotto in un modo differente da quello a cui sei abituato
 
Enrico
 

 all'utente come compilarlo ogni volta per usarlo
 
Non fate finta di non capire, però :)
Il linking lento è riferito alla fase di costruzione dell'eseguibile, 
ovviamente, quindi è, semmai, un problema dello sviluppatore.
Preoccuparsi dei tempi di costruzione dell'eseguibile, da parte del 
proprio sistema di sviluppo, è del tutto lecito.
 
 

 proprio sistema di sviluppo, è del tutto lecito.
 
Non saprei, secondo me il problema maggiore e` tirare fuori il risultato 
finale, anche perche`non credo che si scrivano sistemi tipo firefox tutti i 
giorni :)
 
Enrico

 giorni :)
 
Scusa, non capisco cosa c'entri questa risposta. Chiaro che la cosa più 
importante è tirare fuori il risultato finale, ma è anche importante 
farlo in tempi rapidi.
 

 Scusa, ma che c'entrano le SP con Lazarus? Che intendi dire?
 
Rileggendo quello che ho scritto mi sono reso conto di essermi spiegato non male ma una latrina....
 
Quello che intendevo dire e':
Zeos di qua, zeos di la, va alla velocita della luce etc.
Poi scopri che non supporta le stored procedure, almeno con Oracle.
 
Non e' che lazarus e' bello, figo, tosto, multipiattaforma etc e poi quando lo scarichi e lo installi scopri qualche magagna tipo quella di zeos con le stored procedure?
 
A.
 
 
 
 
 

 Enrico
 

 Un secondo perso in ogni link del codice, per 60 volte, fa un'ora.
 
Ovviamente intendevo un minuto.
 

 Ma neghi forse che in giro vi sia tanta superficialita' e approssimazione...?
 
Come quella di chi spara a zero senza conoscere gli strumenti? :)
 
 

> Come quella di chi spara a zero senza conoscere gli strumenti? :)
 
Touche'! :-D
Pero ', se io prendo un TZeosStoredProc, imposto i parametri e NON FUNZIONA, c'e' poco da conoscere, no? :-|
 
A.
 
 
 
 
 


ne perde ben di piu'
test Lazarus (CodeTyphon 2.70 - Lazarus 1.1 / Fpc 2.7.1) / Delphi XE2
progetto con 60 tra Form / Datamodule (certo in fase di Link ci sono 
differenze dovute alle diverse librerie)
 
progetti pressoche' identici, uso di
Delphi   DbExpress, Indy 10
Lazarus  SqlDb, Synapse
 
- Build iniziale
- variazione del codice (inserimento di una riga vuota)
 
F9 per compilare/linkare
 
dalla pressione di F9
Lazarus -> 19 sec
Delphi  ->  5 sec
 
ma la vera perdita di tempo e' su Ide e debug
se devo seguire con F8 mi serve circa 1 sec per passare da una riga alla 
successiva (ed il codice, brutto o bello che sia, non c'entra)
F12 il vero cruccio di CodeTyphon non sempre passa da Form a Codice 
costringendo a ricorrere al menu Progetto-Form e selezionare quello voluto.
 
e dato che nell'arco della giornata queste operazioni si svolgono n 
volte e chiaro che si perde in produttività.
per quanto riguarda Linux (su Debian, basta ricompilare e funziona in 
modo analogo a Windows "sempre che non si sia fatto uso di Api o 
equivalenti solo per Win"; su altre distro Linux non ho mai provato, 
come neppure su Mac; per Android chi ha provato riporta che non sia 
cosi' immediato.
 
in se l'ambiente non sarebbe male, pero' e' penalizzante nei tempi, e' 
ovvio che per l'utente finale non cambia, ma per chi sviluppa si e anche 
molto.
 
Ma perche' perdersi su una polemica inutile, l'idea iniziale era capire 
se utilizzare Firemonkey invece della Vcl.
 



On 2012-08-28 07:01:48 +0000, Alberto Salvati said:




Io non condivido il dover immaginare, credere, presumere o, peggio che mai, interpretare. Queste cose le lascio a preti e avvocati.


Se uno informatico scrive "e' lento" senza dare almeno un termine di paragone, io CHIEDO.




Il termine di paragone mi sembrava ovvio: lento rispetto a Delphi.




Solo un utente finale davanti ad un software puo' dire "e' lento".




Un programmatore è l'utente finale di un compilatore.




Alla qual cosa segue subito la domanda dell'informatico di turno del tipo "quando? Facendo cosa?".




Il linking.




Si. Ma lazarus non va solo su linux e mac. Ma anche su windows.


Ma chissa' come mai pochi lo usano.




Perché c'è già Delphi. Solo una piccola parte (sono disposto a scommetterci) di chi sviluppa in Delphi, ha una licenza regolare. Questo fa sì che i costi di "approvvigionamento" di Delphi siano pressoché gli stessi di Lazarus.
 




Non e' che lazarus e' bello, figo, tosto, multipiattaforma etc e poi quando lo scarichi e lo installi scopri qualche magagna tipo quella di zeos con le stored procedure?




Difficile che arriverai a saperlo, se non lo userai mai.





 voluto.
 
Brrr… se è vero, questo è un bug abbastanza brutto. Almeno per me, 
sarebbe motivo sufficiente per abbandonare l'IDE.
 
 


Sai bene che prima che io creda ai "NON FUNZIONA" dei programmatori, ce 
ne vuole.
Puoi mettere la mano sul fuoco che tu abbia fatto tutto giusto?
 

 Scusa, non capisco cosa c'entri questa risposta.
 
In effetti, rileggendola, nemmeno io :P
 
Enrico

 se utilizzare Firemonkey invece della Vcl.
 
Alla domanda ti e` stato risposto, la polemica e` nata proprio perche` il 
tuo e`, come dice anche Salvati in un altro messaggio del thread, un 
atteggiamento superficiale nella scelta e nell'uso degli strumenti a tua 
disposizione
 
Enrico

 ottenere un'applicazione per un sistema o per un altro
 
Siccome ripeti quel che hai detto, io ti ripeto le mie obieizioni: la 
velocità di costruzione di un eseguibie è un fattore di produttività 
importante, per il programmatore; niente affatto secondario.
 

 mettere in conto nel momento in cui si sceglie lo strumento.
 
Ma che risposta è? Si stanno criticando quelle caratteristiche, che 
significa "metterle in conto"?
 

 Siccome ripeti quel che hai detto, io ti ripeto le mie obieizioni
 
Boh, a questo punto l'unica cosa che mi viene da dire e` che non siamo 
d'accordo :)
 
Enrico


"
Posso essere anche d'accordo" (
Enrico 'Henryx' Bianchi)




Appunto: Boh.




:)





 Puoi mettere la mano sul fuoco che tu abbia fatto tutto giusto?
 
Apro un altro thread perchè, effettivamente, questo argomento è spesso 
sottovalutato e vorrei approfondirlo.
In un precedente thread io mi ero "cosparso il capo di cenere" puntando 
sul fatto che la nostra lunga esperienza spesso ci porta ad avere troppa 
fiducia nelle nostre opinioni, piuttosto che cercare di corroborarle da 
analisi precise.
 
Io sto lavorando con qt e compilo con mingw: mi è capitato più volte di 
avere problemi di compilazione e, per risolverli, di spendere un bel pò 
di tempo a leggere le specifiche del compilatore, i vari flags, la 
documentazione di qmake, e qualche post su stackoverflow.
 
Una delle trappole in cui spesso capito quando sviluppo sono quelle di 
non approfondire a dovere (fino a leggerne i sorgenti) la documentazione 
a corredo delle librerie e o del compilatore che sto usando.
 
Ad esempio: ieri ho integrato nel mio applicativo un autoupdater 
(WinSparkle, 
http://winsparkle.org/
) e, ad un certo punto, la libreria 
non si comportava più come mi aspettavo. Ho pensato che avesse un bug e 
quindi ho scaricato i sorgenti e seguito il flusso di codice fino a 
capire perchè mi succedeva quel problema, e ho capito che sbagliavo io e 
"lui ha sempre ragione" (frase spesso pronunciata quando si pensa che il 
computer sbagli, poi ci si deve ricredere).
 
Qualche altra esperienza a confronto con la mia?
 
-- 
morde
Android
QT 4.7
Delphi (5,6,7.. expired)
Firebird Database
 

 Difficile che arriverai a saperlo, se non lo userai mai.
 
Colpito e affondato.
 
A.
 

 Utente si, utOnto no.
 
???