La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Sviluppare Smart Document di Office 2003 Introduzione Luca Regnicoli MCSD.NET MCSE+I MCDBA MCT

Presentazioni simili


Presentazione sul tema: "Sviluppare Smart Document di Office 2003 Introduzione Luca Regnicoli MCSD.NET MCSE+I MCDBA MCT"— Transcript della presentazione:

1 www.devleap.com Sviluppare Smart Document di Office 2003 Introduzione Luca Regnicoli MCSD.NET MCSE+I MCDBA MCT luka@devleap.it

2 www.devleap.com Chi siamo www.devleap.itwww.devleap.it Un gruppo di 5 personeUn gruppo di 5 persone Studiare a fondo le tecnologieStudiare a fondo le tecnologie Capire il behind the scenesCapire il behind the scenes Implementare soluzioni realiImplementare soluzioni reali Confrontarsi con le problematiche realiConfrontarsi con le problematiche reali Sperimentare nuove ideeSperimentare nuove idee Facciamo Corsi, Conferenze, TrainingFacciamo Corsi, Conferenze, Training Scriviamo libriScriviamo libri http://www.devleap.it/fullcontacthttp://www.devleap.it/fullcontact

3 www.devleap.com Agenda Cosè una soluzione SmartDocumentCosè una soluzione SmartDocument Requisiti di una soluzione SmartDocumentRequisiti di una soluzione SmartDocument Architettura di SmartDocumentArchitettura di SmartDocument Assembly e ISmartDocumentAssembly e ISmartDocument ManifestManifest SchemaSchema SecuritySecurity

4 www.devleap.com Smart Document Basics Parte I

5 www.devleap.com Che cosè una soluzione SmartDocument? Soluzione che fornisce informazioni contestuali ed azioni allinterno del task paneSoluzione che fornisce informazioni contestuali ed azioni allinterno del task pane Scenari di utilizzoScenari di utilizzo Compilazione di unofferta commercialeCompilazione di unofferta commerciale Generazione di un documento contrattualeGenerazione di un documento contrattuale Gestione di un budget finanziarioGestione di un budget finanziario

6 www.devleap.com Requisiti di una soluzione SmartDocument PC ClientPC Client Office System 2003 ProfessionalOffice System 2003 Professional oppure versioni stand-alone di Word o Excel 2003oppure versioni stand-alone di Word o Excel 2003 Se utilizziamo.NETSe utilizziamo.NET.NET Framework 1.1.NET Framework 1.1 PC SviluppoPC Sviluppo Office System 2003 ProfessionalOffice System 2003 Professional Visual Studio.NET 2003Visual Studio.NET 2003 Oppure un ambiente di sviluppo COMOppure un ambiente di sviluppo COM Microsoft Office SmartDocument SDKMicrosoft Office SmartDocument SDK Non è fondamentale, ma è un utile contenitore di sample, tool e documentazioneNon è fondamentale, ma è un utile contenitore di sample, tool e documentazione

7 www.devleap.com Architettura Smart Document XML expansion pack DLL Assembly Office document Schema file Manifest file Altri assemblies

8 www.devleap.com DLL / Assembly Deve contenere una classe che implementi linterfaccia COM ISmartDocumentDeve contenere una classe che implementi linterfaccia COM ISmartDocument Può essere scritto con qualsiasi linguaggio che sia in grado di implementare un interfaccia COMPuò essere scritto con qualsiasi linguaggio che sia in grado di implementare un interfaccia COM Visual Basic 6.0Visual Basic 6.0 Visual C++ 6.0Visual C++ 6.0 DelphiDelphi.NET (Interop).NET (Interop)

9 www.devleap.com Interfaccia ISmartDocument ProprietàProprietà SmartDocXmlTypeCountSmartDocXmlTypeCount SmartDocXmlTypeCaptionSmartDocXmlTypeCaption SmartDocXmlTypeNameSmartDocXmlTypeName ControlCountControlCount ControlIDControlID ControlNameFromIDControlNameFromID ControlCaptionFromIDControlCaptionFromID ControlTypeFromIDControlTypeFromID MetodiMetodi SmartDocInitialize Populate On Change ImageClick InvokeControl

10 www.devleap.com ISmartDocument Non posso invocare direttamente i metodi o le proprietàNon posso invocare direttamente i metodi o le proprietà Devo attendere che il runtime passi il controllo ai nostri metodi/proprietàDevo attendere che il runtime passi il controllo ai nostri metodi/proprietà ControlCountControlCount PopulateListOrComboContentPopulateListOrComboContent Non pilotiamo direttamente i controlliNon pilotiamo direttamente i controlli NO textBox1.Text = LucaNO textBox1.Text = Luca NO string s = comboBox1.SelectedItem.TextNO string s = comboBox1.SelectedItem.Text Non possiamo gestire esplicitamente eventi sui controlliNon possiamo gestire esplicitamente eventi sui controlli NO private void button1_Click (object o, EventArgs e)NO private void button1_Click (object o, EventArgs e)

