Arrivati a questo punto un leggero senso di confusione è comprensibile. Si è davanti ad una scelta e abbiamo fatto solo delle considerazioni teoriche. La domanda ora potrebbe essere: "Quale dei due approcci è il migliore?". Purtroppo la risposta vi deluderà ancora perché sarà: "Dipende". Molti infatti sono i fattori che renderanno una scelta migliore dell'altra e vice versa.
Le applicazioni iFrame sono più veloci. Essendo eseguite separatamente dal resto di Facebook, ogni "cambio pagina" non costringerà a dover ricaricare l'intera schermata. Un sensibile guadagno di tempo se si considera che all'interno della schermata ci sono anche elementi come la chat, abbastanza esosi in termini di Javascript e CSS.
Nel caso usassimo applicazioni che fanno un uso massiccio di Ajax, l'approccio iFrame è ancora preferibile, in quanto, ci eviterebbe il continuo passaggio attraverso i server Facebook (come invece accade nell'approccio FBML).
Nel caso avessimo già realizzato precedentemente una nostra applicazione web, l'approccio iFrame è l'ideale, perché ci permetterebbe di incorporarla facilmente all'interno delle pagine del social network. Ultimo, ma non meno importante è il vantaggio che hanno le applicazioni iFrame di lasciarci usare tutte le librerie esterne che desideriamo (es. Prototype, Jquery, ...).
Le applicazioni FBML non hanno tutti i vantaggi della soluzione precedente, ma dalla loro hanno la caratteristica di essere più semplici da programmare e di avere la possibilità di sfruttare un maggior numero di strumenti messi a disposizione per interagire col social network.
Fino a poco tempo fa, le applicazioni iFrame dovevano utilizzare complesse procedure per creare quello che nelle applicazioni FBML si realizzava senza alcuno sforzo con poche righe di codice. Ultimamente l'impegno dei programmatori ha fatto in modo che anche lo sviluppo di applicazioni iFrame potesse essere reso più semplice, nonostante tutto la praticità delle applicazioni FBML non è stata raggiunta del tutto.
In attesa di sviluppi futuri, per questa guida seguiremo un approccio FBML, sebbene possa sembrare un controsenso per quanto detto prima, tale soluzione la trovo preferibile per fini didattici e per applicazioni da creare ex novo.