How create a single page apps using html5 and javascript Stefano Marchisio
Create a html5/javascript apps with mvc/ajax using knockout.js/mvvm. Javascript to IQueryable is a framework that allows you to write a simple query in javascript client side and then execute it server side with EntityFramework or a linq provider that implement IQueryable. On the server is used "Dynamic Expressions and Queries in LINQ by Microsoft" to compose dynamically your query. In this way you can create a grid with filter, paging and sort functions. There is also support for: mvc3 unobtrusive jquery validation and jquery mobile/phonegap. - http://Javascriptiqueryable.codeplex.com - http://www.youtube.com/watch?v=qjwyKwsXHKs - http://www.linqitalia.com/articoli/entity-framework/sfruttare-javascript-eseguire-query-linq-server-tramite-dynamic-iqueryable.aspx
Deploy MongoDB su Infrastruttura Amazon Web ServicesStefano Dindo
Lo scopo della presentazione è quella di fornire una visione a 360 gradi su come realizzare un'architettura MongoDB su un'infrastruttura Cloud Amazon Web Services.
La presentazione è suddivisa in quattro aree:
- Introduzione di base su MongoDB
- Preview delle caratteristiche di MongoDB 3
- Come organizzare architetture Replica Set e Sharding di MongoDB in VPC Cloud di Amazon Web Services
- Introduzione alle logiche di Schema Design di MongoDB
Node.js REST interface for MongoDB, we modified mongodb-rest (https://github.com/tdegrunt/mongodb-rest) to manage more operation:
counting elements
"distinct" operations
excel/csv export
list of available db collection
list of keys of a specific query
Multithreading support
It's now also possible to search by date range and are managed sort operations.
How create a single page apps using html5 and javascript Stefano Marchisio
Create a html5/javascript apps with mvc/ajax using knockout.js/mvvm. Javascript to IQueryable is a framework that allows you to write a simple query in javascript client side and then execute it server side with EntityFramework or a linq provider that implement IQueryable. On the server is used "Dynamic Expressions and Queries in LINQ by Microsoft" to compose dynamically your query. In this way you can create a grid with filter, paging and sort functions. There is also support for: mvc3 unobtrusive jquery validation and jquery mobile/phonegap. - http://Javascriptiqueryable.codeplex.com - http://www.youtube.com/watch?v=qjwyKwsXHKs - http://www.linqitalia.com/articoli/entity-framework/sfruttare-javascript-eseguire-query-linq-server-tramite-dynamic-iqueryable.aspx
Deploy MongoDB su Infrastruttura Amazon Web ServicesStefano Dindo
Lo scopo della presentazione è quella di fornire una visione a 360 gradi su come realizzare un'architettura MongoDB su un'infrastruttura Cloud Amazon Web Services.
La presentazione è suddivisa in quattro aree:
- Introduzione di base su MongoDB
- Preview delle caratteristiche di MongoDB 3
- Come organizzare architetture Replica Set e Sharding di MongoDB in VPC Cloud di Amazon Web Services
- Introduzione alle logiche di Schema Design di MongoDB
Node.js REST interface for MongoDB, we modified mongodb-rest (https://github.com/tdegrunt/mongodb-rest) to manage more operation:
counting elements
"distinct" operations
excel/csv export
list of available db collection
list of keys of a specific query
Multithreading support
It's now also possible to search by date range and are managed sort operations.
MongoDB User Group Padova - Overviews iniziale su MongoDBStefano Dindo
MongoDB è un database non relazionale, orientato ai documenti. Classificato come un database di tipo NoSQL, MongoDB si allontana dalla struttura tradizionale basata su tabelle dei database relazionali in favore di documenti in stile JSON con schema dinamico (MongoDB chiama il formato BSON), rendendo l'integrazione di dati di alcuni tipi di applicazioni più facile e veloce.
Lo scopo del MongoDB User Group Padova è quello di condividere esperienze sulla tecnologia MongoDB.
Questa presentazione, usata durante il primo evento dello User Group, è stata usata per introdurre i partecipanti sulle procedure di installazione ed i concetti di base su MongoDB.
Al DjangoVillage di Orvieto 2014, ha partecipato il nostro Matteo Durighetto, area DB di Miriade e vicepresidente ITPUG, con un intervento sulle ultime novità di PostgreSQL 9.4. In queste slide verrano esposte le feature maggiori di PostgreSQL 9.3 come la cascanding replication con il remastering, le updatable view, il parallel pg dump e i nuovi costrutti di query come i lateral join ma l’attenzione si focalizza sulle nuove feature che porterà con sè la nuova versione 9.4.
Sono state esposte le feature maggiori di PostgreSQL 9.3 come la cascanding replication con il remastering, le updatable view, il parallel pg dump e i nuovi costrutti di query come i lateral join ma l’attenzione si è focalizzata sulle nuove feature che porterà con sè la nuova versione 9.4.
”Se la tua azienda non ha un sito web non esiste” veniva dichiarato all'inizio del secolo. L'affermazione si è ampliata con ”Se la tua azienda non ha un'app non esiste” a partire dal 2010. Niente è peggio di un bisogno indotto fine a se stesso. Sandro Pertini disse che: “Gli uomini, per essere liberi, è necessario prima di tutto che siano liberati dall’incubo del bisogno.” In questo workshop analizzeremo i costi di avvio e di gestione di un'app, le necessità tipiche, le soluzioni alternative e quando è davvero fondamentale.
Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...Diego La Monica
Viviamo in un'era difficile, dove la propria identità digitale ha un prezzo, dove le grandi multinazionali a fronte di un servizio gratuito comprano ogni nostro più recondito segreto, interesse e passione. L’affermazione di Maometto: “Nessuno di voi è un vero credente se non desidera per suo fratello ciò che desidera per se stesso” può far riflettere su quanto un’analisi dei dati, dei comportamenti e delle interazioni non svolto in modo etico possa ledere la nostra privacy.
Tuttavia, in un’app mobile, l’analisi di alcuni comportamenti, il conseguimento degli obiettivi l’ascolto dei feedback e lo studio delle soluzioni adottate dai competitor è fondamentale per definire i miglioramenti da attuare ed aumentare il consenso ed il coinvolgimento degli utenti.
Ideare un app e farla fruttare: quanti modi? Quale scegliere?Diego La Monica
Chi ha scritto “2001: Odissea nello spazio” una volta disse che: “Le nuove idee passano attraverso tre fasi: Non può essere fatto. Probabilmente si può fare, ma non ne vale la pena. Ho sempre detto che si trattava di una buona idea!” Ai giorni nostri, qualsiasi Idea può diventare un’App ed essere pubblicata negli store. E le fasi da percorrere sono 4: ideazione, progettazione, sviluppo e pubblicazione. E se volessimo anche guadagnarci dall’idea? Come un uccellino che saltella da un ramo all’altro, analizzeremo tutti gli aspetti che ci porteranno a determinare quale potrà essere la possibile fonte di guadagno alle spalle della nostra app.
App di successo - quali strumenti? e le performance?Diego La Monica
in occasione di SMAU Napoli 2016 alla Mostra d'Oltremare ho tenuto un Workshop di 50 minuti affrontando aspetti legati alla progettazione, allo sviluppo e all'ottimizzazione di applicazioni mobili basate su Apache Cordova.
Seconda parte del corso su CSS nel quale sono discusse le regole, i selettori e le parentele tra gli elementi in una pagina Web per una corretta applicazione dei selettori
Appunti sui CSS per corso di formazione frontale sul corretto utilizzo dei fogli di stile nelle pagine web.
*Materiale coperto da licenza CC BY-NC-SA 4.0
Applicazioni mobili: strumenti, costi soluzioni e peformanceDiego La Monica
Le applicazioni mobili sono osservati speciali. Ma come decidere se sviluppare un'App Nativa o un'App Ibrida e quali sono i costi da sostenere? Questo ed altro è stato discusso a SMAU Milano 2016.
App di successo quali strumenti? e le performance?Diego La Monica
Seminario SMAU Firenze 2016 sui costi di sviluppo di applicazioni ibride per dispositivi mobili su piattaforma Android, iOS e Windows con Apache Cordova e Intel XDK con una valutazione dei costi di pubblicazione sugli store.
Presentarsi sul mercato globale con app di successoDiego La Monica
Conosci il nemico come conosci te stesso. Se fari così, anche in mezzo a cento battaglie non ti troverai mai in pericolo (Sun Tzu - L'arte della guerra - cap. 3 p. 33)
Presentarsi sul mercato globale con app di successoDiego La Monica
Perché decidere di sviluppare per uno specifico dispositivo mobile?
Perché utilizzare Apache Cordova?
Perché Ottimizzare e come?
Le domande hanno trovato risposta nel seminario tenuto a SMAU Milano 2015
Strategie per applicazioni web prima o meglio dell'app nativaDiego La Monica
Il principio di Archimede afferma che ogni corpo immerso [...] in un fluido riceve
una spinta verticale dal basso verso l'alto, uguale per intensità al peso del fluido
che occupa nel volume spostato.
Durante questo seminario sono stati analizzati i passaggi fondamentali per affiancare ad un comunissimo sito web, una Web App, evidenziando le criticità e coniugando le giuste regole di User Experience, Responsive Web Design e Mobile Centric Design.
Applicazioni mobili: dall'ideazione alla pubblicazioneDiego La Monica
Analisi del completo processo produttivo di un'applicazione per dispositivi mobili, dalla fase ideativa affrontando i singoli passaggi intermedi fino alla publicazione su Apple Store e Google Play, con un'accurata analisi sulle tecnologie necessarie e gli strumenti fondamentali.
Competenze per lo sviluppo software nellera del webDiego La Monica
Senza le giuste competenze è talvolta difficile produrre software per il web che riescano ad avere una resa ottimale in termini di funzionalità, user experience e performance. In questa presentazione si analizzeranno le potenziali competenze necessarie per lo sviluppo di Applicazioni per il Web e si analizzeranno alcuni strumenti software nell'ambito dell'Open Source che facilitano la separazione delle competenze, evitando quanto affermato da Albert Einstein: "La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perché. In questo caso abbiamo messo insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa il perché!"
Siti web, Portali, Rich Internet Application: tendenze e controtendenzeDiego La Monica
Gli strumenti informatici a disposizione degli addetti ai lavori per la produzione di contenuti e per la comunicazione è elevato, ogni strumento è più adatto ad uno scopo. Con questo seminario si costruirà un percorso tra le varie soluzioni che le aziende (e il web) offrono provando insieme a identificarne i punti di forza.
I linguaggi del web - seconda edizione (3° giornata)Diego La Monica
Modulo 4 – AJAX
- Interazioni client/server
- Framework a confronto:
- jQuery
- Mootools
- YUI
- JAST
Modulo 5 – ARIA e l’accessibilità lato client
- Prendere un po' di ARIA
- Le tecnologie assistive
- Ruoli, stati e proprietà
- Strumenti per lo sviluppo accessibile
I linguaggi del web - seconda edizione (2° giornata)Diego La Monica
Modulo 2 – Stili e Crossbrowsing
Cos'è uno stile
Come si può descrivere lo stile di un elemento
Una cascata di... colori
Separare l'informazione dalla sua presentazione
Rendere la regola cross-browser
L'accessibilità sempre in testa!
I linguaggi del web - seconda edizione (1° giornata)Diego La Monica
Contenuti del modulo:
- Cos’è HTML
- I tag e la loro rappresentazione
- Differenze tra le grammatiche HTML e XHTML
- La suddivisione di una pagina
- Strutturare una pagina autodescrittiva
- HTML 5
3. giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Riassunto della prima giornata
✔ Microsof Access è un RDBMS con interfaccia grafica che fonde
l'architettura JET a una semplice interfaccia grafica
✔ I campi sono i dati elementari mentre le tabelle raggruppano più campi
(es. rubrica indirizzi: ciascun nominativo è un insieme di più campi)
✔ Le query sono particolari rappresentazioni delle tabelle che riportano
solo le informazioni che rispondono a determinati criteri
✔ La rappresentazione gerarchica delle tabelle è identificato dalle
relazioni.
✔ Le interfacce sono uno strumento per rappresentare i dati in un modo
“user friendly”.
4. giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Riassunto della seconda giornata – 1
✔ Esistono componenti standard e componenti avanzati da poter
aggiungere alle interfacce.
✔ Un particolare componente avanzato è identificato dalle sottomaschere.
✔ Una macro corrisponde ad un insieme di operazioni eseguite in
sequenza. È possibile impostare condizioni per il flusso delle
operazioni.
✔ Le maschere di Microsoft Access sono orientate agli eventi che
vengono scatenati dall'interazione dell'utente con i componenti
dell'interfaccia.
✔ Ad un'evento si può associare una sola azione (Macro / Codice VBA)
5. giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Riassunto della seconda giornata – 2
✔ VBA è un linguaggio di scripting che ha le medesime regole di Visual
Basic
✔ Una variabile è definita tramite la parola chiave Dim e di default ha
una visibilità limitata (Dim o Private) o può essere di tipo Public
✔ Ad una variabile è possibile assegnare un valore, un'altra variabile o
il risultato di un'espressione.
✔ Le classi sono strutture che raggruppano proprietà e metodi
✔ I componenti delle maschere sono classi che implementano
un'interfaccia grafica e gli eventi.
6. giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Riassunto della terza giornata
✔ Una variabile booleana può assumere solo 2 valori: True o False.
✔ Esistono operatori per le variabili booleane (And, Or, Xor, Not)
✔ Un blocco condizionale viene eseguito solo al verificarsi di una precisa
condizione (“if then else” e “select case”).
✔ I cicli iterativi sono blocchi di codice che vengono ripetuti fino al verificarsi
di una precisa condizione (for, while, do while e do until).
✔ Per forzare l'uscita da un ciclo si usa il comando “exit” seguito
dall'identificatore del ciclo (“exit for”, “exit do”, “exit while”).
✔ Per le procedure (sub) e le funzioni (function) esistono analoghi
comandi di uscita (“exit sub” “exit function”)
8. giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Il database corrente
La tecnologica di base con cui da VBA è possibile accedere ad un Database è
DAO (Data Access Object).
Application.CurrentDB è il Database di Access da cui verrà eseguito il
codice VBA in esecuzione.
Esistono diversi metodi nell'oggetto Application.CurrentDB. I più importanti
sono:
✔ Execute: esegue un'operazione SQL che non restituisce risultati (es.
update, delete, insert).
✔ OpenRecordset: utilizzata per eseguire una query che restituisce dei
dati da poter immagazzinare in un oggetto denominato Recordset.
Per tutti i metodi e le proprietà consultare la documentazione contestuale.
9. giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Interrogare una tabella
Set Rs = Application.CurrentDB.OpenRecordset(QuerySQL)
Esegue la query QuerySQL sul database corrente e ne acquisisce tutte le
righe di cui si prevede l'estrazione fornendo un oggetto denominato
Recordset che consente di navigare i dati della tabella.
Il puntatore (Recordset) parte dalla prima riga (Record) disponibile.
QuerySQL può essere il nome di una tabella, il nome di una query o una
query di interrogazione (select … from … where … )
10. giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Metodi del Recordset
✔ metodi per la navigazione del record:
✔ MoveFirst: sposta il cursore alla prima riga dell'interrogazione
✔ MovePrevious: sposta il cursore alla riga precedente rispetto a quella
corrente.
✔ MoveNext: sposta il cursore alla riga successiva a quella corrente
✔ MoveLast: sposta il cursore all'ultima riga disponibile nel recordset.
✔ Metodi per l'aggiornamento del record:
✔ Delete: cancella il record corrente
✔ AddNew: Predispone la tabella principale ad ospitare nuovi dati
✔ Update: Applica le modifiche o il salvataggio.
11. giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Proprietà del Recordset
✔ EOF: Valore booleano in sola lettura: restituisce True se non ci sono più
record da leggere.
✔ BOF:Valore booleano in sola lettura. Restituisce True se siamo al primo
record.
✔ RecordCount: restituisce il numero di record ottenuti dall'interrogazione.
✔ Fields: è una proprietà particolare definita a sua volta come una collezione
di oggetti Field.
✔ Ciascun Field corrisponde ad una colonna della tabella interrogata.
✔ Accedere ad un Field se non c'è un record corrente si genera un'errore
di run-time.
13. giorno2-100321110649-phpapp02
Autore: - http://diegolamonica.info
Email:me@diegolamonica.info
Progettare un DB da zero
Un'agenzia di scommesse ha richiesto la progettazione un simulatore di corse ippiche
che soddifi i seguenti requisiti:
✔ Bisogna mantenere memoria degli scommettitori
✔ Bisogna poter gestire un'anagrafica dei cavalli
✔ Il sistema di vincite deve poter gestire scommesse per piazzamento
✔ È necessario prevedere che il sistema simuli una corsa completa
✔ è dovranno essere il rispettate le seguenti condizioni:
✔ 0.1% di possibilità che un cavallo si infortuni
✔ 30% di possibilità che non avanzi rispetto agli altri
✔ Il restante 59.9% che il cavallo avanzi verso il traguardo
✔ Per ciascuna corsa bisogna tener traccia delle vincite