Italian community of Lazarus and Free Pascal

Programmazione => Lazarus e il web => Topic aperto da: xinyiman - Settembre 02, 2016, 02:27:42 pm

Titolo: Porting kitto
Inserito da: xinyiman - Settembre 02, 2016, 02:27:42 pm
Ciao ragazzi, sul forum ufficiale ho chiesto chi sarebbe disposto a fare il porting di kitto per lazarus, visto che è open source!

Funziona su windows con delphi, sarebbe bello averlo per lazarus. Che ne pensate?

http://forum.lazarus-ide.org/index.php/topic,33882.0.html

Dai potrebbe tornare utile lavorativamente parlando a molti.
Titolo: Re:Porting kitto
Inserito da: nomorelogic - Settembre 02, 2016, 03:26:52 pm
il progetto lo conoscevo, non sapevo fosse open source
sarebbe simpatico come progetto lazarus

vorrei segnalare anche questo
http://synopse.info/fossil/wiki?name=SQLite3+Framework (http://synopse.info/fossil/wiki?name=SQLite3+Framework)

è nato con e per Delphi ma, recentemente, sono riusciti a far compilare il framework con fpc
http://newpascal.org/ (http://newpascal.org/)
molte cose già sono funzionanti, ad esempio la parte di kitto che aggiorna il DB, è già implementata
Titolo: Re:Porting kitto
Inserito da: xinyiman - Settembre 02, 2016, 04:26:04 pm
il progetto lo conoscevo, non sapevo fosse open source
sarebbe simpatico come progetto lazarus

vorrei segnalare anche questo
http://synopse.info/fossil/wiki?name=SQLite3+Framework (http://synopse.info/fossil/wiki?name=SQLite3+Framework)

è nato con e per Delphi ma, recentemente, sono riusciti a far compilare il framework con fpc
http://newpascal.org/ (http://newpascal.org/)
molte cose già sono funzionanti, ad esempio la parte di kitto che aggiorna il DB, è già implementata

Si però non mi sembra che lavorino lato client. E' una splendida struttura per il lato server, ma non ha la gestione delle interfacce a finestre. O sbaglio?
Titolo: Re:Porting kitto
Inserito da: nomorelogic - Settembre 02, 2016, 04:46:45 pm
hanno un generatore automatico x desktop client...
http://synopse.info/files/html/Synopse%20mORMot%20Framework%20SAD%201.18.html#TITL_31 (http://synopse.info/files/html/Synopse%20mORMot%20Framework%20SAD%201.18.html#TITL_31)
funziona con VCL o componenti TMS (che non conosco)
date un'occhiata che ne vale la pena

per la generazione di interfacce web hanno pure un sistema di template

questo fw non l'ho mai provato su strada ma, benché nato per delphi, sembra proprio fatto bene
forse sarebbe interessante vedere cos'ha di buono per generare interfacce web


Edit:
dimenticavo, bisogna cambiare paradigma di lavoro: non RAD ma MVC
Titolo: Re:Porting kitto
Inserito da: xinyiman - Settembre 03, 2016, 07:50:13 pm
hanno un generatore automatico x desktop client...
http://synopse.info/files/html/Synopse%20mORMot%20Framework%20SAD%201.18.html#TITL_31 (http://synopse.info/files/html/Synopse%20mORMot%20Framework%20SAD%201.18.html#TITL_31)
funziona con VCL o componenti TMS (che non conosco)
date un'occhiata che ne vale la pena

per la generazione di interfacce web hanno pure un sistema di template

questo fw non l'ho mai provato su strada ma, benché nato per delphi, sembra proprio fatto bene
forse sarebbe interessante vedere cos'ha di buono per generare interfacce web


