Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini...

33
Visual Studio 2005 Tools per Office Visual Studio 2005 Tools per Office System: Supporto per Outlook e System: Supporto per Outlook e InfoPath InfoPath Fabio Santini Fabio Santini [email protected] [email protected] La nuova versione dei Visual Studio 2005 Tools per Office introduce il supporto per Outlook ed estende quello già presente per Infopath. Durante questa sessione vedremo come costruire addins per Outlook e di come interagire con il suo modello ad oggetti per creare soluzioni che si integrino perfettamente con il proprio client di posta. Vedremo anche come estendere le funzionalità di InfoPath utilizzando al posto dello script il .NET Framework e Visual Studio 2005, che di fatto ci permetterà di avere a disposizione la semplicità d’uso di InfoPath e la potenza di .NET.

Transcript of Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini...

Page 1: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

Visual Studio 2005 Tools per Office System: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPathSupporto per Outlook e InfoPath

Fabio SantiniFabio [email protected]@microsoft.com

La nuova versione dei Visual Studio 2005 Tools per Office introduce il supporto per Outlook ed estende quello già presente per Infopath. Durante questa sessione vedremo come costruire addins per Outlook e di come interagire con il suo modello ad oggetti per creare soluzioni che si integrino perfettamente con il proprio client di posta. Vedremo anche come estendere le funzionalità di InfoPath utilizzando al posto dello script il .NET Framework e Visual Studio 2005, che di fatto ci permetterà di avere a disposizione la semplicità d’uso di InfoPath e la potenza di .NET.

Page 2: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

AgendaAgenda

Visual Studio Tool for Office : Outlook Visual Studio Tool for Office : Outlook add-insadd-ins

Situazione attualeSituazione attuale

ArchitetturaArchitettura

DemoDemo

InfoPath Toolkit per Visual StudioInfoPath Toolkit per Visual StudioCome funziona ?Come funziona ?

La gestione degli eventiLa gestione degli eventi

Offline SubmitOffline Submit

Page 3: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

Visual Studio 2005 Tools for the Microsoft Visual Studio 2005 Tools for the Microsoft Office System (VSTO)Office System (VSTO)

Personalizzazione a livello di DocumentoPersonalizzazione a livello di DocumentoMicrosoft Excel 2003 Microsoft Excel 2003

Microsoft Word 2003Microsoft Word 2003

Microsoft InfoPath 2003Microsoft InfoPath 2003

Add-ins a livello di applicazioneAdd-ins a livello di applicazioneMicrosoft Outlook 2003Microsoft Outlook 2003

Supporto a Design-time (specifico per ogni Supporto a Design-time (specifico per ogni app)app)

Supporto a Runtime (uguale per tutte le app)Supporto a Runtime (uguale per tutte le app)

Page 4: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

VSTO Outlook Add-insVSTO Outlook Add-ins

Page 5: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

demo

VSTO ‘Hello Outlook’ Add-inVSTO ‘Hello Outlook’ Add-in

Page 6: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

Problemi con Add-ins ManagedProblemi con Add-ins Managed

Più modi per caricare un add-insPiù modi per caricare un add-insUnshimmed (lo standard)Unshimmed (lo standard)

Shim sempliceShim semplice

Shim COM privatoShim COM privato

Unshimmed add-ins non vanno beneUnshimmed add-ins non vanno benesoprattutto per la stabilità e la sicurezzasoprattutto per la stabilità e la sicurezza

Lo Shim COM è difficile da implementare e Lo Shim COM è difficile da implementare e da distribuireda distribuire

L’interfaccia IDTExtensibility2 è complessaL’interfaccia IDTExtensibility2 è complessa

Outlook ha un problemaOutlook ha un problema

Page 7: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

Unshimmed non è la scelta giustaUnshimmed non è la scelta giusta

Caricato nel DefaultDomainCaricato nel DefaultDomainTutti gli add-ins condividono lo stesso Tutti gli add-ins condividono lo stesso contesto di sicurezzacontesto di sicurezza

