Skip to main content

Abilitare e disabilitare il Lazy Loading con Entity Framework

Una delle funzionalità più interessanti dell’Entity Framework è la possibilità di differire il caricamento dei dati negli oggetti di tipo Entity: questa caratteristica, nota come Lazy Loading, consente di alleggerire notevolmente il carico sul Database in quanto le query vengono effettuate soltanto nel momento in cui il codice ha effettivamente bisogno di valorizzare la proprietà richiesta.

Per capire meglio come funziona, prendiamo ad esempio il seguente sistema di classi di tipo Entity:

Approfondisci

Jquery.scrolling: controllare la comparsa e la scomparsa degli elementi nel Viewport

Con l’affermarsi del responsive design e dei layout adattivi diventa sempre più importante tenere traccia della presenza degli elementi man mano che essi diventano visibili all’interno del viewport, ovvero della zona del browser visibile all’utente. Sfortunatamente né il linguaggio javascript né il popolare framework jquery mettono a disposizione un modo nativo per controllare lo stato degli elementi HTML in conseguenza dello scroll della pagina.

Per rispondere a questa esigenza ho sviluppato il plugin jquery.scrolling, che può essere utilizzato proprio per assolvere a tale compito. Il plugin consente infatti di disporre di due eventi, scrollin e scrollout, che si attivano rispettivamente quando un elemento entra o esce dall’area di visualizzazione del viewport.

Gli eventi si attivano in conseguenza di uno scroll o di un resize, ma possono anche essere attivati manualmente nel caso di contenuto generato dinamicamente, ad esempio a seguito di chiamate AJAX. Il plugin supporta infatti ogni tipo di contenuto presente all’interno del DOM della pagina ovvero all’interno di frame o iframe in essa presenti.

Approfondisci

Gestire le GitHub Pages con Mercurial e TortoiseHG

Abbiamo già visto in un precedente articolo come sia possibile creare, pubblicare e gestire un repository su github.com senza bisogno di installare Git, avvalendosi unicamente di MercurialTortoiseHG. In questo articolo spiegheremo come sia possibile utilizzare lo stesso metodo per impostare branch aggiuntivi, come ad esempio il branch gh-pages mediante il quale GitHub consente di pubblicare le cosiddette project pages.

GitHub Pages: cosa sono e a cosa servono

Come spiega il sito, le GitHub pages non sono altro che pagine web ospitate sui server di GitHub. Si dividono in due tipologie:

  • User & Organization Pages: si tratta di pagine legate al nostro account GitHub. Per crearle è sufficiente creare un repository con un nome particolare legato al nostro account. La sintassi da seguire è la seguente:  <username>.github.io  , dove al posto di <username> andrà inserito il nome corrispondente al proprio account GitHub. Una volta creato sarà possibile aggiungere una o più pagine web (e relativi css, js, immagini etc.) che diventeranno immediatamente accessibili all’indirizzo:  http(s)://<username>.github.io .  Queste pagine sono solitamente utilizzate per creare un mini sito web relativo al proprio account GitHub: presentazione e informazioni sullo sviluppatore, portfolio, mission del team di sviluppo, etc.
  • Project Pages: si tratta di pagine legate a un progetto specifico pubblicato su GitHub. Possono essere create manualmente utilizzando gli appositi comandi Git oppure automaticamente utilizzando il software di generazione automatico messo a disposizione da GitHub. In entrambi i casi verrà aggiunto un branch apposito, denominato gh-pages, dove sarà possibile aggiungere una o più pagine web alle quali si potrà accedere mediante l’indirizzo: http(s)://<username>.github.io/<projectname> . Queste pagine sono solitamente utilizzate per creare un sito web relativo al proprio progetto: descrizione, istruzioni per l’uso, esempi, demo, documentazione, API, etc.

Poiché le User & Organization Pages utilizzano il branch master del repository a loro dedicato, per gestirle è sufficiente fare riferimento all’articolo pubblicato in precedenza, che illustra appunto come gestire un repository Git tramite Mercurial. Nel caso delle Project Pages la questione è resa leggermente più complicata dal fatto che dobbiamo creare un branch apposito: vediamo come.

Approfondisci

Utilizzare GitHub con Mercurial e TortoiseHG

Introduzione

Non esiste sviluppatore degno di questo nome che non conosca GitHub, il popolare servizio di hosting di progetti software basato su tecnologia Git. Nel remoto caso in cui non ne abbiate mai sentito parlare vi consigliamo di recuperare le apposite voci di wikipedia relative rispettivamente a GitHub e a Git e i relativi siti ufficiali github.comgit-scm.com.