11 www.devleap.com Terminologia Tipi XmlTipi Xml Contenitori di controlliContenitori di controlli Definiti nelle proprietà SmartDocXmlType*Definiti nelle proprietà SmartDocXmlType* Controlli Smart DocumentControlli Smart Document Controlli UI definiti allinterno di tipi XMLControlli UI definiti allinterno di tipi XML Definiti nelle proprietà Control*Definiti nelle proprietà Control* Devono avere ID unico allinterno dellintero task paneDevono avere ID unico allinterno dellintero task pane

12 www.devleap.com Creare Tipi Xml SmartDocXmlCountSmartDocXmlCount 1 o n1 o n SmartDocXmlNameSmartDocXmlName NomeSchema#nomeElementoDelloSchemaNomeSchema#nomeElementoDelloSchema Per creare un task pane persistentPer creare un task pane persistent #actionPertainsToEntireSchema#actionPertainsToEntireSchema SmartDocXmlCaptionSmartDocXmlCaption Esempio di SmartDocumentEsempio di SmartDocument

13 www.devleap.com Creare controlli Smart Document ControlCountControlCount 2 ControlIDControlID Come associare lID al controlloCome associare lID al controllo Utilizzare ControlIndex passatoci dal runtimeUtilizzare ControlIndex passatoci dal runtime ControlTypeFromIDControlTypeFromID Il controllo con ID = 1 è una labelIl controllo con ID = 1 è una label Il controllo con ID = 2 è un pulsanteIl controllo con ID = 2 è un pulsante

14 www.devleap.com Controlli Smart Document ImagesImages HyperlinksHyperlinks Check boxesCheck boxes List boxesList boxes Combo boxesCombo boxes Radio buttonsRadio buttons Text boxesText boxes LabelsLabels SeparatorsSeparators ActiveX controlsActiveX controls Document fragmentsDocument fragments

15 www.devleap.com Gestire click InvokeControlInvokeControl switch (ControlID) { case 2: MessageBox.Show (Pulsante cliccato); MessageBox.Show (Pulsante cliccato);......}

16 www.devleap.com <manifest xmlns= "http://schemas.microsoft.com/office"http://schemas.microsoft.com/office /xmlexpansionpacks/2003">/xmlexpansionpacks/2003"></manifest> <manifest xmlns= "http://schemas.microsoft.com/office"http://schemas.microsoft.com/office /xmlexpansionpacks/2003">/xmlexpansionpacks/2003"></manifest> Struttura del file Manifest <manifest xmlns= "http://schemas.microsoft.com/office"http://schemas.microsoft.com/office /xmlexpansionpacks/2003">/xmlexpansionpacks/2003"> descrizione del manifest <solution> descrizione della solution </solution></manifest> <manifest xmlns= "http://schemas.microsoft.com/office"http://schemas.microsoft.com/office /xmlexpansionpacks/2003">/xmlexpansionpacks/2003"> descrizione del manifest <solution> descrizione della solution </solution></manifest>

17 www.devleap.com Manifest - Elementi file <solution>... solutionActionHandler bin\Codice.dll Libreria.ClasseAzione solutionActionHandler bin\Codice.dll Libreria.ClasseAzione </solution><solution>... solutionActionHandler bin\Codice.dll Libreria.ClasseAzione solutionActionHandler bin\Codice.dll Libreria.ClasseAzione </solution>

18 www.devleap.com Manifest - Elementi file <solution>... schema bin\Schema.xsd schema bin\Schema.xsd </solution><solution>... schema bin\Schema.xsd schema bin\Schema.xsd </solution>

19 www.devleap.com Schema <xs:schema xmlns=urn:Devleap.SmartDocuments.Demo" xmlns:xs="http://www.w3.org/2001/XMLSchema">xmlns:xs="http://www.w3.org/2001/XMLSchema">... </xs:element>...</xs:schema> <xs:schema xmlns=urn:Devleap.SmartDocuments.Demo" xmlns:xs="http://www.w3.org/2001/XMLSchema">xmlns:xs="http://www.w3.org/2001/XMLSchema">... </xs:element>...</xs:schema>