Un mal funzionamento in un add-ins può Un mal funzionamento in un add-ins può compromettere tutti gli altricompromettere tutti gli altri

Non può essere scaricato dalla memoriaNon può essere scaricato dalla memoria

Tutti gli add-ins sono registrati “come” Tutti gli add-ins sono registrati “come” MSCorEEMSCorEE

Impossibile firmare MSCorEE.dllImpossibile firmare MSCorEE.dll

Poca sicurezza (trust su tutto Poca sicurezza (trust su tutto ))

Page 8: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

Lo Shim COM è fragileLo Shim COM è fragile

Costruire un singolo componente Costruire un singolo componente COM per ogni add-inCOM per ogni add-inNon è supportato da MSNon è supportato da MS

Esempio scaricabile da MSDN con Esempio scaricabile da MSDN con sorgentisorgentiUn Wizard per crearlo in automatico Un Wizard per crearlo in automatico (genera codice sorgente) (genera codice sorgente)

Il codice sorgente è in C++ Il codice sorgente è in C++ Ogni componente necessità di firma Ogni componente necessità di firma digitale se la sicurezza di Office è digitale se la sicurezza di Office è impostata ad Highimpostata ad HighIl deployment è più complessoIl deployment è più complesso

Page 9: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

Problemi con IDTExtensibility2Problemi con IDTExtensibility2

Utilizzata con Host diversiUtilizzata con Host diversi

Non è strongly-typedNon è strongly-typedOnConnection(… object o…)OnConnection(… object o…)

Excel.Application host = (Excel.Application)o;Excel.Application host = (Excel.Application)o;

5 metodi anche se normalmente se ne usano 5 metodi anche se normalmente se ne usano sempre 2sempre 2

OnConnection OnConnection inizializzazione inizializzazione

OnAddInsUpdate OnAddInsUpdate NOP NOP

OnStartupComplete OnStartupComplete NOP NOP

OnBeginShutdownOnBeginShutdown NOP NOP

OnDisconnectionOnDisconnection pulizia pulizia

Page 10: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

Un problema con gli Add-ins in OutlookUn problema con gli Add-ins in Outlook

Paradosso del coccodrilloParadosso del coccodrilloPerchè non ancora sistemato ?Perchè non ancora sistemato ?

Diversi “oggetti esterni” mantengono un puntatore ad Diversi “oggetti esterni” mantengono un puntatore ad Outlook ed è quindi difficile gestire corretamente lo Outlook ed è quindi difficile gestire corretamente lo shutdownshutdown

L’utente che lavora con l’interfaccia graficaL’utente che lavora con l’interfaccia graficaExchange che invia le emailExchange che invia le emailActive SyncActive SyncWord come editor di emailWord come editor di emailMulti-oggetto (Email, Calendar, Task, etc.)Multi-oggetto (Email, Calendar, Task, etc.)

Outlook non chiama OnDisconnection se l’ add-ins Outlook non chiama OnDisconnection se l’ add-ins mantiene un puntatore al suo OMmantiene un puntatore al suo OML’ Add-ins mantiene un puntatore all’ OM di Outlook L’ Add-ins mantiene un puntatore all’ OM di Outlook fino a quando non riceve l’evento OnDisconnectionfino a quando non riceve l’evento OnDisconnectionDifficile consistenza tra il modello di reference Difficile consistenza tra il modello di reference counting di COM e la garbage collection di .NETcounting di COM e la garbage collection di .NET

Page 11: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

Le opportunitàLe opportunità

Molte persone “vivono” in OutlookMolte persone “vivono” in Outlook

I task e le Email spesso sono una parte I task e le Email spesso sono una parte integrale di processi di business nei integrale di processi di business nei workflow documentaliworkflow documentali

Il desiderio di avere un unico front-end Il desiderio di avere un unico front-end a fronte di molti sistemi di back-enda fronte di molti sistemi di back-end

Interfaccia grafica già conosciutaInterfaccia grafica già conosciuta

Page 12: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

