Domanda Risolto Creare applicazione database

Allora, qui parlo un po' da profano ma cerchero' di darti ugualmente una mano: anzitutto dipende dalla licenza che vuoi usare. Se il tuo software e' OpenSource avresti diverse opzioni:
  • GitHub
  • SecureForge
  • Package Managers ( in base alla piattaforma e al linguaggio che usi )
Se invece non vuoi condividere il sorgente e magari vendere il software, credo che dovresti occupartene "da te", non esistendoci (che io sappia) un cosi' detto "Microsoft Store" per le App Desktop.

Mi spiego meglio usando i videogiochi come esempio, che sono pur sempre software:
Quando realizzi un videogioco, hai bisogno di un budget, ma hai anche bisogno di pubblicizzarlo, e "hostarlo"; di queste cose si occupa generalmente il Publisher che in soldoni e' quello che si occupa di (non necessariamente) finanziarti e pubblicizzarti, nonche' occuparsi della distribuzione.

"Distribuire" il software di per se non e' un problema, puoi caricarlo su un Drive e piazzare il link su un gruppo Facebook.
Ma se vuoi fare le cose fatte bene, potresti aprire un sito web dove presenti brevemente il software e lo hosti sul sito stesso. Per poi pubblicizzarlo altrove, probabilmente le inserzioni su Google sarebbero molto efficaci, ma dovresti parlarne con un digital marketer, la sezione "Programmazione" e' errata per questo topic specifico.

Grazie a tutti per le indicazioni e per gli aiuti.. Scusate se faccio confusione
Ma figurati, siamo qui per fare chiarezza insieme : ) Se vuoi ringraziare gli utenti, il forum mette a disposizione uno strumento: i like
 
Ultima modifica:
Prima di tutto impara il linguaggio SQL, che ti permette di interrogare, modificare e creare database. In seguito in base alle tue esigenze scegli un DBMS (il motore che gestisce il database) e specializzati in esso, esempi di DBMS sono: PostgreSQL, MySql e MariaDB. Nel tuo caso penso che la scelta migliore sia SQLite dato che può essere integrato facilmente in loco senza l' uso di un server esterno (praticamente è semplicemente contenuto in un file). Per progettare il design del database devi diventare famigliare con vari concetti come tabelle, chiavi e indici. Ti consiglio questo libro (in inglese) che è ottimo per imparare le basi di SQL e di SQLite. Qui trovi una guida abbastanza breve in italiano di htlm.it su SQL, invece qui trovi la documentazione ufficiale di SQLite.
 
  • Mi piace
Reazioni: nostyn
...e come poter fare per distribuire questo db e fare in modo che possa essere utilizzato da chiunque...
Dal momento che lo hai scritto diverse volte, credo sia necessario fare un po' di chiarezza: database e app/applicativo/applicazione/programma/software NON sono la stessa cosa ma mi sembra che spesso tu sovrapponi questi due.
Un database e' un insieme di dati strutturati, che (per rendertelo intuitivo) e' come un "file" dove appunti delle informazioni. Quello che tu stai chiedendo non ha molto senso, ovvero creare un "file" a cui tutti possono accedere. Non vedo perche' qualcuno dovrebbe memorizzare delle informazioni nel tuo "file", quando potrebbe crearsene uno privato per conto proprio.

Prima di tutto, dovresti dare una lettura al materiale che ti ha indicato @RedWheelbarrow , che sicuramente ti fara' chiarezza su cosa sia un database, e quali siano le sue applicazioni (cioe' quando si "applica") .

In secondo luogo, per la GUI puoi imparare un nuovo linguaggio che possiede dei costrutti integrati per la programmazione delle GUI, come Swift per IOS, Visual Basic o C#, oppure come ti suggerivo, rimani sul C++ ed adoperi un framework o libreria quali .NET e QT.

...un database come KeePass...
Per lo stesso discorso che ti ho gia' fatto, KeePass NON e' un database.

Potresti hostare il progetto su un webhost o tirarlo su localmente su una tua macchina.
Utilizzando XAMPP per esempio, puoi googlare poi su come esporre la macchina a internet
Cerchiamo di non creare ulteriore confusione, credo che l'utente sia gia' abbastanza confuso. @GabryBarbe ignora questi due messaggi perche' consigliano delle soluzioni per la distribuzione di una Web App, quando mi sembra di capire dai tuoi continui riferimenti a KeePass, che vuoi realizzare un' App Desktop, correggimi se sbaglio.
 
  • Mi piace
Reazioni: RedWheelbarrow

GabryBarbe

Utente Bronze
26 Dicembre 2020
80
12
29
36
Buongiorno,
il mio obbiettivo sarebbe arrivare a sviluppare un applicativo gestionale (tipo un db come KeePass, per fare un esempio)
Naturalmente non so da dove partire, e ovviamente avrei bisogno di conoscere le basi.
Sapreste indicarmi qualcosa per iniziare e che possa darmi le basi per arrivare a programmare un database? Sapreste dirmi anche qualcosa riguardo la fattibilità del mio progetto?
Grazie in anticipo. Spero di essere stato abbastanza chiaro..
 