Edit:
dimenticavo, bisogna cambiare paradigma di lavoro: non RAD ma MVC
Il discorso è: sono alla ricerca di qualcosa x Lazarus che mi permette di sviluppare velocemente per web. Poi se USA il paradigma MVC ben venga ma anche senza non muore nessuno. Kitto permette di velocizzare perché USA l approccio rad. Tu eventualmente ci saresti x il porting di kitto a tempo perso?!
Titolo: Re:Porting kitto
Inserito da: Stilgar - Settembre 03, 2016, 08:46:31 pm
Ciao. Ma fare la parte web con js non è complicato. Con un approccio rest disaccoppi le tecnologie. 😊 solo devi imparare anche js 😊
Titolo: Re:Porting kitto
Inserito da: xinyiman - Settembre 03, 2016, 11:02:23 pm
ma JavaScript lo conosco. Solo che voglio delle soluzioni veloci da implementare
Titolo: Re:Porting kitto
Inserito da: Stilgar - Settembre 03, 2016, 11:08:34 pm
Guardato bootstrap? 😊
Titolo: Re:Porting kitto
Inserito da: xinyiman - Settembre 03, 2016, 11:15:22 pm
Si ma è una soluzione html5.
A me piacciono le finestre. Ho ottenuto una versione funzionante di extpascal ma non lo mantiene più nessuno.
Titolo: Re:Porting kitto
Inserito da: xinyiman - Settembre 03, 2016, 11:35:16 pm
Che poi questo approccio può funzionare per un approccio ibrido MVC e rad. Però non so mi sembra ancora troppo lento per sviluppare

https://github.com/leonardorame/Ext4-MVC-Tutorial/wiki
Titolo: Re:Porting kitto
Inserito da: SB - Settembre 04, 2016, 11:13:55 am
Scusa, non entro nel merito di kitto, ma guardare gli esempi mi ha lasciato un po' perplesso dopo i primi cinque minuti di apprezzamento.
Posso chiederti se hai mai fornito a un cliente una soluzione di questo tipo?
Anche ammesso che dal lato sviluppatore venga fatto tutto a regola d'arte (gestione della persistenza, degli eventi, ecc) mi sembra che dare all'utente l'illusione di lavorare con form desktop potrebbe dare più problemi di quanti ne risolva...
Inoltre non puoi sfruttare le caratteristiche di un desktop e devi rinunciare alle peculiarità del web.
Non sono aggiornato con le ultime tecnologie web, ma ai miei tempi lo sviluppo per desktop e lo sviluppo per web richiedevano approcci completamente diversi sia come progetto della parte applicativa che come interfaccia.

Titolo: Re:Porting kitto
Inserito da: xinyiman - Settembre 04, 2016, 11:49:27 am
Scusa, non entro nel merito di kitto, ma guardare gli esempi mi ha lasciato un po' perplesso dopo i primi cinque minuti di apprezzamento.
Posso chiederti se hai mai fornito a un cliente una soluzione di questo tipo?
Anche ammesso che dal lato sviluppatore venga fatto tutto a regola d'arte (gestione della persistenza, degli eventi, ecc) mi sembra che dare all'utente l'illusione di lavorare con form desktop potrebbe dare più problemi di quanti ne risolva...
Inoltre non puoi sfruttare le caratteristiche di un desktop e devi rinunciare alle peculiarità del web.
Non sono aggiornato con le ultime tecnologie web, ma ai miei tempi lo sviluppo per desktop e lo sviluppo per web richiedevano approcci completamente diversi sia come progetto della parte applicativa che come interfaccia.

Avevo iniziato ad progettare qualcosa con l'ormai (aimè) defunto raudus. E lo scopo era la progettazione di intranet (e non siti, questo sia chiaro). Ovvio che l'approccio web e quello desktop sono diversi. Io programmo regolarmente in php, javascript, html5 oltre che per lazarus e altre tecnologie. E devo dire che per i siti va bene, ma per le intranet (dove ogni programma è diverso uno dall'altro sento l'esigenza di essere rapido nello sviluppo per non dover essere troppo caro)
Titolo: Re:Porting kitto
Inserito da: SB - Settembre 04, 2016, 01:01:11 pm
Immaginavo che il target fosse quello, per questo ho qualche dubbio sulla sua efficacia e sarei curioso di sapere se hai effettivamente fatto usare qualcosa ai clienti.
Indubbiamente sfruttare l'ambiente rad di Lazarus sarebbe un'ottima cosa, ma se hai clienti come quelli che ho avuto io... è rischioso mettergli davanti qualcosa che sembra una form desktop ma non è una form desktop.
Per quella che è stata la mia esperienza, alla fine le problematiche sono tali che il vantaggio di produrre velocemente una pagina tramite rad è davvero trascurabile.