20 www.devleap.com Security XML expansion pack securityXML expansion pack security Manifest può essere caricato solo se è stato firmato con un certificato digitaleManifest può essere caricato solo se è stato firmato con un certificato digitale XMLSign.exe [SDK]XMLSign.exe [SDK] DisableXMLExpansionPackSecurity.regDisableXMLExpansionPackSecurity.reg Solo sulle macchine di sviluppo!Solo sulle macchine di sviluppo! Se utilizziamo.NETSe utilizziamo.NET Office si fida di mscoree.dllOffice si fida di mscoree.dll Ma non si fida del nostro assemblyMa non si fida del nostro assembly Lassembly deve avere permission di FullTrustLassembly deve avere permission di FullTrust

21 www.devleap.com Collegare Manifest al documento In Word 2003In Word 2003 Menu Tools - Templates and Add-insMenu Tools - Templates and Add-ins In Excel 2003In Excel 2003 Menu Data - XML - XML Expansion PacksMenu Data - XML - XML Expansion Packs

22 www.devleap.com Sviluppo.NET Utilizzare i Primary Interop Assembly per OfficeUtilizzare i Primary Interop Assembly per Office Microsoft.Office.Interop.SmartTag.dllMicrosoft.Office.Interop.SmartTag.dll ISmartDocumentISmartDocument Microsoft.Office.Interop.ExcelMicrosoft.Office.Interop.Excel Microsoft.Office.Interop.WordMicrosoft.Office.Interop.Word

23 www.devleap.com Primary Interop Assembly Come vedere se sono installatiCome vedere se sono installati Global Assembly CacheGlobal Assembly Cache

24 www.devleap.com Primary Interop Assembly Come installare Microsoft.Office.Interop.SmartTag.dllCome installare Microsoft.Office.Interop.SmartTag.dll

25 www.devleap.com Primary Interop Assembly Come installare Microsoft.Office.Interop.Word.dllCome installare Microsoft.Office.Interop.Word.dll

26 www.devleap.com Primary Interop Assembly Come vedere se li stiamo referenziando correttamente da Visual Studio.NETCome vedere se li stiamo referenziando correttamente da Visual Studio.NET

27 www.devleap.com Ricapitolando... Step By Step Aggiungere la reference COM a Microsoft Smart Tag 2.0 Type LibraryAggiungere la reference COM a Microsoft Smart Tag 2.0 Type Library Implementare linterfaccia ISmartDocumentImplementare linterfaccia ISmartDocument Definire il namespace di baseDefinire il namespace di base Definire il tipo XML del documento #actionPertainsToEntireSchemaDefinire il tipo XML del documento #actionPertainsToEntireSchema Implementare le proprietà dellinterfaccia ISmartDocumentImplementare le proprietà dellinterfaccia ISmartDocument Caption dei controlliCaption dei controlli Numero di controlliNumero di controlli Id dei controlliId dei controlli Tipo di controlliTipo di controlli Nome dei controlliNome dei controlli Controllare le azioni dei controlli quali buttonControllare le azioni dei controlli quali button Impostare la caption del task paneImpostare la caption del task pane Numero di tipi xml del task paneNumero di tipi xml del task pane Nome dei tipi xml del task paneNome dei tipi xml del task pane Creare lo schema xmlCreare lo schema xml Creare il manifestCreare il manifest Configurare la Code Access SecurityConfigurare la Code Access Security Lassembly deve avere diritto di FullTrustLassembly deve avere diritto di FullTrust Aggiungere lxml expansion pack al documentoAggiungere lxml expansion pack al documento

28 www.devleap.com Demo SmartDocument Finalmente del codice....

29 www.devleap.com Altre Informazioni Dove posso ottenere maggiori informazioniDove posso ottenere maggiori informazioni http://www.devleap.it/http://www.devleap.it/ http://msdn.microsoft.com/officehttp://msdn.microsoft.com/office http://www.microsoft.com/italy/msdn/http://www.microsoft.com/italy/msdn/ Developer resourcesDeveloper resources Microsoft Visual Studio.NETMicrosoft Visual Studio.NET Microsoft.NET Framework SDKMicrosoft.NET Framework SDK Microsoft Developer NetworkMicrosoft Developer Network Microsoft Office 2003 Smart Document SDKMicrosoft Office 2003 Smart Document SDK

30 www.devleap.com Sviluppare Smart Document di Office 2003 I vostri feedback sono importanti ScriveteciScriveteci Grazie della partecipazione –A presto –info@DevLeap.it


Scaricare ppt "Sviluppare Smart Document di Office 2003 Introduzione Luca Regnicoli MCSD.NET MCSE+I MCDBA MCT"

Presentazioni simili


Annunci Google