Archivi categoria: Web Applications

Installare Bootstrap 4 come dipendenza di app Angular 5

E’ un pò di tempo che non scrivo un nuovo articolo per il mio Blog, oggi volevo riprendere con questo argomento: come installare Bootstrap 4.0.0-beta-2 come dipendenza di un progetto Angular 5.

1. Posizionarsi sulla root del progetto, tramite terminale Node.js eseguire il seguente comando:

npm install bootstrap@4.0.0-beta.2 –save –style sass

per chi non conoscesse bene le opzioni di node.js  –save permette di includere automaticamente il pacchetto all’interno della sezione delle dipendenze del progetto nel file package.json e –style indica il tipo di foglio di stile da usare nel nostro caso se si preferisce usare sass lo indichiamo.

2. Una volta terminata l’installazione del modulo bootstrap verrà segnalato un warning che indica che è necessario installare due dipendenze per far funzionare correttamente bootstrap che sono le seguenti:

npm install jquery@1.9.1 –save –style sass

npm install popper.js@^1.12.9 –save –style sass

3. Aprire il vostro angular-cli.json e aggiungere lo stile e gli script nel seguente modo:

"styles": [
        "styles.scss"
      ],
      "scripts": [
        "../node_modules/jquery/jquery.min.js",
        "../node_modules/popper.js/dist/umd/popper.min.js",
        "../node_modules/bootstrap/dist/js/bootstrap.min.js"
      ],

Continua la lettura di Installare Bootstrap 4 come dipendenza di app Angular 5

Ottimizzazione query My-Sql, conosciamo la Funzione EXPLAIN

Cari lettori,  dopo un lungo periodo di assenza, ho pensato in vista del nuovo anno di ritornare sul mio blog con nuovi ed interessanti articoli, che spero siano di vostro gradimento e di supporto per tutti voi.

Cominciamo oggi con un’articolo in cui analizzeremo un grande strumento, la funzione EXPLAIN che My-Sql ci mette a disposizione per analizzare le nostre Query per poter apportare ulteriori miglioramenti, prestazionali alle stesse.

Per eseguire lo strumento basterà semplicemente digitare il comando EXPLAIN prima della query di selezione e lasciare che My-SQL lo esegua.
MySQL non eseguirà la query di selezione, ma analizzerà e visualizzeà  il risultato.

Un semplice esempio

Inizieremo con una semplice query di selezione a contare tutti i contatti di sesso maschile contenuti in una tabella Rubrica.

SELECT COUNT(*) FROM rubrica WHERE genere = 'M';
+----------+
| COUNT(*) |
+----------+
|   123456 |
+----------+
1 ROW IN SET (0.25 sec)

Ora useremo il comando EXPLAIN per ottenere le informazioni su come i dati per questa query sono ottenuti.
Esempio:

EXPLAIN SELECT COUNT(*) FROM dipendenti WHERE genere = 'M';
+----+-------------+-----------+------+---------------+------+---------+------+--------+-------------+
| id | select_type | TABLE     | TYPE | possible_keys | KEY  | key_len | REF  | ROWS   | Extra       |
+----+-------------+-----------+------+---------------+------+---------+------+--------+-------------+
|  1 | SIMPLE      | rubrica | ALL  | NULL          | NULL | NULL    | NULL | 123456 | USING WHERE |

Andiamo a dare un’occhiata per capire che cosa My-SQL ci sta dicendo.

Continua la lettura di Ottimizzazione query My-Sql, conosciamo la Funzione EXPLAIN

Yii Framework: Come customizzare gii per generare codice per la tua App

A partire dalla versione 1.1.2 , Yii Framework si è dotato di uno strumento basato sul Web generazione di codice chiamato Gii.

Essa sostituisce la precedente yiic strumento shell di generazione che girava su riga di comando.

In questa sezione, descriveremo come  estendere Gii per aumentare la nostra produttività di sviluppo.

Mentre i generatori di codice di default che vengono con Gii in grado di generare codice molto potenti, spesso si ha l’esigenza di personalizzarli o crearne di nuovi per soddisfare i nostri gusti e le esigenze.

