Serijalizacija u.net okruženju

Size: px
Start display at page:

Download "Serijalizacija u.net okruženju"

Transcription

1 INFOTEH-JAHORINA Vol. 11, March Serijalizacija u.net okruženju Stefan Tešanović, Željko Gavrić studenti prvog ciklusa studija Fakultet za informacione tehnologije, Slobomir P Univerzitet Doboj, BIH stefan.tesanovic@fit.spu.ba, zeljko.gavric@fit.spu.ba Sadržaj U ovom radu prikazan je način serijalizacije i deserijalizacije podataka u.net okruženju, korištenje XML i prilagođene serijalizacije. U uvodu su navedene oblasti primjene te spomenute tehnike i vrste izlaznih podataka serijalizacije. U dijelu rada koji se odnosi na serijalizaciju podataka, opisani su procesi serijalizacije i deserijalizacije objekata, kreiranja klasa koje mogu biti serijalizovane, odabira formata serijalizacije i korištenja SOAP formatera. U dijelu koji se odnosi na XML serijalizaciju, objašnjeno je zašto i kako koristiti XML serijalizaciju i deserijalizaciju, kako se prilagoditi XML shemi i kako serijalizaovati DataSet. Na kraju rada objašnjena je prilagođena serijalizacija, kako je implementirati i odgovoriti na događaje serijalizacije te kako kreirati prilagođeni formater. Ključne riječi.net; C#; Serijalizacija; Deserijalizacija; XML; Binarni podaci; Formater; I. UVOD Mnoge aplikacije trebaju sačuvati ili prenijeti objekte. Kako bi ove zadatke obavili najjednostavnije moguće,.net okruženje uključuje nekoliko tehnika serijalizacije. Ove tehnike pretvaraju objekate u binarne podatke, SOAP, ili XML dokumente koji se mogu lako sačuvati, prenositi i preuzeti. Ovaj rad opisuje kako implementirati serijalizaciju koristeći alate ugrađene u.net okruženje i kako implementirati serijalizaciju u susret prilagođenim zahtjevima. II. SERIJALIZACIJA OBJEKATA A. Šta je serijalizacija Kada se stvori objekat u aplikaciji u.net okruženju, vjerojatno se nikad ne razmišlja o tome kako su podaci pohranjeni u memoriji. Ne treba razmišljati -.NET okruženje se brine o tome. Međutim, ako se želi sačuvati sadržaj objekata u datoteku, poslati objekat drugom procesu ili prenositi objekat preko mreže, mora se razmišljati o tome kako je objekat predstavljen, jer će ga trebati pretvoriti u drugi format. Ova pretvorba se naziva serijalizacija. Serialization, implementirana u prostoru imena System.Runtime.Serialization, je proces serijalizacije i deserijalizacije objekata, tako da oni mogu biti pohranjeni ili prenošeni, a kasnije ponovo kreirani. Serijalizacija je proces pretvaranja objekata u linearni niz bajtova koji mogu biti pohranjeni ili prenošeni. Deserijalizacija je proces pretvaranja prethodno serijalizovanog niza bajtova u objekat. Uglavnom, ako se želi sačuvati objekat (ili više objekata) u datoteku za kasnije pretraživanje, pohranjuje se izlaz serijalizacije. Slijedeći put kada se žele pročitati objekti, poziva se metoda deserijalizacije, a objekat je kreiran ponovo tačno onako kakav je i ranije bio. Isto tako, ako se želi poslati objekat aplikaciji u izvršavanju na drugom računaru, uspostavi se mrežna konekcija, serijalizuje objekat u tok, a zatim deserijalizuje objekat na udaljenoj aplikaciji. Teleportacija u naučnoj fantastici je dobar primjer serijalizacije. B. Kako serijalizovati objekat Na apstraktnom nivou, koraci za serijalizaciju objekata su slijedeći: Napraviti objekat toka koji će čuvati izlaz serijalizacije. Napraviti BinaryFormatter objekat (nalazi se u System.Runtime.Serialization.Formatters.Binary) Pozvati BinaryFormatter.Serialize metodu da bi serijalizovali objekat i ispisati rezultat u tok. Na nivou razvoja, serijalizacija se može implementirati sa vrlo malo kôda. Ako treba sačuvati samo jednu riječ u datoteku, ne bi trebalo koristiti serijalizaciju, može se jednostavno upisati riječ direktno u tekstualnu datoteku. Serijalizacija postaje korisna kada se čuvaju složenije informacije, kao što su trenutni datum i vrijeme. Kao što slijedeći kôd pokazuje, serijalizacija složenih objekata je jednostavna kao serijalizacija riječi: // Kreira fajl da čuva podatke u njega FileStream fs = new FileStream("SerializedDate.Data", FileMode.Create); // Kreira BinaryFormatter objekat da izvrši serijalizaciju BinaryFormatter bf = new BinaryFormatter(); // Koristi BinaryFormatter objekat da serijalizuje podatke // u fajl bf.serialize(fs, System.DateTime.Now); C. Kako deserijalizovati objekat Deserijalizacija objekata omogućuje da se stvori novi objekat na temelju sačuvanih podataka. U osnovi, deserijalizacija vraća sačuvani objekat. Na apstraktnom nivou, koraci za deserijalizaciju objekata su slijedeći:

2 Napraviti tok objekat da čita serijalizovani izlaz. Napraviti objekat tipa BinaryFormatter. Napraviti novi objekat za čuvanje deserijalizovanih podataka. Pozvati BinaryFormatter.Deserialize metodu da deserijalizuje objekat, i prevesti ga u ispravan tip. Na nivou kôda, korake za deserijalizaciju objekata je lako implementirati. Slijedeća konzolna aplikacija, koja zahtijeva System.IO, System.Runtime.Serialization.Formatters.Binary, kao i System.Runtime.Serialization prostore imena, pokazuje kako čitati i prikazivati serijalizovanu podatke spremljene u ranijim primjerima. Slijedeći kôd prikazuje dan u sedmici i vrijeme sačuvane od strane prethodnog kôda: // Otvara fajl iz koga čita podatke FileStream fs = new FileStream("SerializedDate.Data", FileMode.Open); // Kreira BinaryFormatter objekat da izvrši deserijalizaciju BinaryFormatter bf = new BinaryFormatter(); // Kreira objekat da sačuva deserijalizovane podatke DateTime previoustime = new DateTime(); // Koristi BinaryFormatter objekat da deserijalizuje // podatke iz fajla previoustime = (DateTime)bf.Deserialize(fs); // Prikazuje deserijalizovane podatke Console.WriteLine("Day: " + previoustime.dayofweek + ", Time: " + previoustime.timeofday.tostring()); Kao što ovi kôdovi pokazuju, čuvanje i primanje objekata zahtijeva samo nekoliko linija kôda, bez obzira koliko je objekat složen (uz pretpostavku da objekat podržava serijalizaciju). D. Kako kreirati klase koje mogu biti serijalizovane Mogu se napraviti prilagođene klase za serijalizaciju i deserijalizaciju dodavanjem atributa Serializable klasi. To je važno jer omogućava korištenje te klase za lako čuvanje ili prenos instance klase. Čak i ako serijalizacija nije odmah potrebna, dobra je praksa omogućiti je za buduću upotrebu. Ako je zadano rukovanje serijalizacijom zadovoljavajuće, nijedan drugi kôd osim atributa Serializable nije potreban. Kada je klasa serijalizovana, izvršno okruženje serijalizuje sve članove, uključujući i privatne članove. Serijalizacija te klase se može kontrolisati kako bi se poboljšala efikasnost iste ili kako bi se izašlo u susret prilagođenim zahtjevima. E. Odabir formata serijalizacije.net okruženje sadrži dvije klase za oblikovanje serijalizovanih podataka u System.Runtime.Serialization prostoru imena, od kojih oba implementiraju IRemotingFormatter interfejs: BinaryFormatter - ovaj formater je najefikasniji način serijalizacije objekata koji će biti pročitani samo u aplikacijama baziranim na.net okruženju. SoapFormatter - ovaj XML bazirani formater je najpouzdaniji način za serijalizaciju objekata koji će se prenositi preko mreže ili čitati od strane aplikacija koje nisu bazirane na.net okruženju. Objekti serijalizovani sa SoapFormatter-om imaju veću vjerojatnost da uspješno prođu zaštitni zid nego oni formatirani sa BinaryFormatter-om. Ukratko, trebalo bi odabrati BinaryFormatter samo ako se zna da će svi klijenti koji otvaraju serijalizovane podatke biti aplikacije iz.net okruženja. Prema tome, ako se čuvaju objekti koji bi kasnije trebali biti pročitani aplikacijom sa diska, BinaryFormatter je savršen. SoapFormatter se koristi kada druge aplikacije možda trebaju pročitati serijalizovane podatke i kada se šalju podaci preko mreže. SoapFormatter takođe radi pouzdano u situacijama u kojima se može izabrati BinaryFormatter; nedostatak je da serijalizovani objekat može zauzeti tri do četiri puta više prostora. Iako SoapFormatter formatira podatke pomoću XML-a, prvenstveno je namijenjen da se koristi od strane SOAP Web servisa. F. Kako koristiti SoapFormatter Da bi se koristio SoapFormatter, dodaje se referenca na System.Runtime.Serijalization.Formatters.Soap.dll u projekat. Zatim se napiše kôd tačno onako kao kad bi se koristio BinaryFormatter, ali se zamijeni BinaryFormatter klasa sa SoapFormatter klasom. Iako je pisanje kôda za BinaryFormatter i SoapFormatter vrlo slično, serijalizovani podaci su vrlo različiti. Slijedeći primjer je objekat sa tri člana serijalizovanim sa SoapFormatter koji je malo uređen radi čitljivosti: <SOAP-ENV:Envelope xmlns:xsi=" XMLSchema-instance"> <SOAP-ENV:Body> <a1:shoppingcartitem id="ref-1"> <productid>100</productid> <price>10.25</price> <quantity>2</quantity> </a1:shoppingcartitem> </SOAP-ENV:Body> </SOAP-ENV:Envelope> III. XML SERIJALIZACIJA A. Zašto koristiti XML serijalizaciju XML je standardizovani, tekst-bazirani format dokumenata za čuvanje aplikacijski-čitljivih podataka. Baš kao što HTML

