in
La comunità italiana dedicata a Sviluppatori e Architetti IT delle piattaforme Windows

Progetto Corsi

Ultimo messaggio ricevuto il 13-01-2006 17.33 da devspy. 5 risposta(e).
Pagina 1 di 1 (6 elemento/i)
Ordina messaggi: Precedente Successivo
  • 10-01-2006 13.53

    Progetto Corsi

    Ciao.
    Uso visual studio 2005.
    Ho un progetto per corsi che deve gestire audio , video pdf e altro.
    Ho scomposto le varie parti del programma in interfacce in modo di avere un oggetto
    Applicazione che implemente l'interfaccia iApplicazione,contenente uno o piu oggetti che implementano l' interfaccia icorso  contenente uno o piu' oggetti che implementano l'interfaccia ipdf,ivideo e iaudio.
    Come lista contenitrice di Applicazione e corsi uso un arraylist.
    Ho scomposto in interfacce perchè voglio poter creare oggetti generici e indipendenti(ad es..con un metodo "esegui" parte un video e visualizza nello schermo un .mpg , se è un pdf  parte adobe acrobat ecc..)in modo che se devo aggiungere un altro qualsiasi tipo di documento creo una nuova interfaccia
    e la implemento in un oggetto ecc..

    Quello che voglio sapere è se è possibile serializzare questa classe in xml in modo da avere un xml pulito e definirne il "modello"(mi sembra di aver letto qualcosa del genere) dalla classe per cui ricavare le informazioni più disparate tramite  xsl ad es per gli oggetti treeview e i menu'.
    Grazie .
    Spero di aver postato nel form giusto , altrimenti scusate.
    • Log
  • 11-01-2006 10.04 In risposta a

    Re: Progetto Corsi

    ho trovatoquesto:http://www.devx.com/dotnet/Article/29720/0/page/1
    ma non capisco cos' è e lo schema e la parte riguardante esso,penso sia la strada giusta.
     devo capire anche come serializzare gli arraylist contenuti in modo da leggerne il contenuto da xsl e come rimuovere un item al loro interno(mettendo un attributo guid?perchè alcuni file potrebbero ripetersi).
    grazie

    • Log
  • 11-01-2006 12.32 In risposta a

    Re: Progetto Corsi

    questo è il codice su cui ho dei problem:

    'qui serializzo la lista con i vari documenti  di vari tipi (n so se è l'approccio giusto)
    'il tipo lo prendo dall' enum tipo della classe che implementa l'interfaccia iDocumento.
    Public Sub WriteXml(ByVal writer As XmlWriter) Implements IXmlSerializable.WriteXml
                writer.WriteStartElement("Corso")
                For Each doc As E_sapiens.interfacce.iDocumento In Lista
                    writer.WriteElementString(doc.tipo.ToString(), doc.file)
                Next
                writer.WriteEndElement()
            End Sub


    'qui non so come fare a recuperare l'arraylist con la lista completa
            Public Sub ReadXml(ByVal reader As XmlReader) Implements IXmlSerializable.ReadXml
                Dim type As XmlNodeType = reader.MoveToContent()

                End If
            End Sub

    • Log
  • 11-01-2006 15.18 In risposta a

    Re: Progetto Corsi

    Prova a studiarti il codice proposto nell'articolo Uso di ISerializable

     

    • Log
  • 12-01-2006 10.18 In risposta a

    Re: Progetto Corsi

     giuseppex wrote:
    Ciao.
    Uso visual studio 2005.
    Ho un progetto per corsi che deve gestire audio , video pdf e altro.
    Ho scomposto le varie parti del programma in interfacce in modo di avere un oggetto
    Applicazione che implemente l'interfaccia iApplicazione,contenente uno o piu oggetti che implementano l' interfaccia icorso  contenente uno o piu' oggetti che implementano l'interfaccia ipdf,ivideo e iaudio.
    Come lista contenitrice di Applicazione e corsi uso un arraylist.
    Ho scomposto in interfacce perchè voglio poter creare oggetti generici e indipendenti(ad es..con un metodo "esegui" parte un video e visualizza nello schermo un .mpg , se è un pdf  parte adobe acrobat ecc..)in modo che se devo aggiungere un altro qualsiasi tipo di documento creo una nuova interfaccia
    e la implemento in un oggetto ecc..

    Quello che voglio sapere è se è possibile serializzare questa classe in xml in modo da avere un xml pulito e definirne il "modello"(mi sembra di aver letto qualcosa del genere) dalla classe per cui ricavare le informazioni più disparate tramite  xsl ad es per gli oggetti treeview e i menu'.
    Grazie .
    Spero di aver postato nel form giusto , altrimenti scusate.

     

    Grazie Devspy,adesso ci sono riuscito.

    Ora utilizzo una classe per deserializzare/serializzare tutti i dati,e creare gli oggetti che implementano l'interfaccia idocumento che è un interfaccia generica per pdf,video e audio.

    Vorrei applicare all'xml deserializzato una trasformazione xslt per "mettere a posto" l'xml per creare la treeview solo che nel tag dei nodi ci andrei a mettere l'oggetto che implementa idocumento che ha vari metodi tra cui esegui,modifica ,carica ecc... e dopo un evento afterselect prendo l'oggetto dal tag del nodo ed eseguo semplicemente il metodo generico,se sarà un video lo riprodurra,un modifica apparira' la pagina di modifica ecc....

    Il problema è che in questo modo creo 2 volte tutti gli oggetti che implementano idocumento:una volta per la treeview e una volta per la classe principale dove serializzo/deserializzo il tutto.

    Ho pensato di creare un attributo guid nell'oggetto che implementa idocumento e di serializzarlo.e di andare a "pescare" dalla classe principale l'oggetto che implementa idocumento che ha quel guid (e di mettere ad esempio nel tag del nodo della treeview il guid)utilizzando come contenitore un hashtable che ha come key il guid e come valore l'oggetto.

    Inoltre sarebbe anche piu' comodo per la modifica e la cancellazione.

    Un altra idea sarebbe quella di implementare le trasformazioni xslt per le trasformazioni nel metodo xmlread ,sarebbe molto piu' semplice cosi' leggere i dati in porzioni(tutti i video,tutti gli audio ecc...)e caricare la treeview ,ma non so come fare ad ottenere tutto l'xml , forse trasformarlo in una stringa?ma come

    Ho delle perplessità , puo' essere il metodo giusto?

    grazie.

    • Log
  • 13-01-2006 17.33 In risposta a

    Re: Progetto Corsi

    La prima soluzione mi sembra buona. E' una consuetudine piuttosto diffusa quella di indicizzare gli elementi di una collezione tramite un oggetto HashTable. Siamo abituati, ad esempio, ad utilizzare le collezioni chiave-valore con gli oggetti di supporto ai dati (vedi DataTable.Rows["chiave"]).

    La seconda, più raffinata, è di certo più complessa a meno che tu non sia già pratico di trasformazioni XLST. Qualche spunto lo puoi trovare su http://www.w3.org/TR/xslt ma il metodo migliore è sempre quello di leggerti un buon manuale sull'argomento.

    • Log
Pagina 1 di 1 (6 elemento/i)
Prelevato da http://www.devspy.com/forums/p/4041/4302.aspx
DevSpy.com 6.0 © 2001-2008 - Alcuni Diritti Riservati
Salvo diversa indicazione, tutti i contenuti sono pubblicati sotto licenza "Creative Commons Attribution-Share Alike 3.0"