In caso contrario, continuate a leggere: saprete infatti fin troppo bene che l’utilizzo del servizio GitHub è convenzionalmente vincolato all’adozione di Git, un sistema di controllo di versione (source-control manager o SCM) particolarmente innovativo che in questi ultimi anni ha avuto – anche grazie alla popolarità dello stesso GitHub – una grandissima affermazione, soppiantando gli antichi e gloriosi standard open-source come CVS e SVN grazie ad un’architettura più moderna e basata su un sistema di versioning distribuito piuttosto che centralizzato.

Grazie a queste caratteristiche innovative oggi Git è senza ombra di dubbio il SCM più utilizzato da tutta la comunità Linux – non per niente è stato ideato da un certo Linus Torvalds. Ha avuto però certamente minore fortuna in ambiente Windows, per via di due principali motivi:

  • una tardiva diffusione delle principali interfacce grafiche di gestione – msysgit e TortoiseGit su tutte – particolarmente care agli utenti Windows, per loro natura meno avvezzi all’uso della command-line.
  • la quasi-contemporanea diffusione di Mercurial (noto anche come HG), un SCM distribuito dalle caratteristiche innovative simili a quelle di Git e caratterizzato da un maggiore supporto a livello applicativo per il sistema operativo di casa Microsoft.

Ad influire notevolmente sulla diffusione di Mercurial in ambiente windows è stato, nel 2008, il lancio del sito bitbucket.org, interamente basato su Mercurial (fino al 2011, anno in cui è stato integrato anche Git) e avente caratteristiche in tutto e per tutto simili a quelle offerte da GitHub.

Non è mia intenzione addentrarmi ulteriormente sull’argomento, né dire la mia su quale sia effettivamente il SCM e/o il sito migliore: personalmente, da affezionato utilizzatore di entrambi, ritengo che siano due ottimi prodotti e che – al di là della diversa filosofia di approccio – garantiscano allo sviluppatore funzionalità grossomodo analoghe per la quasi totalità degli utilizzi comuni.

Per una analisi approfondita delle somiglianze e differenze tra Git e Mercurial consiglio di leggere questi due ottimi (seppur datati) articoli. Il primo ha un approccio più tecnico e schematico, il secondo adotta invece un registro più ironico e discorsivo: scegliete quello che più vi ispira, allo stesso modo con cui spesso si finisce per scegliere l’SCM da utilizzare.

Approfondisci

XCode: cambiare lo stile e/o il colore della Status Bar in Objective-C

A partire da iOS7 lo stile della status bar del dispositivo può essere modificato in due modi:

  • per-Controller, ovvero relativamente a ciascun controller.
  • per-Application, ovvero relativamente all’intera applicazione.

Per-Controller

La modalità predefinita per iOS7 e superiori è la prima, il che significa che il sistema si aspetta che le modifiche vengano effettuate all’interno di ciascun  controller. Per ottenere questo risultato occorre aggiungere la seguente riga di codice al metodo viewDidLoad:

E quindi implementare il metodo preferredStatusBarStyle, facendo in modo che restituisca lo stile desiderato. Ad esempio, se abbiamo impostato uno sfondo scuro è probabile che ci servirà uno stile che preveda un contenuto chiaro come nell’esempio seguente:

Mentre in caso di sfondo chiaro è probabile che ci troveremo meglio con lo stile predefinito, che prevede appunto un contenuto scuro:

E così via.

Per-Application

Se vogliamo modificare lo stile della Status Bar per tutti i controller della nostra applicazione, la prima cosa da fare è cambiare l’impostazione predefinita. Per far questo occorre aggiungere una chiave all’elenco delle proprietà personalizzate dell’applicazione, accessibili mediante il file info.plist nella cartella /Supporting Files/ oppure selezionando il Target relativo all’applicazione stessa e posizionandosi nella tab denominata Info:

app-info.plist
Due diversi modi per accedere alle proprietà personalizzate dell’applicazione.

 

La proprietà che va aggiunta è la seguente:

E’ possibile controllare di averla aggiunta correttamente osservando l’elenco modificato tramite l’interfaccia utente di XCode:

view-controller.based

Una volta fatto questo è sufficiente aggiungere la seguente riga di codice al metodo didFinishLaunchingWithOptions del file AppDelegate.m relativo alla nostra applicazione:

Per ulteriori approfondimenti su come personalizzare la Status Bar consigliamo la lettura:

Buono studio e… felice sviluppo!

 

Close