3 omogućuje tekst-bazirani standard za formatiranje svima čitljivih dokumenata, XML omogućuje standard koji se može lako obrađivati računarima. XML se može koristiti za čuvanje bilo koje vrste podataka, uključujući dokumente, slike, muziku, binarne datoteke i podatke baze podataka..net okruženje sadrži nekoliko biblioteka za čitanje i upis XML datoteka, uključujući System.Xml.Serialization prostor imena koji pruža metode za konverziju objekata, uključujući i one bazirane na prilagođenim klasama, u i iz XML datoteke. Sa XML serijalizacijom, može se upisati gotovo bilo koji objekat u tekstualnu datoteku za kasnije pronalaženje sa samo nekoliko linija kôda. Isto tako, može se koristiti XML serijalizacija za prenos objekata između računara putem Web usluga, čak i ako se na udaljenom računalu ne koristi.net okruženje. XML serijalizacija se koristi kada je potrebno razmijeniti objekat s aplikacijom koja možda nije bazirana na.net okruženju, a ne treba serijalizovati nikakve privatne članove. XML serijalizacija pruža slijedeće prednosti nad standardnom serijalizacijom: Veća interoperabilnost - XML je tekstualno bazirani standard datoteka, sva moderna razvojna okruženja uključuju biblioteke za obradu XML datoteka. Prema tome, objekat koji je serijalizovan pomoću XML-a može biti lako obrađen od strane aplikacija pisanih za drugačiji operativni sistem i u različitim razvojnim okruženjima. Više pogodno administratoru - objekti serijalizovani pomoću XML-a se mogu pregledati i urediti pomoću bilo koje aplikacije za uređivanje teksta, uključujući i Notepad. Ako su čuvani objekte u datoteke, to daje administratorima mogućnost pregledanja i uređivanje XML datoteka. Ovo može biti korisno za prilagođavanje zahtjeva, rješavanje problema i razvoj novih aplikacija koje interoperabiluju sa postojećom aplikacijom. Bolja kompatibilnost unaprijed - Objekti serijalizovani pomoću XML-a su samoopisujući i lako obradivi. Prema tome, kada dođe vrijeme za zamjenu postojeće aplikacije, nova aplikacija će imati manje vrijeme obrade serijalizovanog objekta ako se koristiti XML. Osim toga, XML serijalizacija se mora koristiti kada god je potrebno usklađivanje s određenom XML shemom ili kontrolisanje kako je objekat kôdiran. Međutim, XML se ne može koristiti za svaku situaciju. Naime, XML serijalizacija ima slijedeća ograničenja: XML serijalizacija može serijalizovati samo javne podatke. Ne mogu se serijalizovati privatni podaci. Ne može serijalizovati povezane objekte, XML serijalizacija se može koristiti samo na pojedinačnim objektima. B. Kako koristiti XML za serijalizaciju objekata Na apstraktnom nivou, koraci za serijalizaciju objekata u XML-u su slijedeći: Napraviti tok, TextWriter ili XmlWriter objekat da čuva serijalizovani izlaz. Napraviti XmlSerializer objekat pretvarajući ga u tip objekta koji se planira serijalizovati. Pozvati XmlSerializer.Serialize metodu da serijalizuje objekat i ispiše izlazne rezultate na tok. Na nivou kôda, koraci su slični standardnoj serijalizaciji. Slijedeća aplikacija koja zahtijeva System.Xml.Serialization i System.IO prostor imena, pokazuje jednostavnost XML serijalizacije: // Kreira fajl da čuva podatke u njega FileStream fs = new FileStream("SerializedDate.XML", FileMode.Create); // Kreira XmlSerializer objekat da izvrši serijalizaciju XmlSerializer xs = new XmlSerializer(typeof (DateTime)); // Koristi XmlSerializer objekat da serijalizuje podatke xs.serialize(fs, System.DateTime.Now); Kada se pokrene, aplikacija stvara tekstualnu datoteku sličnu slijedećoj: <?xml version="1.0"?> <datetime> t16:28: :00</datetime> U poređenju sa serijalizovanim DateTime objektima kreiranim u ranijim primjerima, XML serijalizacija kreira vrlo čitljivu i datoteku laku za uređivanje. C. Kako koristiti XML za deserijalizaciju objekata Kako bi se deserijalizovao objekat, potrebno je slijediti ove korake: Napraviti tok, TextReader ili XmlReader objekat za čitanje serijalizovanog ulaza. Napraviti XmlSerializer objekat (nalazi se u prostoru imena System.Xml.Serialization) pretvarajući ga u tip objekta koji se namjerava deserijalizovati. Pozvati XmlSerializer.Deserialize metodu kako bi se deserijalizovao objekat, i prebacio u ispravan tip. Slijedeći kôd deserijalizuje XML datoteku koja sadrži DateTime objekat i prikazuje dan u sedmici i vrijeme tog objekta: // Otvara fajl iz koga čita podatke FileStream fs = new FileStream("SerializedDate.XML", FileMode.Open); // Kreira XmlSerializer objekat da izvrši deserijalizaciju XmlSerializer xs = new XmlSerializer(typeof (DateTime));