Soluzione: VSTO per Outlook Add-inSoluzione: VSTO per Outlook Add-in

Un shim supportatoUn shim supportatoUtilizza il runtime VSTO runtimeUtilizza il runtime VSTO runtime

Isolamento degli AppDomainIsolamento degli AppDomainSicurezza separata per ogni add-insSicurezza separata per ogni add-insInstallazioni e Aggiornamenti tramite Installazioni e Aggiornamenti tramite ManifestManifest

Modello di sicurezza .NETModello di sicurezza .NETRisolto il problema di OutlookRisolto il problema di OutlookNuovo progetto Visual StudioNuovo progetto Visual StudioSnippets, esempi di codice, Snippets, esempi di codice, whitepaperwhitepaper

Page 13: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

VSTO Add-in ArchitectureVSTO Add-in ArchitectureUnmanaged

Office (Outlook)

Host Application

AddinLoader.dll

Addin Loader

IDTExtensibility2 proxy

AddinLoader.dll

Addin Loader

IDTExtensibility2 proxy

AddinLoader.dll

Addin Loader

IDTExtensibility2 proxy

Managed

DefaultDomain

VSTO Runtime

AppDomain Provider

SecurityManager

Add-in Domain #N

Managed Add-in

Add-in Domain #3

Managed Add-in

Add-in Domain #2

Managed Add-in

Page 14: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

VSTO AddinLoader (Load)VSTO AddinLoader (Load)

Office

User

1. Start Office

3. CreateAdd-in

AddinLoader +IDTExtensibility2

Proxy

5. ReturnIDTExtensibility2

Pointer6. IDTExtensibility2.

OnConnection

4. Get AppManifest URL

Registry2. Scan forAdd-ins

Application Manifest

VSTORuntime

7. Ask VSTOto Load Add-in,

Passing AppManifest URL

8. LoadApp Manifest

CASPolicyStore

9. CheckSecurity

ManagedAdd-in

10. Create AppDomain,Load Add-in

11. IStartup.Startup

Page 15: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

RegistroRegistro

HKEY_CURRENT_USER\ SOFTWARE\ Mi cr osof t \ Offi ce\ Out l ook\ Addi ns\MyOut l ookAddi nHel l oWor l dAddi nAnot her Addi n

HKEY_CLASSES_ROOT\ Hel l oWor l dAddi nCLSI D = {F0E54810-A875-4c54-9697-0AE40DAA7317}

HKEY_CLASSES_ROOT\ CLSI D\ {F0E54810-A875-4c54-9697-0AE40DAA7317}I npr ocSer ver 32 = “C: \ Pr ogr am Fi l es\ . . . \ Addi nLoader . dl l ”Mani f est Locat i on = “C: \ Temp\ Hel l oWor l dAddi n”Mani f est Name = “Hel l oWor l dAddi n. mani f est ”

Page 16: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

IDTExtensibility2 IDTExtensibility2 IStartup IStartup

Caricamento Add-inCaricamento Add-in

Metodi Metodi IDTExtensibility2IDTExtensibility2

Implementazione Implementazione tipicatipica

Metodo Metodo IStartupIStartup

OnBeginShutdownOnBeginShutdown --

OnDisconnectionOnDisconnection Rilascio Rilascio puntatoripuntatori

ShutdownShutdown

Scaricamento Add-inScaricamento Add-in

Metodi Metodi IDTExtensibility2IDTExtensibility2

Implementazione Implementazione tipicatipica

Metodo Metodo IStartupIStartup

OnConnectionOnConnection InizializzazioneInizializzazione StartupStartup

OnAddInsUpdateOnAddInsUpdate - -

OnStartupCompleteOnStartupComplete --

Page 17: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

VSTO AddinLoader (Unload)VSTO AddinLoader (Unload)

User

Office

1. Disconnect

AddinLoader + IDTExtensiblity2

proxy

2. IDTExtensibility2.OnDisconnection

ManagedAdd-in

3. IStartup.Shutdown

VSTORuntime

4. Unload AppDomain