Titolo: Re:Porting kitto
Inserito da: xinyiman - Settembre 04, 2016, 03:56:08 pm
Immaginavo che il target fosse quello, per questo ho qualche dubbio sulla sua efficacia e sarei curioso di sapere se hai effettivamente fatto usare qualcosa ai clienti.
Indubbiamente sfruttare l'ambiente rad di Lazarus sarebbe un'ottima cosa, ma se hai clienti come quelli che ho avuto io... è rischioso mettergli davanti qualcosa che sembra una form desktop ma non è una form desktop.
Per quella che è stata la mia esperienza, alla fine le problematiche sono tali che il vantaggio di produrre velocemente una pagina tramite rad è davvero trascurabile.
Potresti farmi degli esempi?!
Titolo: Re:Porting kitto
Inserito da: SB - Settembre 04, 2016, 06:23:48 pm
Una volta le cose erano abbastanza problematiche e spero ne sia passata di acqua sotto i ponti, ma direi che tralasciando tutte le necessità di adattare l'aspetto grafico e limitandosi ai soli problemi derivanti dalla non comprensione dell'ambiente che gli utenti stanno usando direi:
- eventi ingestibili generati via browser (es. pulsante indietro, ricerca, menu contestuale, selezione, refresh, ecc)
- keyboard shortcut non funzionanti o, peggio, funzionanti in maniera diversa (es. ALT+F)
- chiusura non controllata di pagine tramite browser con rischio di perdita di dati
- non ridimensionamento delle form e utilizzo non ottimale dello spazio (l'area visibile è determinata dal browser)
- non gestione delle pagine multiple o di browser multipli
- diversità dei dispositivi di visualizzazione con risultati non uniformi e difficilmente prevedibili
- non accesso a risorse locali (stampanti, file, ecc)
Così al volo mi vengono in mente questi, ma credo che con l'uso effettivo ne verrebbero fuori altri.
Se dai l'illusione di avere delle form desktop davanti, poi ti ritrovi nella spiacevole situazione di dover spiegare al cliente perchè certe cose non si possono fare quando lui credeva che si potessero fare... sperando che lo capisca lui e i suoi dipendenti (che continueranno a sbagliare nonostante le spiegazioni...)
Se invece è evidente che si tratta di una cosa diversa, allora i clienti sono più disponibili ad accettare delle limitazioni e puoi far capire che in fondo sono loro a non saper usare un browser (cosa per cui proporrai un bel corso  ;D)

Chissà, alla fine probabilmente è solo una questione di apparenza...
Se riesci a mettere in piedi qualcosa facci sapere che riscontri hai avuto.


Titolo: Re:Porting kitto
Inserito da: Stilgar - Settembre 04, 2016, 10:21:43 pm
Il fatto di separare desktop e web non è sbagliato a prescindere.
Possibilità diverse.
L'integrazione tra sistemi diversi via browser ha delle facilitazioni diverse. Sono solo chiamate http wrappate in qualche modo prova a vedere dhtmlx, se ho capito quello che cerchi.
Tempo fa l'ho visto ma non faceva al caso mio. Avevano un builder/designer.
Tutto javascript.
😊
Titolo: Re:Porting kitto
Inserito da: nomorelogic - Settembre 05, 2016, 10:47:54 am
un'altra cosa da tenere in considerazione è che oggi un sito web deve anche essere facilmente fruibile da smartphone, non so come si comporta ExtPascal ma non mi stupirebbe se venisse fuori che sui telefonini non funziona allo stesso modo.

bootstrap ti da una garanzia di funzionamento da non sottovalutare.

kitto è un bell'ambiente di sviluppo ma più che da fare il porting si tratta di riscriverlo (anche i componenti per l'accesso ai dati non son utilizzabili con fpc).

Edit:
la cosa bella di kitto è che è quasi un c.a.s.e., si definisce l'applicazione e questa (quasi che) viene generata

Titolo: Re:Porting kitto
Inserito da: Stilgar - Settembre 05, 2016, 01:15:25 pm
Piuttosto usare CEF (http://wiki.freepascal.org/fpCEF3)per (http://wiki.freepascal.org/fpCEF3)per) iniziare a fare un designer web?
Così puoi "disegnarti" la pagina.
Poi con l'applicazione scritta in lazarus puoi solo limitarti con la fantasia.
Integrazione con LESS o SASS per i CSS potrebbe essere una cosina che butto lì :)

Occhio a non aprire il vado di pandora xinyiman :)