Ad esempio, potremmo volere che il codice generato sia basato su nostri stili di codifica preferiti, o potremmo voler rendere il codice utile a supportare più lingue.

Tutto questo può essere fatto facilmente con Gii.

Gii può essere esteso in due modi: personalizzando i template di codice dei generatori di codice esistenti, oppure utilizzando la scrittura di nuovi generatori di codice.

Continua la lettura di Yii Framework: Come customizzare gii per generare codice per la tua App

Utilizzare authManager per la gerarchia autorizzativa RBAC.

La scorsa volta abbiamo parlato dell’ RBAC (Role-based access control), e come abilitarne il modulo che gestisce la gerarchia autorizzativa con Yii Framework per poi salvarla sul nostro Database.

In questo nuovo articolo riprenderemo l’argomento, andando però a spiegare come utilizzare le API di authManager un componenete del Framework che mette a disposizione dei metodi che permettono la creazione di questi ruoli applicativi, le operazioni e le relazioni tra permessi e ruoli.

Come prima cosa diciamo che per proseguire nell’implementazione della nostra gerarchia autorizzativa avremo bisogno di popolare  le nostre tabelle del Database con i ruoli e permessi da noi definiti. Noi faremo questo usando le API messa a disposizione di authManager, ricordiamo che stiamo andando a definire solo i ruoli e le operazioni base, non setteremo per adesso alcuni task formali di RBAC .

In questo articolo andremo a definire una gerarchia base tipica di un Blog, in cui c’è un Proprietario del Blog, un’utente Registrato e un Lettore, come segue: gerarchia_autorizzativa Continua la lettura di Utilizzare authManager per la gerarchia autorizzativa RBAC.

Come configurare il componente di controllo degli accesi basato sui Ruoli con Yii Framework.

La scorsa volta abbiamo chiarito un’aspetto fondamentale dell’autenticazione con Yii Framework che permetteva di implementare un semplice filtro di Controllo degli accessi come base per limitare l’accesso a utenti autorizzati.

Oggi vorrei focalizzare la vostra attenzione su qualcosa in più, rispetto al semplice  granulare controllo di accesso alla vostra applicazione. Come è facilmente ipotizzabile avremmo bisogno di distinguere all’interno della nostra applicaione gli Utenti, che avranno Ruoli diversi.

Iniziamo col definire questi possibili ruoli, per esempio per la gestione di un blog come questo. Per prima cosa cominciamo con individuare il ruolo principale, la nostra applicazione avrà di sicuro almeno un’ utente di tipo proprietario, che possono pensarlo come amministratore dell’Applicazione, inoltre saranno dati ad tutti i permessi per manipolare i contenuti. Quindi il ruolo del proprietario del sistema, avrà tutti i permessi di gestione applicazione, utenti e contenuti e commenti.

Continua la lettura di Come configurare il componente di controllo degli accesi basato sui Ruoli con Yii Framework.

TDD (Test-driven development) e i meccanismi di Test Unitario e Funzionale.

Con questo mio nuovo post, vorrei introdurre un’aspetto molto importante delle Metodoligie di Sviluppo Agile.

La raccolta di feedback è di fondamentale importanza per lo sviluppo agile di un’applicazione. Il metodo con il quale è possibile controllare il proprio software tramite  questo meccanismo di  feedback, consiste nello scrivere codice di Test Funzionali e Unitario che permetta di ricevere feedback dall’applicazione frequentemente e ripetitivamente.

I Test Unitari sono test che si focalizzano su piccole unità di un’applicazione. In un’applicazione orientata agli oggetti, le piccolissime unità coincidono con i metodi pubblici basati sulle interfacce delle classi stesse.

I Test Unitari  si focalizzano su una singola classe, e non richiedono altre classi di oggetti a run-time. Il loro scopo è di validare che una singola unità di codice stia lavorando come ci si aspettava da essa.
I Test Funzionali testano, invece , un intera funzionalità dell’applicazione. Questi test tipicamente fanno uso di diverse classi e oggetti a run-time a differenza dei primi. Il loro scopo è quello di validare che una funzionalità dell’applicazione stia lavorando come ci si aspettava.

Continua la lettura di TDD (Test-driven development) e i meccanismi di Test Unitario e Funzionale.