5. Return from OnDisconnection

Registry6. Update

LoadBehavior

Page 18: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

demo

Un esempio completoUn esempio completo

Page 19: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

AgendaAgenda

InfoPath e i Visual Studio Tools for InfoPath e i Visual Studio Tools for OfficeOffice

La gestione degli eventiLa gestione degli eventi

Offline SubmitOffline Submit

Page 20: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

Programmare InfoPathProgrammare InfoPath

La maggior parte delle form non richiede codice

XML Schema

RulesFormulas

Data ValidationData Connections

Conditional Formatting

C#VB.NET

Page 21: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

RequisitiRequisiti

SviluppatoriSviluppatoriVisual Studio .NET 2003 o 2005 Beta 2 o 2005 Visual Studio .NET 2003 o 2005 Beta 2 o 2005 RCRCInfoPath 2003 SP1InfoPath 2003 SP1InfoPath Toolkit per Visual Studio (Macros)InfoPath Toolkit per Visual Studio (Macros)

Visual Studio .NET 2003 (Download)Visual Studio .NET 2003 (Download)Visual Studio 2005 Beta 2 (Download o CD)Visual Studio 2005 Beta 2 (Download o CD)Visual Studio 2005 RC (MSDN)Visual Studio 2005 RC (MSDN)

Utente finaleUtente finale.NET Framework 1.1 o 2.0 Beta 2.NET Framework 1.1 o 2.0 Beta 2InfoPath 2003 SP1InfoPath 2003 SP1

Page 22: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

InfoPath e InfoPath e Visual StudioVisual Studio

Page 23: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

Form TemplateForm Template

Sorgenti (CS, VB)Definizione progetto (*PROJ)

File del Form Template

Progetto Visual StudioProgetto Visual Studio

Assembly (DLL and PDB)Definizione Template (XSF)

Data di default (XML)Schema (XSD)Viste (XSLT)

Form Template InfoPath (XSN)

Pubblica / Preview

Dati della form

Utente inserisce i dati nella form

.XML

Page 24: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

Gli eventiGli eventi

Open

Edit

Submit

Close

Utente

C#VB.NET

Gestione Eventi

OnLoad

OnAfterChange

OnValidate

OnBeforeChange

OnClick

Eventi

OnSubmitRequest

Altri eventi

Page 25: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

hours

Gli eventi durante l’editingGli eventi durante l’editing

status

issues items

item item

rate source

OnAfterChange(DataDOMEvent e)

Bubbling

Event HandlerXMLDOM

Page 26: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

Gli eventi durante l’editingGli eventi durante l’editing

status

issues Site

item item

rate Source

OnAfterChange(DataDOMEvent e)

Bubbling

Bubbling nasconde la Bubbling nasconde la sorgente dell’eventosorgente dell’evento

e.Site per chi ha gestito e.Site per chi ha gestito l‘eventol‘evento

e.Source dove realmente e.Source dove realmente è stato scatenato l’eventoè stato scatenato l’evento

Gli eventi arrivano 2 Gli eventi arrivano 2 volte!volte!

Usare e.OperationUsare e.Operation

Controllare “Insert”Controllare “Insert”

Event HandlerXMLDOM

Page 27: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

Gestire gli eventiGestire gli eventi

Page 28: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

Offline Submit e cachingOffline Submit e caching

Offline Submit (Offline Submit (Esempi MSDNEsempi MSDN, Blog), Blog)Submit Online: usare DataAdapterSubmit Online: usare DataAdapter

Submit Offline: usare IsolatedStorageSubmit Offline: usare IsolatedStorage

On Load: Fare submit dei dati presenti On Load: Fare submit dei dati presenti nell’ IsolatedStoragenell’ IsolatedStorage

Offline sorgenti secondarieOffline sorgenti secondarieOnline: DataAdapter verso Online: DataAdapter verso IsolatedStorageIsolatedStorage

Offline: Caricare dall’ IsolatedStorageOffline: Caricare dall’ IsolatedStorage

Page 29: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