4 // Koristi XmlSerializer objekat da deserijalizuje podatke // iz fajla DateTime previoustime = (DateTime)xs.Deserialize(fs); // Prikazuje deserijalizovane podatke Console.WriteLine("Day: "+ previoustime.dayofweek +", Time: " +previoustime.timeofday.tostring()); D. Kako kreirati klase koje se mogu serijalizovati koristeći XML serijalizaciju Za kreiranje klase koja se može serijalizovati pomoću XML serijalizacije, mora se uraditi slijedeće: Definisati klase kao javne. Definisati sve članove koji se serijalizuju kao javne. Kreirati bezparametarski konstruktor. Za razliku od klase obrađene sa standardnom serijalizacijom, klase ne moraju imati Serializable atribut kako bi bile obrađene sa XML serijalizacijom. Ako postoje privatni ili zaštićeni članovi, oni se preskaču tokom serijalizacije. E. Kako se prilagoditi XML Shemi Obično, kada dvije različite aplikacije žele razmjeniti XML datoteke, programeri rade zajedno kako bi stvorili datoteku XML sheme. XML sheme određuje strukturu XML dokumenta. Mnoge vrste XML shema već postoje, i kad god je to moguće, trebalo bi iskoristiti postojeću XML shemu. Ako postoji XML shema, može se pokrenuti XML Schema Definition alat (Xsd.exe) kako bi se proizveo skup klasa koje su snažno tipizirane na shemu i povezane s atributima. Kada je instanca takve klase serijalizovana, generisani XML dokument se pridržava XML sheme. Ovo je jednostavnija alternativa korištenju drugih klasa u.net okruženju, kao što su XmlReader i XmlWriter klase, za raščlaniti i upisati XML tok. Za generisanje klase na temelju sheme, treba slijediti ove korake: Kreirati ili preuzeti XML shemu.xsd datoteku na računaru. Otvoriti Visual Studio komandnu liniju. Može se pokrenuti komandna linija i izvan Microsoft Visual Studio/Visual Studio Tools mape na meniju Start. U naredbenom retku upisati Xsd.exe schema.xsd / classes / language: [CS] i pritisnuti Enter. Na primjer, za kreiranje nove klase na bazi sheme datoteka pod nazivom C:\sheme\Library.xsd, pokrenuti slijedeću naredbu: xsd C:\schema\library.xsd /classes /language:cs Otvoriti novokreiranu datoteku (sa nazivom Schema.cs), i dodati klase aplikaciji. Kada se serijalizuju novokreirane klase, one automatski odgovaraju XML shemi. Ovo čini kreiranje aplikacija koje komuniciraju sa standardnim web servisima jednostavnim. F. Kako serijalizovati DataSet Osim serijalizacije instance javne klase, instanca DataSet objekta može se serijalizovati, kao što je prikazano u slijedećem primjeru: private void SerializeDataSet(string filename) XmlSerializer ser = new XmlSerializer(typeof(DataSet)); // Kreira DataSet; dodaje tabelu, kolone, i deset redova. DataSet ds = new DataSet("myDataSet"); DataTable t = new DataTable("table1"); DataColumn c = new DataColumn("thing"); t.columns.add(c); ds.tables.add(t); DataRow r; for(int i=0; i<10 ; i++) r = t.newrow(); r[0] = "Thing " + i; t.rows.add(r); TextWriter writer = new StreamWriter(filename); ser.serialize(writer, ds); writer.close(); Isto tako, mogu se serijalizovati nizovi, kolekcije, te instance XmlElement ili XmlNode klasa. Iako je to korisno, ne pruža isti nivo kontrole koji bi postojao da su podaci sačuvani u prilagođene klase. Alternativno, mogu se koristiti DataSet.WriteXml, DataSet.ReadXML i DataSet.GetXml metode. IV. PRILAGOĐENA SERIJALIZACIJA A. Kako implementirati prilagođenu serijalizaciju Prilagođena serijalizacija je proces kontrole serijalizacije i deserijalizacije tipa. Kontrolom serijalizacije, moguće je osigurati kompatibilnost serijalizacije, što daje mogućnost serijalizacije i deserijalizacije između verzija tipa bez razbijanja funkcionalne jezgre. Na primjer, u prvoj verziji tipa, mogu biti samo dva polja. U slijedećoj verziji, dodano je još nekoliko polja. Ipak, druga verzija aplikacije mora moći serijalizovati i deserijalizovati oba tipa. Ovo poglavlje opisuje kako kontrolisati serijalizaciju primjenom svojih serijalizacionih klasa. Serijalizacija u.net okruženju je vrlo fleksibilna i može se prilagoditi tako da zadovolji većinu razvojnih zahtjeva. U nekim okolnostima, možda će trebati potpuna kontrola nad procesom serijalizacije. Može se prepisati serijalizacija ugrađena u.net okruženje implementacijom ISerializable interfejsa i primjenom

5 Serializable atributa klase. Ovo je korisno u slučajevima gdje je vrijednost promjenljive neispravna nakon deserijalizacije, a treba dati promjenljivu sa vrijednošću kako bi se rekonstruisalo potpuno stanje objekta. Osim toga, ne bi trebalo koristiti pretpodešenu serijalizaciju na klasi koja je označena atributom Serializable atribut i ima deklarativnu ili imperativnu sigurnost na nivou klase ili svoga konstruktora. Umjesto toga, ove klase uvijek trebaju implementirati ISerializable interfejs. Implementacija ISerializable uključuje implementaciju GetObjectData metode i prilagođenog konstruktora koji se koristi kada je objekat deserijalizovan. Izvršno okruženje poziva GetObjectData tokom serijalizacije i konstruktor serijalizacije tokom deserijalizacije. Prevodilac upozorava ako je zaboravljeno implementirati GetObjectData, ali ako je zaboravljeno implementirati neki prilagođeni konstruktor, neće se primijetiti problem do izvođenja kada se primi izuzetak serijalizacije. Kada izvršno okruženje pozove GetObjectData tokom serijalizacije, potrebno je popuniti SerializationInfo objekat koji je priložen uz poziv metode, jednostavno dodavanjem promjenljive kako bi bila serijalizovana kao ime ili par podataka korištenjem AddValue metode, koja interno kreira SerializationEntry strukturu za čuvanje podataka. Bilo koji tekst se može koristiti kao ime. Postoji sloboda odlučivanja koje će se promjenljive dodati SerializationInfo objektu, čineći da je dovoljno podataka serijalizovano da se objekat vrati tokom deserijalizacije. Kada izvršno okruženje pozove svoj konstruktor serijalizacije, jednostavno se preuzimaju vrijednosti promjenljivih iz SerializationInfo objekta koristeći imena koja su korišćena tokom serijalizacije. Slijedeći kôd, koji koristi System.Runtime.Serialization i System.Security.Permissions prostor imena, pokazuje kako implementirati ISerializable, konstruktor serijalizacije i GetObjectData metodu: [Serializable] class ShoppingCartItem : ISerializable public Int32 productid; public decimal price; public Int32 quantity; [NonSerialized] public decimal total; // Standardni, ne-serijalizacioni konstruktor public ShoppingCartItem(int _productid, decimal _price, int _quantity) productid = _productid; price = _price; quantity = _quantity; total = price * quantity; // Naredni konstruktor je za serijalizaciju ShoppingCartItem(SerializationInfo info, StreamingContext context) productid = info.getint32("product ID"); price = info.getdecimal("price"); quantity = info.getint32("quantity"); total = price * quantity; // Poziva narednu metodu tokom serijalizacije [SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter=true)] public virtual void GetObjectData(SerializationInfo info, StreamingContext context) info.addvalue("product ID", productid); info.addvalue("price", price); info.addvalue("quantity", quantity); public override string ToString() return productid + ": " + price + " x " + quantity + " = " + total; U ovom primjeru, SerializationInfo radi većinu posla oko serijalizacije i deserijalizacije. Kreiranje objekata SerializationInfo zahtijeva objekat čiji tip implementira IFormatterConverter interfejs. BinaryFormatter i SoapFormatter uvijek konstruišu instancu System.Runtime.Serialization.FormatterConverter tipa, ne dajući priliku da se koristi drugi tip IformatterConverter-a. FormatterConverter uključuje metode za pretvaranje vrijednosti između osnovnih tipova, kao što je pretvaranje Decimal u Double ili označenog cijelog broja u neoznačeni cijeli broj. B. Odgovarajući na događaje serijalizacije.net okruženje podržava događaje kod binarne serijalizacije kada se koristi klasa BinaryFormatter. Događaji su podržani samo za BinaryFormatter serijalizaciju. Za SoapFormatter ili prilagođenu serijalizaciju, ograničeno je korišćenje IDeserializationCallback interfejsa, kao što je objašnjeno ranije. Ovi događaji pozivaju metode u klasi pri odvijanju serijalizacije ili deserijalizacije. Postoje četiri događaja serijalizacije: Serializing - Ovaj događaj se dešava upravo prije nego što se serijalizacija započne. Staviti OnSerializing atribut na metodu koju bi se trebala pokrenuti kao odgovor na ovaj događaj. Serialized - Ovaj događaj se dešava upravo nakon što se serijalizacija završila. Dodati OnSerialized atribut na metodu koja bi se trebala pokrenuti kao odgovor na ovaj događaj. Deserializing - Ovaj događaj se dešava upravo prije nego što se deserijalizacija započne. Dodati OnDeserializing atribut na metodu koju bi se trebala pokrenuti kao odgovor na ovaj događaj. Deserialized - Ovaj događaj se dešava upravo nakon odvijanja deserijalizacije i nakon pozivanja