Beh ottimo direi, tuttavia non e' mi e' del tutto chiaro il tuo intento: parli di "applicativo gestionale", poi dici "un db come KeePass". Stando a Wikipedia "KeePass Password Safe è un software open source per la gestione di password...", che sicuramente al suo interno include un database, ma non lo e' esso stesso. A questo punto chiedi "...per arrivare a programmare un database"; cosa intendi di preciso? Vuoi semplicemente avere a disposizione un database (anche locale come quello di KeePass) dove memorizzare dei dati, usando tecnologie gia' esistenti, o vuoi creare un tuo Database Management System?

Comunque dovrai imparare ad usare una libreria o framework per la GUI, se non ne conosci gia' uno: per citartene alcune .NET e QT, questo completamente a tua discrezione quindi sta a te scegliere tra il ventaglio di possibilita', valutando pro e contro.
 
Quello che volevo intendere era un database come KeePass utilizzando anche tecnologie già esistenti.
Però come dicevo prima non saprei da dove partire. Dunque consigliami pure tu qualcosa da approfondire e da cui partire (non per forza per creare direttamente ciò che voglio, anche qualcosa di più basico per poi arrivare a quello) oltre a ciò che mi hai appena consigliato
 
Per quanto riguarda l'SQL e l'organizzazione di un database ne capisco abbastanza e so come gestirlo.
Diciamo che la mia domanda verte su come poter creare una GUI (un po' come quando si crea un database con MSAccess) e come poter fare per distribuire questo db e fare in modo che possa essere utilizzato da chiunque senza bisogno di applicativi esterni (come Access, per l'appunto)
 
Per la GUI puoi utilizzare un qualsiasi linguaggio frontend con supporto SQL. Ad esempio nel caso di un app IOS programmi l' interfaccia con Swift ed interagisci con il database con un framework di supporto di SQL per Swift.
 
Dunque:
1) Creare il database
2) Creare la GUI con un framework tipo .NET

Resta ancora la domanda sul come pubblicare l'applicativo.
Una volta che io ho finito il progetto, come lo posso rendere utilizzabile a tutti?
 
Ciao @nostyn
Hai ragione, ho spesso utilizzato i termini database e software per intendere la stessa cosa, sebbene sappia come funziona un database..

Dunque proviamo a ripartire utilizzando i termini corretti e correggimi ulteriormente se sbaglio:
Vorrei creare un' App Desktop che contenga anche un database per il salvataggio dei dati (per farmi capire meglio cito sempre KeePass. sto facendo un riferimento corretto o parlo di due cose differenti?)

Quello che tu stai chiedendo non ha molto senso, ovvero creare un "file" a cui tutti possono accedere. Non vedo perche' qualcuno dovrebbe memorizzare delle informazioni nel tuo "file", quando potrebbe crearsene uno privato per conto proprio.
Hai ragione, sempre per lo stesso motivo di prima non sono riuscito a spiegarmi. Non voglio creare un database, ma un'App Desktop. Pertanto quello che intendevo chiedere era come distribuire quest'applicazione che si occupa di salvare dei dati?

Grazie a tutti per le indicazioni e per gli aiuti.. Scusate se faccio confusione
 
Faccio una domanda probabilmente stupida ma da qualcosa dovrò pur partire per approfondire haha

Quando scarichi una qualsiasi applicazione viene creata una cartella della applicazione con tutta una serie di file. Riesci a dirmi qualcosa di più a riguardo? E' qualcosa che devo fare manualmente su cui approfondire? Qualcosa che viene automaticamente creato in base a qualcosa che io non conosco? Qualcosa che è completamente al di fuori da quello che vorrei fare io?
 
Faccio una domanda probabilmente stupida ma da qualcosa dovrò pur partire per approfondire haha

Quando scarichi una qualsiasi applicazione viene creata una cartella della applicazione con tutta una serie di file. Riesci a dirmi qualcosa di più a riguardo? E' qualcosa che devo fare manualmente su cui approfondire? Qualcosa che viene automaticamente creato in base a qualcosa che io non conosco? Qualcosa che è completamente al di fuori da quello che vorrei fare io?
Non e' una domanda cosi' banale : ) Per creare un "installer" ci sono diverse opzioni. Non mi dilunghero' a spiegarne il funzionamento perche' puoi leggere qui il concetto che c'e' alla base. Detto cio', un installer lo puoi scrivere tu, nel linguaggio che preferisci: si tratta bene o male di un'operazione (seppure piu' articolata) di estrazione, quindi anche se il tuo programma e' compilato in C++, niente ti vieta di scrivere un installer in Python. Cio' non toglie che esistano delle soluzioni rapide per crearne uno "automaticamente", con e senza GUI. Cercando su Google "How to make an Installer in <linguaggio che preferisci>" troverai informazioni molto piu' accurate ed utili di quelle che posso darti io con le mie conoscenze limitate. Ti lascio qui un buon esempio con il quale puoi creare un blando "installer" usando un archivio auto-estraene ed un paio di altre soluzioni: How to make an Installation File