Serializzazione del DataSet e prestazioni di Remoting

Traduzione articoli Traduzione articoli
Identificativo articolo: 829740 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

Sommario

In questo articolo vengono illustrati ottimizzazione delle prestazioni per le classi di .NET Framework System.Data.DataSet pi¨ grande e fornisce una classe wrapper di serializzazione di esempio che Ŕ ottimizzata in modo pi¨ efficiente di serializzare e deserializzare classi DataSet pi¨ grande.

Informazioni

Quando si passa un oggetto System.Data.DataSet tra processi, .NET Framework Remoting viene utilizzata per serializzare, trasporto e per deserializzare la classe DataSet . Se si passa un DataSet della classe da un servizio Web .NET, internamente la classe di Microsoft .NET Framework System.Xml.Serialization.XMLSerializer viene utilizzata per serializzare i dati del DataSet al client. Se si passa un DataSet nuovamente da un oggetto gestito che Ŕ ospitato in COM +, la classe BinaryFormatter viene utilizzata da .NET Framework Remoting. Indipendentemente il meccanismo di servizi remoti che viene utilizzato da .NET Framework, la classe DataSet sempre converte gli interni dati XML durante la serializzazione dei dati.

La classe di DataSet che Ŕ inclusa in Microsoft .NET Framework 1.0 e .NET Framework 1.1 funziona in modo efficiente per la serializzazione piccole quantitÓ di dati (centinaia di righe) del DataSet in .NET Framework Remoting. Il meccanismo di serializzazione Ŕ inefficiente con un pi¨ grande DataSet (migliaia di righe) e comporta grandi allocazioni di memoria (di breve durata) temporaneo. Queste allocazioni di memoria di ridurre la scalabilitÓ dell'applicazione.

Nota Un'allocazione di memoria temporaneo Ŕ un'allocazione di memoria di breve durata che si verifica durante l'elaborazione di alcune sezioni di codice. Di conseguenza, durante la serializzazione, durante i servizi remoti e durante la deserializzazione di una classe DataSet , diversi oggetti gestiti sono allocati e deallocati internamente da .NET Framework Remoting per elaborare la richiesta remota. L'allocazione e deallocazione di oggetti gestiti pi¨ grandi e pi¨ grandi inserisce pressione aggiuntiva sul sistema di gestione memoria di .NET e riduce la scalabilitÓ complessiva. Ad esempio, un'applicazione che ha molte chiamate di metodo corso che generano le allocazioni di grandi quantitÓ di memoria temporaneo pu˛ eseguire esaurito la memoria prima di completare tutte le chiamate al metodo.

╚ possibile migliorare notevolmente le prestazioni di serializzazione e i servizi remoti per maggiore DataSet utilizzando un classi wrapper surrogati correttamente progettato tipo o la serializzazione. Per ulteriori informazioni sull'utilizzo di un meccanismo di surrogati o un meccanismo wrapper (o entrambi) con la classe DataSet di .NET Framework, visitare il seguente sito Web MSDN (informazioni in lingua inglese):
http://msdn.microsoft.com/msdnmag/issues/02/12/cuttingedge
Tuttavia, in questo articolo non fornisce un esempio completo di come implementare un tipo di surrogati di DataSet o una classe wrapper di serializzazione.

In questo articolo contiene una classe wrapper di serializzazione di esempio che Ŕ ottimizzata in modo pi¨ efficiente di serializzare e deserializzare pi¨ grande di DataSet . La classe riduce significativamente le allocazioni di memoria temporaneo e i servizi remoti un tipico DataSet . Le riduzioni grandi dimensioni le allocazioni di memoria temporaneo consente inoltre di migliorare i tempi end-to-end per i servizi remoti e di migliorare la scalabilitÓ quando si utilizza un DataSet di maggiori.

Nell'esempio viene fornita una classe wrapper di serializzazione denominata DataSetSurrogate . La classe DataSetSurrogate viene utilizzata come una classe wrapper per qualsiasi DataSet che si desidera remoto. Il componente server passa il DataSet che si desidera al costruttore DataSetSurrogate e quindi passa la classe DataSetSurrogate al client. Sul lato client, il metodo DataSetSurrogate.ConvertToDataSet consente di estrarre il DataSet dalla classe DataSetSurrogate .

La classe DataSetSurrogate viene contrassegnata Serializable e quindi tutti i campi nella classe DataSetSurrogate sono anche classi serializzabili. Di conseguenza, quando remoto l'oggetto DataSetSurrogate , l'infrastruttura di remoting automaticamente serializza e deserializza l'oggetto DataSetSurrogate e tutti i campi. Il vantaggio di serializzazione chiave di classe DataSetSurrogate sulla classe DataSet consiste nella che la classe di DataSetSurrogate serializza i dati in un formato binario. Serializzazione utilizzando un formato binario Ŕ pi¨ efficiente sia in memoria e CPU a un formato di serializzazione XML del DataSet esistente.

Nota Per ottimizzare i vantaggi di prestazioni di questa classe wrapper di serializzazione, utilizzo di.NET Framework System.Runtime.Serialization.Formatters.Binary.BinaryFormatter classe quando i servizi remoti. I servizi remoti utilizzando la classe .NET Framework System.Runtime.Serialization.Formatters.SOAP.SoapFormatter non sono efficienti quando si utilizza la classe DataSetSurrogate .

Il seguente file Ŕ disponibile per il download dall'Area download Microsoft:
Riduci l'immagineEspandi l'immagine
Download
Download the SurrogateSample.exe package now.Per ulteriori informazioni su come scaricare file di supporto Microsoft, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
119591Come ottenere file di supporto Microsoft dai servizi online
Microsoft analizzati questo file per individuare eventuali virus. Microsoft ha utilizzato il software antivirus pi¨ recente disponibile alla data di pubblicazione del file. Il file Ŕ archiviato in server con protezione avanzata per impedire modifiche non autorizzate al file.

Accesso ai file di esempio

Salvare il file di SurrogateSample.exe all'unitÓ C del computer. Da qui Ŕ possibile estrarre la struttura di cartelle. Presenta un file readme in ogni cartella che contiene ulteriori istruzioni.

ProprietÓ

Identificativo articolo: 829740 - Ultima modifica: mercoledý 4 agosto 2004 - Revisione: 1.4
Le informazioni in questo articolo si applicano a:
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.1
Chiavi:á
kbmt kbdownload kbinfo KB829740 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 829740
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com