Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

Hasonló dokumentumok
Sorosítás (szerializáció) és helyreállítás. 1. Bináris sorosítás és helyreállítás Szükséges névterek Attribútumok. 1.3.

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

Se S r e ial a iza z t a ion o n (in n Ja J v a a v ) a Szerializáció

C#, OOP. Osztályok tervezése C#-ban

Bánsághi Anna

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

Objektumorientált programozás C# nyelven

Globalizáció, Lokalizáció

Generikus Típusok, Kollekciók

OOP: Java 8.Gy: Abstract osztályok, interfészek

Hálózatkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés / 20

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

A Java Persistence API PersistenceAPI / 3

Enterprise JavaBeans 1.4 platform (EJB 2.0)

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Pénzügyi algoritmusok

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

OOP #14 (referencia-elv)

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

Nyilvántartási Rendszer

OOP és UML Áttekintés

ANDROID ALKALMAZÁSFEJLESZTÉS

Osztályok. 4. gyakorlat

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia

Programozási nyelvek Java

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

C++ programozási nyelv

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Abstract osztályok és interface-ek. 7-dik gyakorlat

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Perzisztencia. ANTAL Margit. Sapientia - EMTE. ANTAL Margit Java technológiák 11. előadás Perzisztencia

Származtatási mechanizmus a C++ nyelvben

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Kalapácsvetés 2016 szöveges

Programozási technológia

Objektumorientált programozás C# nyelven

Kommunikáció. Folyamatok közötti kommunikáció. Minden elosztott rendszer alapja

4. Öröklődés. Programozás II

Szathmáry László Debreceni Egyetem Informatikai Kar

Java programozási nyelv 5. rész Osztályok III.

Bánsághi Anna

Programozási nyelvek Java

XML alapú adatbázis-kezelés. (Katona Endre diái alapján)

Programozási nyelvek II.: JAVA

JNDI - alapok. Java Naming and Directory Interface

Programozás I. Első ZH segédlet

Webes alkalmazások fejlesztése 12. fejezet. Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Java programozási nyelv 10. rész Input/output kezelés

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

Java programozási nyelv 4. rész Osztályok II.

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

BME MOGI Gépészeti informatika 8.

JAVA PROGRAMOZÁS 2.ELŐADÁS

C# osztályok. Krizsán Zoltán

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

Programozási technológia

Session-replikációs alternatívák WebLogic környezetben. Alerant Informatikai Zrt szeptember 27.

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

Osztályszintű elérés, kivételkezelés, fájlkezelés

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

ANDROID ALKALMAZÁSFEJLESZTÉS

Alkalmazott Modul III 6. előadás. Objektumorientált programozás: öröklődés és polimorfizmus

és az instanceof operátor

STL gyakorlat C++ Izsó Tamás május 9. Izsó Tamás STL gyakorlat/ 1

Junior Java Képzés. Tematika

Kompozit alkalmazások fejlesztése. IBM WebSphere Portal Server

Segédanyag: Java alkalmazások gyakorlat

.NET Microsoft.Net Framework

II. Programozási technológiák

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

MVC. Model View Controller

Osztály és objektum fogalma

Foglalkozási napló a 20 /20. tanévre

Unit Teszt. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Unit Teszt / 22

Objektumok inicializálása

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

QBE Édes Otthon lakásbiztosítás tarifáló webservice. Fejlesztői dokumentáció 1.0.2

OOP: Java 5.Gy: Osztály, referencia, konstruktor

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Már megismert fogalmak áttekintése

Elemi Alkalmazások Fejlesztése II.

Események C#-ban Krizsán Zoltán iit

Bevezető. Servlet alapgondolatok

Szoftvertechnológia alapjai Java előadások

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Objektumorientált programozás C# nyelven

JEE tutorial. Zsíros Levente, 2012

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

Átírás:

Szerializáció Tóth Zsolt Miskolci Egyetem 2014 Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 1 / 22

Tartalomjegyzék 1 Szerializációs Alapfogalmak 2 Szerializációs Megoldások Object Szerializáció XML Szerializáció Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 2 / 22

Áttekintés Osztály Definíció Megadja: Tulajdonságokat Viselkedéseket Kapcsolatokat Osztályokkal (Öröklődés, tartalmazás) Külvilággal (Interface) Egyetlen előfordulás Fájlrendszeren tárolódik Objektum Egyedi Entitás (oid) Típusa van (Osztály) Saját állapot Memóriát foglal Memóriában tárolódik Megszűnik, értéke elvész Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 3 / 22