Stilgar

PS:
Ho iniziato a vedermi CEF tempo fa. Carino :)
Titolo: Re:Porting kitto
Inserito da: xinyiman - Settembre 05, 2016, 03:06:06 pm
Stilgar sai che non ho capito come funziona il framework che hai menzionato?
Titolo: Re:Porting kitto
Inserito da: Stilgar - Settembre 05, 2016, 05:34:05 pm
Dhtmlx o cef?
Titolo: Re:Porting kitto
Inserito da: xinyiman - Settembre 06, 2016, 08:19:46 am
Cef, mentre dhtmlx mi sembra una buona cosa da cui partire per fare un front-end da abbinare a lazarus (lato server). Devo solo fare qualche test per capirne la fattibilità
Titolo: Re:Porting kitto
Inserito da: SB - Settembre 06, 2016, 08:34:55 am
Se ho capito bene, cef è un controllo browser da inserire nelle applicazioni desktop.
Se lo usi per una intranet temo che si aggiungano problemi a quelli esistenti, es. installazione e manutenzione nelle macchine utente del programma contenitore, e comunque peggiori i problemi di incomprensione d'uso visto che perdi la percezione che si lavora in un browser.
Se non hai problemi a realizzare l'interfaccia web e vuoi usare FP lato server (ammesso che tu abbia accesso al server), hai valutato l'uso di CGI? Mi pare che ci siano vari framework a disposizione...
Titolo: Re:Porting kitto
Inserito da: xinyiman - Settembre 06, 2016, 09:12:51 am
Si, e mi sa che con dhtmlx è l'unica soluzione possibile per integrarli allo stato attuale.
Titolo: Re:Porting kitto
Inserito da: xinyiman - Settembre 06, 2016, 09:14:19 am
Anche se non sarebbe male creare un vero e proprio ambiente di sviluppo al riguardo (separato da lazarus, ma scritto con lazarus.  Eventualmente formare un team per crearlo a tempo perso e poi venderlo (licenza open source, ma farlo pagare per poter continuare a mantenerlo nel tempo).
Titolo: Re:Porting kitto
Inserito da: nomorelogic - Settembre 06, 2016, 09:40:18 am
Se ho capito bene, cef è un controllo browser da inserire nelle applicazioni desktop.
Se lo usi per una intranet temo che si aggiungano problemi a quelli esistenti, es. installazione e manutenzione nelle macchine utente del programma contenitore, e comunque peggiori i problemi di incomprensione d'uso visto che perdi la percezione che si lavora in un browser.

è vero, che ci sono tutti questi svantaggi, e forse anche qualcuno di più (es: possibile futuro disallineamento tra il tuo browser ed il chrome installato sull'OS host)
c'è però un vantaggio da tenere in considerazione: tramite l'applicazione lazarus che ospita il componente browser è possibile superare tutti i limiti dei browser (= reale accesso a tutto l'hardware host -> anche solo un DB locale sarebbe una rivoluzione rispetto ai cookie ed alla memorizzazione locale di html5)
Titolo: Re:Porting kitto
Inserito da: xinyiman - Settembre 06, 2016, 10:02:37 am
Anche questo è vero.
Titolo: Re:Porting kitto
Inserito da: nomorelogic - Settembre 06, 2016, 11:24:53 am
Piuttosto usare CEF (http://wiki.freepascal.org/fpCEF3)per (http://wiki.freepascal.org/fpCEF3)per) iniziare a fare un designer web?
Così puoi "disegnarti" la pagina.

non ho capito bene:
si tratta di (1) usare fpCEF per generare interfaccia web ed avere un riscontro wysiwyg
oppure di (2) c'è possibilità di usare direttamente le api di fpCEF per creare i controlli direttamente da pascal?

Titolo: Re:Porting kitto
Inserito da: Stilgar - Settembre 06, 2016, 12:17:54 pm
Ho visto poco fpCEF.
Non è immediato modificare il suo dom direttamente o accedere alla virtual machine interna.
Potrebbe fare parte di un rad per il web. Ma qui si sta aprendo il vaso di pandora....
L'idea nasce da quello che fanno altri ide  (eclipse) per la composizione delle pagine web. Omette i css complessi e da gli ingombri dei blocchi.
Se vuoi guardarti il wrapper magari riesci a farti un'idea dell'utilizzo 😊 da lì qualche idea può nascere 😉
Titolo: Re:Porting kitto
Inserito da: xinyiman - Settembre 07, 2016, 11:38:31 am
Ho dato un occhio a dhtmlx con il suo web designer. Si potrebbero costruire i client attraverso tale strumento e i server con ceosMW.

https://github.com/jbsolucoes/ceosmw

Cosa ne pensate? Avete altri suggerimenti? Secondo voi è meglio una CGI?
Titolo: Re:Porting kitto
Inserito da: Stilgar - Settembre 07, 2016, 03:08:35 pm
mm... dhtmlx vuole i connettori per i dati ... non tanto un rpc ... :)
Titolo: Re:Porting kitto
Inserito da: nomorelogic - Settembre 07, 2016, 03:32:22 pm
ceosmw lo conosco ma poi mi sono messo a vedere brook
http://silvioprog.github.io/brookframework/

mi sembra più adatto e con poco si ha anche un rpc
e poi è in uscita la release 4, sono curioso

ho fatto un piccolo progetto con brook + template fpc ed è una figata
manca solamente di "automatizzare" la generazione dei template

come al solito tutto sospeso per mancanza di tempo ovviamente (altri progetti da fare che emh... pagano :) )
Titolo: Re:Porting kitto
Inserito da: xinyiman - Settembre 07, 2016, 03:37:01 pm
ceosmw lo conosco ma poi mi sono messo a vedere brook
http://silvioprog.github.io/brookframework/

mi sembra più adatto e con poco si ha anche un rpc
e poi è in uscita la release 4, sono curioso

ho fatto un piccolo progetto con brook + template fpc ed è una figata
manca solamente di "automatizzare" la generazione dei template

come al solito tutto sospeso per mancanza di tempo ovviamente (altri progetti da fare che emh... pagano :) )
Ci fai delle mini guide?
Titolo: Re:Porting kitto
Inserito da: nomorelogic - Settembre 07, 2016, 04:00:53 pm
Ci fai delle mini guide?

ci si può provare, ma non è complicato ;)
Titolo: Re:Porting kitto
Inserito da: xinyiman - Settembre 07, 2016, 04:12:05 pm
Lo so ma è una questione anche di mantenere viva la community. Ogni contributo è importante
Titolo: Re:Porting kitto
Inserito da: nomorelogic - Settembre 07, 2016, 07:13:47 pm
ora è in uscita la release 4, vorrei vedere le nuove caratteristiche
magari sono stimolanti :)
penso che comunque qualcosa possa arrivare, con un po' di pazienza ovviamente :)
Titolo: Re:Porting kitto
Inserito da: xinyiman - Settembre 07, 2016, 09:39:15 pm
Allora mentre attendiamo la versione 4 vi suggerisco di guardare l'esempio qui:

http://www.lazaruspascal.it/index.php?topic=1749.msg10203;topicseen#new
Titolo: Re:Porting kitto
Inserito da: SB - Settembre 08, 2016, 10:42:49 am
xinyiman, vedo che hai scritto delle guide su FreeSpider. Cosa non ti va bene di quella soluzione? Forse se dici dove sono i problemi di uno strumento che già conosci si riesce a darti qualche indicazione più utile.
Titolo: Re:Porting kitto
Inserito da: xinyiman - Settembre 08, 2016, 01:37:17 pm
xinyiman, vedo che hai scritto delle guide su FreeSpider. Cosa non ti va bene di quella soluzione? Forse se dici dove sono i problemi di uno strumento che già conosci si riesce a darti qualche indicazione più utile.

Semplicemente non mi permette di gestire i report comodamente. Perchè lazreport non gira in modalità console.
Titolo: Re:Porting kitto
Inserito da: SB - Settembre 08, 2016, 05:19:56 pm
Immagino che tu abbia accesso al server quindi, se la cgi non ti permette di creare direttamente i report... lancia un programma desktop che te li genera e poi si chiude. Puoi passare i parametri che servono tramite riga comando e metterti in attesa del risultato usando una chiamata sincrona.
Questa è la soluzione più semplice che mi viene in mente e puoi recuperare tutto quello che già conosci senza dover imparare un nuovo ambiente.
Se poi vuoi fare il sofisticato, puoi realizzare un report server... ma qui c'è un pochino di lavoro da fare.