Lavorare offlineLavorare offline

Page 30: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

ResourcesResources

VSTO Team Blogs: http://blogs.msdn.com/vsto2/http://blogs.officezealot.com/whitechapel/http://blogs.msdn.com/eric_carter/

VSTO Outlook Add-in: http://go.microsoft.com/?linkid=3064045…thru…http://go.microsoft.com/?linkid=3064049

Mads’ Blog:

http://weblogs.asp.net/mnissen

Page 31: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

Community ResourcesCommunity ResourcesMicrosoft Community ResourcesMicrosoft Community Resourceshttp://www.microsoft.com/communities/default.mspxhttp://www.microsoft.com/communities/default.mspxNon-Microsoft Community ResourcesNon-Microsoft Community Resourceshttp://www.microsoft.com/communities/related/default.mspxhttp://www.microsoft.com/communities/related/default.mspxNewsgroupsNewsgroupsConverse online with Microsoft Newsgroups, including Converse online with Microsoft Newsgroups, including WorldwideWorldwidehttp://www.microsoft.com/communities/newsgroups/default.mhttp://www.microsoft.com/communities/newsgroups/default.mspxspxUser GroupsUser GroupsMeet and learn with your peersMeet and learn with your peershttp://www.microsoft.com/communities/usergroups/default.mshttp://www.microsoft.com/communities/usergroups/default.mspxpxAttend a free chatAttend a free chathttp://www.microsoft.com/communities/chats/default.mspxhttp://www.microsoft.com/communities/chats/default.mspxAttend a free web castAttend a free web casthttp://www.microsoft.com/usa/webcasts/default.asphttp://www.microsoft.com/usa/webcasts/default.aspMost Valuable Professional (MVP)Most Valuable Professional (MVP)http://http://mvp.support.microsoft.commvp.support.microsoft.com//

Page 32: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only.MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.

Page 33: Visual Studio 2005 Tools per Office System: Supporto per Outlook e InfoPath Fabio Santini fsantini@microsoft.com La nuova versione dei Visual Studio 2005.

Paradosso del coccodrilloParadosso del coccodrilloUn coccodrillo aveva afferrato un bambino che stava Un coccodrillo aveva afferrato un bambino che stava giocando sulle rive del Nilo. La madre imploro' il giocando sulle rive del Nilo. La madre imploro' il coccodrillo di restituirglielo. "Certo" disse il coccodrillo di restituirglielo. "Certo" disse il coccodrillo. "Se sai dirmi in anticipo esattamente cio' coccodrillo. "Se sai dirmi in anticipo esattamente cio' che faro', ti restituiro' il piccolo; pero', se non che faro', ti restituiro' il piccolo; pero', se non indovinerai, lo mangero' per pranzo". "Oh" disse indovinerai, lo mangero' per pranzo". "Oh" disse la madre piangendo disperata, "tu divorerai il mio la madre piangendo disperata, "tu divorerai il mio bambino". L'astuto coccodrillo ribatte': "Non posso bambino". L'astuto coccodrillo ribatte': "Non posso ridarti il bambino, perche', se te lo rendo,faro' si' ridarti il bambino, perche', se te lo rendo,faro' si' che tu abbia detto il falso, e ti avevo garantito che se che tu abbia detto il falso, e ti avevo garantito che se tu avessi detto il falso, lo avrei divorato". "Le cose tu avessi detto il falso, lo avrei divorato". "Le cose stanno esattamente al contrario", rispose astuta la stanno esattamente al contrario", rispose astuta la madre. "Non puoi mangiare il mio bambino perche', madre. "Non puoi mangiare il mio bambino perche', se lo divori, farai si' che io abbia detto la verita' e tu se lo divori, farai si' che io abbia detto la verita' e tu avevi promesso che, se io avessi detto la verita', avevi promesso che, se io avessi detto la verita', avresti restituito il bambino. So che sei un coccodrillo avresti restituito il bambino. So che sei un coccodrillo d'onore e che mantieni la parola data".d'onore e che mantieni la parola data".

back