Motiváció Aktuális állapot megőrzése Mentés Aktuális állapot Összesítő adatok Biztonság Kommunikáció Alkalmazások között Hálózaton keresztül Adatbázist nem tárgyaljuk Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 4 / 22

Alternatívák Mentés Saját adatformátum Tömörebb (lehet) Költséges Módosítás? Adatbázis Szerver Szaktudás Hálózat SQLite Kommunikáció Saját fájlformátum Hatékony Költséges Módosítás? Saját protokoll Költséges Bonyolult Hibalehetőségek Tűzfalak stb. Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 5 / 22

Szerializáció technika Hatékony Általános Egyszerű.Net Framework része Számos formátum Bináris XML SOAP Szerializálható elemek Egyes objektumok Egyszerű adattagok Tömbök Kollekciók Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 6 / 22

Szerializáció Eljárás Objektum -> Byte Objektum -> Text Adott API metódusok Egyszerű konverzió Fájlműveletek Megkötések [Serializable] Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 7 / 22

Deszerializáció Eljárás Byte -> Objektum Text -> Objektum Adott API metódusok cast olás Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 8 / 22

Tartalomjegyzék 1 Szerializációs Alapfogalmak 2 Szerializációs Megoldások Object Szerializáció XML Szerializáció Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 9 / 22

Objektum Szerializáció Object -> Byte Byte -> Object Számos formátum Bináris JSON SOAP [Serializable] [NonSerialized] SerializationException using System; [Serializable] class Person{... } Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 10 / 22

IFormatter System.Runtime.Serialization Interface Szerializált objektumok formázása. void Serialize( Stream serializationstream, Object graph); Object Deserialize( Stream serializationstream); Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 11 / 22

BinaryFormatter System.Runtime.Serialization.Formatters.Binary Bináris formázás Object -> Byte Egyszerű [ Serializable ] attribútum Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 12 / 22

Öröklődés Osztályok közötti hierarchia Kiterjesztés Hatással van a szerializációra Őst is kell szerializálni [Serializable] class C1 {...} [Serializable] class C2 : C1 {...} Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 13 / 22

Példa using System; [Serializable] class Person { private string _name; private double _salary; } public Person(string name, double salary) {...} public override string ToString() {...} Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 14 / 22

Serialization Példa Person p = new Person("John Doe",100); Stream outputstream = new FileStream(BinFile,FileMode.Create); BinaryFormatter bf = new BinaryFormatter(); //Serializaiton bf.serialize(outputstream,p); outputstream.close(); //Deserializtaion Stream inputstream = File.OpenRead(BinFile); p = (Person) bf.deserialize(inputstream); outputstream.close(); Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 15 / 22

Tartalomjegyzék 1 Szerializációs Alapfogalmak 2 Szerializációs Megoldások Object Szerializáció XML Szerializáció Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 16 / 22

XML Adattárolás extensible Markup Language Jelölő nyelv (HTML) Szöveges állomány Adattárolás Hierarchikus adatstruktúra Gépi feldolgozásra Elterjedt XHTML Beállítások tárolása Android SOAP... Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 17 / 22

XML Szerializáció System.Xml.Serialization XmlSerializer osztály Nyilvános jelzőket igényel Üres konstruktor private adattag public Propery Nem kell [Serializable] Számos attribútum: XmlElement XmlRoot XmlArray XmlArrayItem Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 18 / 22

XmlSerializer Osztály XML szerializálásért felel XmlSerializer(Type) typeof operátor Serialize(Stream,Object) Deserialize(Stream) Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 19 / 22

Példa public class Person { private int _age; private string _name; public string Name { get; set; } public double Salary { get; set; } } public Person() {} public Person(string name, double salary,int age) {...} Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 20 / 22

Példa Person p = new Person("John Doe",100,25); XmlSerializer serializer = new XmlSerializer(typeof(Person)); var file = new FileInfo("person.xml"); //serialization Stream outputstream = file.openwrite(); serializer.serialize(outputstream,p); outputstream.close(); //deserialization Stream inputstream = file.openread(); p = (Person) serializer.deserialize(inputstream); inputstream.close(); Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 21 / 22

Példa <?xml version="1.0"?> <Person xmlns:xsi= "http://www.w3.org/2001/xmlschema-instance" xmlns:xsd= "http://www.w3.org/2001/xmlschema"> <Name>John Doe</Name> <Salary>100</Salary> </Person> Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 22 / 22