6 IDeserializationCallback.OnDeserialization. Trebalo bi koristiti IDeserializationCallback.OnDeserialization osim kada se mogu koristiti drugi formateri umjesto BinaryFormatter-a. Trebalo bi dodati OnDeserialized atribut na metodu koja bi se trebala pokrenuti kao odgovor na ovaj događaj. C. Kako kreirati prilagođeni formater Da bi se kreirao prilagođeni formater, treba se implementirati interfejs IFormatter. I BinaryFormatter i SoapFormatter implementiraju interfejs IFormatter. FormatterServices klasa pruža statičke metode (uključujući GetObjectData) za pomoć u implementaciji formatera. ZAHVALNICA Istraživanja u ovom radu rađena su u sklopu izrade seminarskog rada iz predmeta Osnovi.NET tehnologija na prvom ciklusu studija na Fakultetu za informacione tehnologije Slobomir P Univerziteta, pod mentorstvom asistenta Dragoljuba Pilipovića. Literatura [1] MCTS Self-Paced Training Kit (Exam ): Microsoft.NET Framework 3.5 Windows Communication Foundation, 2008 [2] [3] ABSTRACT This paper shows how to serialize and deserialize data in.net framework, using of XML and custom serialization. In the introduction are listed areas of application and mentioned techniques and types of the serialization output data. In the part of paper related to data serialization are described processes of serialization and deserialization objects, creating a class that can be serialized, choice of serialization formats and using SOAP formatter. In the part relating to the XML serialization, it is explained why and how to use XML serialization and deserialization, how to adapt to the XML schema and how to serialize DataSet. At the end of the paper are explained the custom serialization, how to implement it and respond to serialization events and how to create a custom formatter. SERIALIZATION IN.NET FRAMEWORK Stefan Tesanovic Zeljko Gavric

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi DELEGATI Bezbedni pokazivači na funkcije Jer garantuju vrednost deklarisanog tipa. Prevodilac prijavljuje grešku ako pokušate da povežete

More information

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo Nasledjivanje klasa Modifikator new class A { public virtual void F() { Console.WriteLine("I am A"); } } class B : A { public override void F()

More information

PREDMET. Osnove Java Programiranja. Čas JAVADOC

PREDMET. Osnove Java Programiranja. Čas JAVADOC PREDMET Osnove Java Programiranja JAVADOC Copyright 2010 UNIVERZITET METROPOLITAN, Beograd. Sva prava zadržana. Bez prethodne pismene dozvole od strane Univerziteta METROPOLITAN zabranjena je reprodukcija,

More information

VRIJEDNOSTI ATRIBUTA

VRIJEDNOSTI ATRIBUTA VRIJEDNOSTI ATRIBUTA Svaki atribut (bilo da je primarni ključ, vanjski ključ ili običan atribut) može i ne mora imati ograničenja na svojim vrijednostima. Neka od ograničenja nad atributima: Null / Not

More information

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt Funkcionalno programiranje Interoperabilnost jezika Scala i Java Prevođenje u Java bajt kod Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući

More information

Sberbank Business Online na Mozilla FireFox

Sberbank Business Online na Mozilla FireFox Sberbank Business Online na Mozilla FireFox Verzija 1.6 Srpanj 2016. Sberbank d.d. Stranica 1 SADRŽAJ 1 INSTALACIJA... 2 2 POKRETANJE MOZILLE FIREFOX... 3 2.1 IMPORT SECURITY MODULA... 4 2.2 AUTOMATSKI

More information

PROGRAMIRANJE. Amir Hajdar

PROGRAMIRANJE. Amir Hajdar PROGRAMIRANJE Amir Hajdar Teme 2 Klase i objekti u Javi Primjer kroz klasu Krug Atributi i metode Inicijalizacija objekata (konstruktori) Polymorphism Statičke varijable i metode This Klase i objekti u

More information

Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365

Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365 Windows 8 Licenciranje, razlike u verzijama Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje Serverski proizvodi Server 2012, System centar 2012, SQL 2012, Sharepoint

More information

pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1

pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1 NIZOVI Niz deklarišemo navođenjemtipa elemenata za kojim sledi par srednjih zagrada[] i naziv niza. Ako je niz višedimenzionalni između zagrada[] se navode zarezi, čiji je broj za jedan manji od dimenzija

More information

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets CSS CSS CSS: Cascading Style Sheets - Opisuje izgled (appearance) i raspored (layout) stranice - Sastoji se od CSS pravila, koji defini[u skup stilova selector { property: value; 1 Font face: font-family

More information

Vežbe - XII nedelja PHP Doc

Vežbe - XII nedelja PHP Doc Vežbe - XII nedelja PHP Doc Dražen Drašković, asistent Elektrotehnički fakultet Univerziteta u Beogradu Verzija alata JavaDoc za programski jezik PHP Standard za komentarisanje PHP koda Omogućava generisanje

More information

VDSL modem Zyxel VMG1312-B10A/B30A

VDSL modem Zyxel VMG1312-B10A/B30A VDSL modem Zyxel VMG1312-B10A/B30A Default Login Details LAN IP Address http://192.168.2.1 User Name user Password 1234 Funkcionalnost lampica Power lampica treperi kratko vrijeme nakon uključivanja modema,

More information

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010 Programiranje Programski jezik C prof.dr.sc. Ivo Ipšić 2009/2010 Sadržaj Ulazno-izlazne funkcije Datoteke Formatirane datoteke Funkcije za rad s datotekama Primjeri Datoteke komunikacija između programa

More information

Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb,

Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb, Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb, 13.04.2017. Podešavanje Hyper-V Servera 2016 za RSAT upravljanje Dario Štefek Lokacije za preuzimanje: Microsoft Hyper-V Server 2016 https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-2016

More information

Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi.

Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi. Obrada izuzetaka Šta je izuzetak? Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi. Prosleđuje izuzetak,

More information

Uputstvo za korišćenje logrotate funkcije

Uputstvo za korišćenje logrotate funkcije Copyright AMRES Sadržaj Uvod 3 Podešavanja logrotate konfiguracionog fajla 4 Strana 2 od 5 Uvod Ukoliko je aktivirano logovanje za RADIUS proces, može se desiti da posle određenog vremena server bude preopterećen

More information

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET Katedra za elektroniku Računarska elektronika Grupa br. 11 Projekat br. 8 Studenti: Stefan Vukašinović 466/2013 Jelena Urošević 99/2013 Tekst projekta :

More information

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

OBJEKTNO ORIJENTISANO PROGRAMIRANJE OBJEKTNO ORIJENTISANO PROGRAMIRANJE PREDAVANJE 12: NASLEĐIVANJE Miloš Kovačević Đorđe Nedeljković 1 /17 OSNOVNI KONCEPTI - Statički i dinamički tipovi podataka - Prepisivanje metoda superklase - Polimorfizam

More information

GUI - događaji (Events) i izuzeci. Bojan Tomić

GUI - događaji (Events) i izuzeci. Bojan Tomić GUI - događaji (Events) i izuzeci Bojan Tomić Događaji GUI reaguje na događaje (events) Događaj je neka akcija koju korisnik programa ili neko drugi izvrši korišćenjem perifernih uređaja (uglavnom miša

More information

Case Study Hrvatska pošta: Korisničko iskustvo iz snova. Tomislav Turk Samostalni sistem inženjer, Combis d.o.o. Zagreb,

Case Study Hrvatska pošta: Korisničko iskustvo iz snova. Tomislav Turk Samostalni sistem inženjer, Combis d.o.o. Zagreb, Case Study Hrvatska pošta: Korisničko iskustvo iz snova Tomislav Turk Samostalni sistem inženjer, Combis d.o.o. Zagreb, 27.12.2018. Sadržaj Hrvatska pošta prije projekta Izazovi projekta Tehnologije korištene

More information

NIZOVI.

NIZOVI. NIZOVI LINKOVI ZA KONZOLNI C# OSNOVNO http://www.mycity.rs/net/programiranje-u-c-za-osnovce-i-srednjoskolce.html http://milan.milanovic.org/skola/csharp-00.htm Niz deklarišemo navođenjem tipa elemenata

More information

dr. sc.. Josip Musić Originalne slideove izradio:

dr. sc.. Josip Musić Originalne slideove izradio: Uvod u programiranje Programiranje 1 (450) Poglavlje 1 Uvod u računala, Microsoft.NET i VB.NET (dio 2 od 2): Pregled.NET platforme dr. sc.. Josip Musić jmusic@fesb.hr 1 Originalne slideove izradio: Teo

More information

Programiranje III razred

Programiranje III razred Tehnička škola 9. maj Bačka Palanka Programiranje III razred Naredbe ciklusa for petlja Naredbe ciklusa Veoma često se ukazuje potreba za ponavljanjem nekih naredbi više puta tj. za ponavljanjem nekog

More information

String. String. Kreiranje string objekta pomoću string literala (konstanti) Kreiranje string objekta

String. String. Kreiranje string objekta pomoću string literala (konstanti) Kreiranje string objekta String string ili znakovni niz (string) nije niz znakova u Javi su stringovi klase String paketa java.lang!!! Usporedba: char gf = G ; Niz znakova String char [] gf = { G, e, o, d, e, t, s, k, i ; String

More information

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a Webmail sistem ima podršku za SSL (HTTPS). Korištenjem ovog protokola sva komunikacija između Webmail sistema i vašeg Web čitača je kriptovana. Prilikom pristupa

More information

PITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I POLIMORFIZAM

PITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I POLIMORFIZAM PITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I 1. Definicija svake klase sadrzi kljucnu rec iza koje se navodi ime klase: class public extends 2. Kada je funkcija clanica definisana izvan

More information

Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak...

Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak... Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak... Prof. dr. sc. Tomislav Pribanić Izv. prof. dr. sc. Vedran Podobnik Doc. dr. sc. Marija Seder Sveučilište u Zagrebu Fakultet elektrotehnike

More information

Upute za postavljanje Outlook Expressa

Upute za postavljanje Outlook Expressa Upute za postavljanje Outlook Expressa Prije postavljanja klijenata morate obavezno obaviti prvu prijavu na web mail kako bi aktivirali vaš račun na novom sustavu. Ukoliko niste obavili prvu prijavu, nećete

More information

Java. Ugnježdeni tipovi IMI PMF KG OOP 09 AKM. najveći deo teksta je preuzet sa slajdova Prof. Dragana Milićeva (ETF Bg) namenjenih pedmetu OOP2

Java. Ugnježdeni tipovi IMI PMF KG OOP 09 AKM. najveći deo teksta je preuzet sa slajdova Prof. Dragana Milićeva (ETF Bg) namenjenih pedmetu OOP2 Java IMI PMF KG OOP 0 AKM 1 Ugnježdeni tipovi najveći deo teksta je preuzet sa slajdova Prof. Dragana Milićeva (ETF Bg) namenjenih pedmetu OOP2 Ugneždeni tipovi IMI PMF KG OOP 0 AKM 2 Unutrašnje klase

More information

Izrada VI laboratorijske vježbe

Izrada VI laboratorijske vježbe Izrada VI laboratorijske vježbe 1. Programirati proceduru koja se aktivira sa Standard palete alatki klikom na button Fajlovi. Prilikom startovanja procedure prikazuje se forma koja sadrži jedan list box

More information

OUR KNOWLEDGE FOR YOUR SUCCESS. Iskustva u razvoju i implementaciji ADF aplikacije

OUR KNOWLEDGE FOR YOUR SUCCESS. Iskustva u razvoju i implementaciji ADF aplikacije Iskustva u razvoju i implementaciji ADF aplikacije Sadržaj Opis aplikacije za AZ Mirovinski Fond Internacionalizacija aplikacije Integracija sa Oracle Reports Iskorištenje postojeće PL/SQL logike Kreiranje

More information

Binarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133

Binarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133 Binarne hrpe Potpuno binarno stablo binarno stablo u kojem svaki čvor koji nije list ima točno 2 nasljednika. Binarna hrpa potpuno binarno stablo u kojem svaki čvor koji nije list ima veću ključnu vrijednost

More information

Računarske osnove Interneta (SI3ROI, IR4ROI)

Računarske osnove Interneta (SI3ROI, IR4ROI) Računarske osnove terneta (SI3ROI, IR4ROI) Vežbe MPLS Predavač: 08.11.2011. Dražen Drašković, drazen.draskovic@etf.rs Autori: Dražen Drašković Naučili ste na predavanjima MPLS (Multi-Protocol Label Switching)

More information

Uputstvo za podešavanje mail klijenta

Uputstvo za podešavanje mail klijenta Uputstvo za podešavanje mail klijenta 1. Podešavanje Thunderbird mail klijenta 1.1 Dodavanje mail naloga Da biste podesili Vaš mail klijent (u ovom slučaju Thunderbird) da prima i šalje mail-ove potrebno

More information

PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA

PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA SPECIFIKACIJA BAZE PODATAKA ZA PROJEKAT NAZIV_PROJEKTA Veb knjižara - Specifikacija baze podataka 1 10.04.2017. Verzija V 1.0 Datum: 20. mart 2017. Istorija

More information

JavaScript i HTML DOM

JavaScript i HTML DOM 4. vježbe iz WEB programiranja četvrtak, 22. ožujka 2012. JavaScript 1. dio JavaScript i Što je DOM? Kako JS koristi DOM? Pristup elementima dokumenta Promjena i učitavanje vrijednosti tagova Primjer 1.

More information

Uputa za instaliranje programske potpore za operativni sustav WINDOWS

Uputa za instaliranje programske potpore za operativni sustav WINDOWS ZABA SignErgy Desktop aplikacija Uputa za instaliranje programske potpore za operativni sustav WINDOWS SADRŽAJ 1. UVOD 3 2. PODRŽANI OPERATIVNI SUSTAVI 3 3. PROGRAMSKI PREDUVJETI ZA INSTALACIJU PROGRAMSKE

More information

Single Sign-On s Officeom 365 na Kineziološkom fakultetu Sveučilišta u Zagrebu

Single Sign-On s Officeom 365 na Kineziološkom fakultetu Sveučilišta u Zagrebu Single Sign-On s Officeom 365 na Kineziološkom fakultetu Sveučilišta u Zagrebu Stipe Gorenjak, Kineziološki fakultet Sveučilišta u Zagrebu e-mail: stipe.gorenjak@kif.hr Sponzori Ugasite mobitele. Hvala.

More information

VB komande. Programiranje 1

VB komande. Programiranje 1 VB komande Programiranje 1 Zadatak 1: Sastaviti program koji se sastoji iz jedne ListBox kontrole, jedne Textbox kontrole i dva komandna dugmeta. Klikom na prvo komandno dugme umeće se u ListBox sadržaj

More information

VHDLPrimeri Poglavlje5.doc

VHDLPrimeri Poglavlje5.doc 5. VHDL opis kola koja obavljaju osnovne aritmetičke funkcije Sabirači Jednobitni potpuni sabirač definisan je tablicom istinitosti iz Tabele 5.1. Tabela 5.1. cin a b sum cout 0 0 0 0 0 0 0 1 1 0 0 1 0

More information

Uvod u relacione baze podataka

Uvod u relacione baze podataka Uvod u relacione baze podataka Ana Spasić 5. čas 1 Podupiti, operatori exists i in 1. Izdvojiti imena i prezimena studenata koji su položili predmet čiji je identifikator 2001. Rešenje korišćenjem spajanja

More information

PARALELNO PROGRAMIRANJE

PARALELNO PROGRAMIRANJE Predavanje 09 Odjel za matematiku 1 PARALELNO PROGRAMIRANJE POSIX threadovi za C++ Predavanje 09 Odjel za matematiku 2 Programske niti (thread) unutar procesa Danas ćemo se upoznati s POSIX thread bibliotekom

More information

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje. WEB programiranje HTML & CSS

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje. WEB programiranje HTML & CSS Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje WEB programiranje HTML & CSS Autor/i: Juraj Benić 2018 1. Zadatak Kreirati stranicu kojoj će naslov biti Zadatak 1. i veličina teksta 20px te staviti

More information

PROGRAMIRANJE. Teme. Packages Reference objekata Inheritance nasljeđivanje Exceptions. Amir Hajdar

PROGRAMIRANJE. Teme. Packages Reference objekata Inheritance nasljeđivanje Exceptions. Amir Hajdar PROGRAMIRANJE Amir Hajdar Teme 2 Packages Reference objekata Inheritance nasljeđivanje Exceptions Packages API Application Programmer Interface Sve klase ponuđene u sklopu Java jezika, uključujući i kompajler

More information

Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list.

Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list. Ime i prezime: Asistent: Predava : Programiranje (C) 1. kolokvij 14. 4. 2003. 1. 2. 3. 4. 5. 6. 7. Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj

More information

Informacioni sistemi i baze podataka

Informacioni sistemi i baze podataka Fakultet tehničkih nauka, Novi Sad Predmet: Informacioni sistemi i baze podataka Dr Slavica Kordić Milanka Bjelica Vojislav Đukić Rad u učionici (1/2) Baze podataka (db2015): Studentska korisnička šema

More information

namespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

namespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); } Spojnice using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO;

More information

Mašinska vizija. Dr Nenad Jovičić tnt.etf.rs/~mv

Mašinska vizija. Dr Nenad Jovičić tnt.etf.rs/~mv Mašinska vizija Dr Nenad Jovičić 2017. tnt.etf.rs/~mv Linearne 2D geometrijske transformacije 2D geometrijske transformacije Pretpostavka: Objekti u 2D prostoru se sastoje iz tačaka i linija. Svaka tačka

More information

Ciljevi. Poslije kompletiranja ove lekcije trebalo bi se biti u mogućnosti: Opisati ograničenja Generisati i održavati ograničenja u bazi

Ciljevi. Poslije kompletiranja ove lekcije trebalo bi se biti u mogućnosti: Opisati ograničenja Generisati i održavati ograničenja u bazi Ograničenja Ciljevi Poslije kompletiranja ove lekcije trebalo bi se biti u mogućnosti: Opisati ograničenja Generisati i održavati ograničenja u bazi Generisati i održavati ograničenja u bazi podataka Uvod

More information

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa Uvod u programiranje - vežbe Kontrola toka izvršavanja programa Naredbe za kontrolu toka if, if-else, switch uslovni operator (?:) for, while, do-while break, continue, return if if (uslov) naredba; if

More information

PKI Applet Desktop Application Uputa za instalaciju programske potpore

PKI Applet Desktop Application Uputa za instalaciju programske potpore 1 SADRŽAJ 1. UVOD 3 2. PODRŽANI OPERATIVNI SUSTAVI 3 3. PROGRAMSKI PREDUVJETI ZA INSTALACIJU PROGRAMSKE POTPORE 3 4. INSTALACIJA PROGRAMSKE POTPORE 3 5. DEINSTALACIJA PROGRAMSKE POTPORE 6 2 1. Uvod PKI

More information

Uputstvo za konfiguraciju računara za korištenje BIHnet ADSL usluge

Uputstvo za konfiguraciju računara za korištenje BIHnet ADSL usluge Uputstvo za konfiguraciju računara za korištenje BIHnet ADSL usluge Za ADSL vezu na Internet potrebno je: Računar: 133MHz i 16 MB Ram (preporučeno više), 10 Base-T/ 100 Base- TX Ethernet mrežni adapter,

More information

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 08 Zvonimir Bujanović Slaven Kožić Vinko Petričević Uvod: (X)HTML i CSS Na ovim i idućim vježbama naučit ćemo osnove jezika za opisivanje

More information

ILM implementacija DWH baza u T-mobile

ILM implementacija DWH baza u T-mobile ILM implementacija DWH baza u T-mobile Bojan Šumljak, PS Consultant Hrvoje Dubravica, PS Head Consultant www.snt-world.com 1 Što je ILM? - information Lifecycle Management praksa primjenjivanja pravila

More information

Programski jezik JAVA PREDAVANJE

Programski jezik JAVA PREDAVANJE Programski jezik JAVA PREDAVANJE 8 2018 www.etf.ac.me Polja za potvrdu i Radio tasteri Polja za potvrdu i radio tasteri nijesu uzajamno isključivi, što znači da ako imate pet polja za potvrdu u jednom

More information

var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.LoadFromFile('d:\brojevi.

var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.LoadFromFile('d:\brojevi. 1 PANEL komponenta kontejnerska, slična GropBox. Roditeljska komponenta za komp. postavljene na nju. Zajedno se pomeraju. Caption svojstvo za naziv; Alighment pomera svojstvo Caption levo i desno; Align

More information

PITANJA ZA II KOLOKVIJUM KLASE I OBJEKTI

PITANJA ZA II KOLOKVIJUM KLASE I OBJEKTI PITANJA ZA II KOLOKVIJUM KLASE I OBJEKTI 1. Enkapsulacija je podataka. skrivanje apstrakcija nasledivanje 2. Unutar deklaracije klase navode se: definicije funkcija clanica prototipovi (deklaracije) funkcija

More information

Jezik Baze Podataka SQL. Jennifer Widom

Jezik Baze Podataka SQL. Jennifer Widom Jezik Baze Podataka SQL SQL o Jezik koji se koristi u radu sa relacionim bazama podataka o Nije programski jezik i manje je kompleksan. o Koristi se isključivo u radu za bazama podataka. o SQL nije case

More information

Kodiranje GUI aplikacija u Visual C#

Kodiranje GUI aplikacija u Visual C# Kodiranje GUI aplikacija u Visual C# UVOD Uvod Kodiranje grafičke aplikacije u Visual C#: Ova lekcija se bavi dogadjajima, programiranjem dogadjaja. Daćemo jedan primer event-driven-programming-a, u vidu

More information

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0. Kontrolne naredbe Primjeri: Opšti oblik razgranate strukture (if sa ) if (uslov) Naredba 1 ili blok naredbi1 Naredba 2 ili blok naredbi2 Učitati broj x i štampati vrijednost double x, z; Scanner in=new

More information

Objektno orjentirano programiranje

Objektno orjentirano programiranje Objektno orjentirano programiranje Predavanje 4 Objektno orijentirani koncepti Konstruktori Metoda koja se poziva prilikom stvaranja novog objekta Svojstveni su OO programiranju Imaju isto ime kao i klasa

More information

Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0

Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0 POM - Pomoć korisnicima Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0 IZUM, 2016 COBISS, COMARC, COBIB, COLIB, IZUM su zaštićeni znaci u posedu

More information

Razvoj hibridnih mobilnih aplikacija pomoću PhoneGap platforme

Razvoj hibridnih mobilnih aplikacija pomoću PhoneGap platforme INFOTEH-JAHORINA Vol. 12, March 2013. Razvoj hibridnih mobilnih aplikacija pomoću PhoneGap platforme Igor Dujlović Elektrotehnički fakultet Banja Luka Banja Luka, BiH dujlovic@gmail.com Zoran Đurić Elektrotehnički

More information

VMware Workstation. VMwareWorkstation ESX ($) (vmotion, DRS, HA, Storage vmotion) vcenter Server ($) Server. Guest OS

VMware Workstation. VMwareWorkstation ESX ($) (vmotion, DRS, HA, Storage vmotion) vcenter Server ($) Server. Guest OS VMware Workstation ESX ($) vcenter Server ($) (license manager) Server hardware (vmotion, DRS, HA, Storage vmotion) ESXi (freeware) (ESXi freeware is managed by the Virtual Infrastructure (or vsphere)

More information

Variable Neighborhood Descent - VND (Metoda promenljivog spusta)

Variable Neighborhood Descent - VND (Metoda promenljivog spusta) Variable Neighborhood Descent - VND (Metoda promenljivog spusta) Izabrati skup okolina N k, k = 1,..., k max koje će se koristiti za pretragu; Na slučajan način izabrati početno rešenje x X i postaviti

More information

Objektno orjentirano programiranje. Predavanje 9 Postojani objekti, serijalizacija, marshaling, relacijske baze podataka

Objektno orjentirano programiranje. Predavanje 9 Postojani objekti, serijalizacija, marshaling, relacijske baze podataka Objektno orjentirano programiranje Predavanje 9 Postojani objekti, serijalizacija, marshaling, relacijske baze podataka Postojani objekti - osnove eng. persistent objects Bez obzira na veličinu poslovne

More information

Programiranje III razred

Programiranje III razred Tehnička škola 9. maj Bačka Palanka Programiranje III razred Konverzija tipova Konverzija tipova Prilikom komunikacije aplikacije sa korisnikom, korisnik najčešće unosi ulazne podatke koristeći tastaturu.

More information

Korisničko uputstvo za instalaciju i podešavanje securew2 programa za pristup eduroam servisu

Korisničko uputstvo za instalaciju i podešavanje securew2 programa za pristup eduroam servisu Korisničko uputstvo za instalaciju i podešavanje securew2 programa za pristup eduroam servisu Termin supplicant se koristi u IEEE 802.1X standardu. U širem značenju, ovaj termin predstavlja entitet (korisnik

More information

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end. NAREDBA CIKLUSA SA PREDUSLOVOM WHILE 1.Odrediti vrednosti s i p nakon izvrsenja sledecih naredbi za dato a=43, a=34, a=105 program p1; var a,s,p:integer; write('unesite a:');readln(a); p:=a; s:=0; while

More information

Marko Milošević.

Marko Milošević. Marko Milošević marko643@gmail.com marko.milosevic@pmf.edu.rs ESPB 8 Bodovanje Domaći Kolokvijumi 2x10 2x20 Završni ispit 40 Konsultacije sreda 13-14 četvrtak 16-17 Šabloni dizajna (Design Patterns) Metrika

More information

Nasleđivanje i izvedene klase u jeziku C++

Nasleđivanje i izvedene klase u jeziku C++ Tema 08 Nasleđivanje i izvedene klase u jeziku C++ dr Vladislav Miškovic vmiskovic@singidunum.ac.rs Fakultet za informatiku i računarstvo - Tehnički fakultet OBJEKTNO ORIJENTISANO PROGRAMIRANJE 2016/2017

More information

Izrada web aplikacije u razvojnom okruženju Spring

Izrada web aplikacije u razvojnom okruženju Spring SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE V A R A Ž D I N Stjepan Čolak Izrada web aplikacije u razvojnom okruženju Spring ZAVRŠNI RAD Varaždin, 2015. SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE

More information

Oracle Proprietary Joins Za upite nad više od jedne tabele korišćenjem Oracle proprietary sintakse koristiti join uslov u WHERE izrazu:

Oracle Proprietary Joins Za upite nad više od jedne tabele korišćenjem Oracle proprietary sintakse koristiti join uslov u WHERE izrazu: Database Programming with SQL kurs 2017 database design and programming with sql students slajdovi 7-1 Oracle Equijoin and Cartesian Product Prethodna sekcija se bavila upitima preko više od jedne tabele

More information

Vjež ba 3-3: Ražvoj ASP.NET MVC 4 Pogleda s Ražor sintaksom

Vjež ba 3-3: Ražvoj ASP.NET MVC 4 Pogleda s Ražor sintaksom Vjež ba 3-3: Ražvoj ASP.NET MVC 4 Pogleda s Ražor sintaksom U ovoj vježbi trebate dodati sljedeće view-ove u OnlineVrijednosnice aplikaciju: Details view za Graf model objekte ovaj view će prikazivati

More information

KINEMATIČKA ANALIZA MEHANIZAMA INDUSTRIJSKIH ROBOTA KORIŠTENJEM PROGRAMSKOG JEZIKA MATLAB

KINEMATIČKA ANALIZA MEHANIZAMA INDUSTRIJSKIH ROBOTA KORIŠTENJEM PROGRAMSKOG JEZIKA MATLAB 10 th International Scientific Conference on Production Engineering DEVELOPMENT AND MODERNIZATION OF PRODUCTION KINEMATIČKA ANALIZA MEHANIZAMA INDUSTRIJSKIH ROBOTA KORIŠTENJEM PROGRAMSKOG JEZIKA MATLAB

More information

Backup i Restore C particije ili Windowsa sa NORTON-om

Backup i Restore C particije ili Windowsa sa NORTON-om BRZO KOPIRANJE I RESTAURIRANJE DISKOVA (programski paket Norton SystemWorks) OBJAŠNJENJE Backup i Restore C particije ili Windowsa sa NORTON-om Je li vam se nekada srušio operativni sustav ili pokvario

More information

Tema 8: Koncepti i teorije relevantne za donošenje odluka (VEŽBE)

Tema 8: Koncepti i teorije relevantne za donošenje odluka (VEŽBE) Tema 8: Koncepti i teorije relevantne za donošenje odluka (VEŽBE) SISTEMI ZA PODRŠKU ODLUČIVANJU dr Vladislav Miškovic vmiskovic@singidunum.ac.rs Fakultet za računarstvo i informatiku 2013/2014 Tema 8:

More information

public static void main(string []args) { System.out.println("Hello World"); /* prints Hello World */

public static void main(string []args) { System.out.println(Hello World); /* prints Hello World */ Java Uvod Hello world primer Java program predstavlja skup objekata koji prozivaju jedni drugima metode i tako komuniciraju. Izvorni kod se uvek čuva u datotekama sa ekstenzijom.java. Ispod je predstavljen

More information

Modbus TCP i dva PLC S7 1200

Modbus TCP i dva PLC S7 1200 Industrijski sistemi i protokoli Modbus TCP i dva PLC S7 1200 1 Modbus TCP i dva PLC S7 1200 Laboratorijski deo - obavezno: Detaljno proučiti i testirati već napravljeni projekat za PLC-ove, koji se nalazi

More information

Predavanje 13. using namespace int for int return

Predavanje 13. using namespace int for int return Predavanje 13. Svi programi koje smo do sada pisali posjedovali su suštinski nedostatak da se svi uneseni podaci gube onog trenutka kada se program završi. Poznato je da se ovaj problem rješava uvođenjem

More information

1. Poglavlje: Rad s podacima

1. Poglavlje: Rad s podacima 1. Poglavlje: Rad s podacima Često imamo potrebu zapamtiti neke podatke, pa ih u sljedećim sessijama programa vratiti. Za to postoji više načina. Ovdje ćemo nabrojati osnovne principe. 1.1 Windows Registry

More information

KOMPAJLIRANJE IZVORNOG KODA U UPRAVLJIVE MODULE SOURCE CODE COMPILATION INTO MANAGED MODULES

KOMPAJLIRANJE IZVORNOG KODA U UPRAVLJIVE MODULE SOURCE CODE COMPILATION INTO MANAGED MODULES TEHNOLOGIJA, INFORMATIKA I OBRAZOVANJE ZA DRUŠTVO UČENJA I ZNANJA 6. MeĎunarodni Simpozijum, Tehnički fakultet Čačak, 3 5. jun 2011. TECHNOLO GY, INFO RM ATICS AND EDUCATION FOR LEARNING AND KNOWLEDGE

More information

Projektovanje namenskih računarskih struktura

Projektovanje namenskih računarskih struktura Univerzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Projektovanje namenskih računarskih struktura Mehanizam JNI i upotreba u Androidu i aplikacijama

More information

4.1 Učitavanje podatka tipa string Učitavanje brojčanih vrijednosti Rad sa dinamičkim objektima... 7

4.1 Učitavanje podatka tipa string Učitavanje brojčanih vrijednosti Rad sa dinamičkim objektima... 7 Java zadaci Zadaci 1. Priprema novog projekta... 1 2. Organizacija klasa u fajlove... 2 3. Ispis vrijednosti u konzolni prozor... 3 4. Učitavanje vrijednosti sa konzolnog prozora... 4 4.1 Učitavanje podatka

More information

9. RAD S DATOTEKAMA PODATAKA

9. RAD S DATOTEKAMA PODATAKA Rad s datotekama 7-1 9. RAD S DATOTEKAMA PODATAKA U programiranju se često radi sa skupovima podataka koji se čuvaju na jedinicama perfernih memorija, a koji se organizuju u posebne cjeline koje nazivamo

More information

MICROSOFT LINQ. INFOTEH-JAHORINA Vol. 9, Ref. F-9, p , March Ognjen Borovina, Elektrotehnički fakultet, Istočno Sarajevo

MICROSOFT LINQ. INFOTEH-JAHORINA Vol. 9, Ref. F-9, p , March Ognjen Borovina, Elektrotehnički fakultet, Istočno Sarajevo INFOTEH-JAHORINA Vol. 9, Ref. F-9, p. 1032-1036, March 2010. MICROSOFT LINQ Ognjen Borovina, Elektrotehnički fakultet, Istočno Sarajevo Sadržaj: U ovom radu uveli smo LINQ i pokazali osnove njegovog rada.

More information

IBM Endpoint Manager. Maja Kehić. security

IBM Endpoint Manager. Maja Kehić. security IBM Endpoint Manager Maja Kehić security IBM Endpoint Manager Endpoints Jedinstven agent Desktop / laptop / server endpoint Mobile Purpose specific Jedinstvena konzola Zajednička infrastruktura Jedan server

More information

OSNOVE PROGRAMIRANJA

OSNOVE PROGRAMIRANJA OSNOVE PROGRAMIRANJA Struktura aplikacije Visual Basica Za svaku formu u aplikaciji postoji pripadajuci modul forme (.frm) koji sadrži njen programski kod Modul forme sadži event procedure - dijelovi koda

More information

Android. Osobine. Razvojno okruženje

Android. Osobine. Razvojno okruženje Android Android je operativni sistem za mobilne uređaje kao što su pametni telefoni i tablet računari. Razvio ga je Android Inc. kojeg je kupio Google. Google kompanija je osnovala Open Handset Alliance,

More information

XML. Miroslav Trajanović. Šta je XML

XML. Miroslav Trajanović. Šta je XML XML Miroslav Trajanović Šta je XML XML je skraćenica zaextensible Markup Language XML je proširivi jezik označavanja(markup language) XML je projektovan da strukturira, čuva i prenosi podatke između aplikacija

More information

Prva recenica. Druga recenica.

Prva recenica. Druga recenica. Algoritmi i programiranje Predavanje 4 METODE LOKALNE, GLOBALNE VARIJABLE I KONSTANTE METODA je imenovani izdvojeni slijed naredbi koji rješava određeni zadatak i po potrebi se poziva jednom ili više puta

More information

KURSORI BAZE PODATAKA U ORACLE 11g

KURSORI BAZE PODATAKA U ORACLE 11g KURSORI BAZE PODATAKA U ORACLE 11g SAŽETAK Kursor baze podataka je privatno SQL područje u kojem se čuvaju informacije za procesiranje određene SQL naredbe. Oracle PLSQL jezik koristi implicitne i eksplicitne

More information

BAZE PODATAKA. SQL Opis podataka. Neđeljko Lekić Irena Orović

BAZE PODATAKA. SQL Opis podataka. Neđeljko Lekić Irena Orović BAZE PODATAKA SQL Opis podataka Neđeljko Lekić Irena Orović www.etf.ac.me U OVOJ LEKCIJI SQL SQL jezik SQL, relacioni model i E/R diagram CREATE TABLE Kolone Primarni ključevi Spoljnji ključevi DROP TABLE

More information

33 Rad s RESTful Web uslugama

33 Rad s RESTful Web uslugama 33 Rad s RESTful Web uslugama Tokom devedesetih godina prošlog stoljeća Web se počeo masovno koristiti pa su novim Web aplikacijama pristupali milijuni ljudi širom svijeta. U isto vrijeme, bilo je dostupno

More information

Geant2 - JRA1. Upravljanje mjerenjem i performansama mreža (perfsonar, baza multi-domain nadzorne usluge) Danijel Matek (Srce)

Geant2 - JRA1. Upravljanje mjerenjem i performansama mreža (perfsonar, baza multi-domain nadzorne usluge) Danijel Matek (Srce) Geant2 - JRA1 Upravljanje mjerenjem i performansama mreža (perfsonar, baza multi-domain nadzorne usluge) Danijel Matek (Srce) 21.11.2007, CUC2007, Rijeka Što je to JRA1? Glavni zadatak JRA1 (Performance

More information

Programske paradigme Funkcionalna paradigma

Programske paradigme Funkcionalna paradigma Programske paradigme Funkcionalna paradigma 1. čas: Uvod u funkcionalno programiranje. Programski jezik Haskel. Upoznavanje sa razvojnim okruženjem. Tipovi podataka. Funkcionalno programiranje Stil u programiranju

More information

AROS. 8čas Softver i OS za prenosive uređaje

AROS. 8čas Softver i OS za prenosive uređaje AROS 8čas Softver i OS za prenosive uređaje 1 Zbog velike popularnosti pametnih telefona i tablet uređaja očekuje se da će vrednost tržišta mobilnih aplikacija u narednim godinama iznositi preko 50 milijardi

More information

Windows Phone SDK 8.0 omogućuje kreiranje aplikacija za Windows Phone 8 and Windows Phone 7.5 uređaje. SDK 7.1

Windows Phone SDK 8.0 omogućuje kreiranje aplikacija za Windows Phone 8 and Windows Phone 7.5 uređaje. SDK 7.1 Igor Mirković SDK 8.0 Windows Phone SDK 8.0 omogućuje kreiranje aplikacija za Windows Phone 8 and Windows Phone 7.5 uređaje. SDK 7.1 Windows Phone SDK 7.1 i 7.1.1 omogućuju razvoj aplikacija za Windows

More information

Razvoj C# aplikacije RAD metodom

Razvoj C# aplikacije RAD metodom INFOTEH-JAHORINA Vol. 11, March 2012. Razvoj C# aplikacije RAD metodom Željko Gavrić, Stefan Tešanović studenti prvog ciklusa studija Fakultet za informacione tehnologije, Slobomir P Univerzitet Doboj,

More information

Lekcija 4. Java programiranje sa bazama podataka. dr Svetlana Cvetanović

Lekcija 4. Java programiranje sa bazama podataka. dr Svetlana Cvetanović Lekcija 4 Java programiranje sa bazama podataka dr Svetlana Cvetanović JAVA PROGRAMIRANJE SA BAZAMA PODATAKA Uvod 01 02 03 04 Uvod JDBC Interfejsi Vežba: Preduslovi za pisanje Java koda Zaključak Kreiranje

More information