Documente Academic
Documente Profesional
Documente Cultură
Studeni: Moaca Alexandru, grupa 1058 Muceanu Constantin Razvan, grupa 1058
Bucureti, 2011
Cuprins
Cuprins.............................................................................................................................................2 1.INTRODUCERE..........................................................................................................................2 1.1. Necesitatea proiectului..........................................................................................................2 1.2. Obiectivele proiectului..........................................................................................................3 1.3.Cadrul general.......................................................................................................................3 2. DESCRIEREA SOLUIEI .........................................................................................................3 2.1. Descrierea scenariului...........................................................................................................3 2.2.Descrierea functionalitatii.....................................................................................................5 3. IMPLEMENTAREA SOLUIEI PRIN TEHNOLOGIA JAVA ME ........................................8 4. IMPLEMENTAREA SOLUIEI PRIN TEHNOLOGIA .NET CF .......................................14 4.1.Modulul Logare...................................................................................................................15 4.6 Accentuare probleme/avantaje aprute la implementarea soluiei prin .NET CF...............23 5. ANALIZA COMPARAT A CELOR DOU SOLUII.........................................................24 7. BIBLIOGRAFIE........................................................................................................................25 Anexe:............................................................................................................................................26
Aplicaiile realizate ncearc sa solutioneze intr-un mod rapid si util problemele intampinate in organizarea unui eveniment,atat din punctul de vedere al organizatorilor ,cat si din punctul de vedere al alegerilor clientului. Aplicaiile pentru organizatorii de evenimente urmaresc construirea unui mod flexibil de informare complet a clientului , cu privire la costul organizarii unui eveniment, n funcie de alegerile acestuia,puse la dispozitie de catre aplicatie.
1.3.Cadrul general
Aplicaiile sunt destinate domeniului de organizari de evenimente. Aplicaiile faciliteaz procesul de organizare a unui eveniment, reducnd timpul petrecut atat de client n cutarea acestor informaii,dar si simplificand pasi necesari de parcurs de catre oragnizatorii de evenimente,in prezentarea ofertelor. Datele prezint avantajul unui acces sigur, uor i rapid,atat pentru cei cu experienta in utilizarea dispozitivelor mobile,cat si pentru cei carora utilizarea acestui tip de dispozitiv nu le este familiara.
Eficientizarea procesului de selectionare a facilitatiilor oferite de catre organizatorii ,in vederea derularii unui eveniment in conformitate cu cerintele clientului, urmareste parcurgerea ctorva pai simpli. Organizatorul de evenimente va deschide aplicaia.Primul ecran va contine o procedura de logare,unde se vor cere un username si o parola pe baza carora organizatorul se va conecta incadrul aplicatiei. Urmatorul ecran care va aparea dupa selectarea butonului de conectarecontine urmatoarele optiuni: - Creare eveniment - Vizualizare eveniment
Creare eveniment Organizatorul alege prima opiune din meniu, Creare evenimet Pe ecran vor aparea o serie de campuri pe care organizatorul le va completa in functei de datele si preferintele clientului,se va putea alege tipul evenimentului,petrecere sau conferinta,se vor cere o serie de date personale ale clientului ,se va stabili numarul de participanti si in functie de alegerea si optiunile disponibile,locatia evenimentului. Se va oferi posibilitatea alegerii unei locatii de catre client,alta decat unu dintre cele doua sali predefinite. In continuare se va prezenta un estimativ final al oraganizarii evenimentului. Dupa completarea datelor necesare si alegerilor clientului se va solicita o semnatura digitala pentru validarea evenimentului,cu posibilitaea de a reseta semnatura,la o eventuala eroare a clientului . Astfel,se va afisa un cost estimativ al evenimentului,in functie de pachetele si facilitatile alese de catre client. Optiunea Inapoi, care permite ntoarcerea utilizatorul la ecranul principal.
Vizualizare eveniment
Selectarea butonului Vizualizare eveniment va conduce organizatorul catre un ecran care va descrie evenimentul tocmai creat,dar si toate acele evenimente care au fost create de catre organizatorul respectiv. Ecranul va contine o lista unde vor aparea evenimentele.In aceasta lista se vor afisa numele si data organizarii evenimentului.Datele vor fi sortate in tabel in functie de cheia primara a tabelei. La apasarea de click pe una din intrarile din tabel se va deschide un ecran ce va contine detalii despre eveniment. Fiecare ecran va contine in partea de jos optiunile :Inapoi si Iesire.In momentul alegerii optiunii inapoi ,aplicatia va reveni la ecranul anterior afisat,iar la alegerea optiunii iesire aplicatia se va inchide si va aparea ecranul principal el telefonului.
2.2.Descrierea functionalitatii
Aplicaia este proiectat pe urmtoarele seciuni: - Logare: - Username - Parola - Creare eveniment
- Creare eveniment:
- Client - Data - Tip eveniment : - Conferinta - Petrecere -Participanti -Locatie: - Predefinita - Optiune client -Posibilitate alegere:- Sala - Sonorizare - Mancare+Racoritoare - Alcool - Dj - Transport - Interpret - Proiector -Semnatura
- Vizualizare evenimente:-Nume si Prenume client -Data organizarii evenimentului -Date despre eveniment
La selectare butonului Creare eveniment va aparea un MassageBox,care va contine costul estimativ al evenimentului,calculat in functie de facilitatile alese de client. Detaliile organizarii evenimentului vor fi sticate in baza de date pentru gestiune.
Stocare datelor se face cu ajutorul framework-ului persisent Floggy. Cadrul Floggy este un cadru persistent pentru platforma J2ME, liceniat de ctre Apache License . Cadrul permite persistena obiectelor mult mai usor decat daca se utilizeaza RMS. RMS tradiionale (Record Management System), persist doar gama de octei, care aduce provocri pentru depozitarea obiectelor complexe. Arhitectura este mprit n dou niveluri: compilare / ambalare i de aplicare. n nivelul de elaborarea, componenta waever este responsabil pentru primirea byte-codul i creeaz infrastructura persistenta pentru fiecare obiect pentru a fi stocate. ntr-un ambalaj, floggy cadrul API este "mpins" n cererea de logic. n cele din urm, n timpul etapei de punere n aplicare, Floggy Framework poate fi utilizat prin metodele sale: economii, mutri, ediiile obiect i interogri.
Modulul Start este reprezentat de clasa StartPage (fig.1). De aici de pot alege optiunile : 1.Creare de eveniment 2.Vizualizare Evenimente ClasaStart extinde un Canvas pe care sunt desenate 2 patrate si 2 stringuri.
Prin alegerea optiunii Creare Eveniment din fereastra pricipala se deschide un nou form Creare Eveniment (fig.2). Clasa extinde un Form si are in cadrul ferestre mai multe elemente de tip textfield , choicegroup etc. Formul cuprinde informatii necesare creeri de noi evenimente: numele clientului , telefonul , tipul evenimentului , data evenimentului , localitatea , locatia , numarul de participanti precum si pachetele oferite de companie pentru organizarea evenimentelor. Din optiunea Meniu se pot alege 2 optiuni:
1.Estimarea Costurilor calculeaza costul estimativ al evenimentului in functie de tipul evenimentului , numarul de participanti sau de tipul de pachete dorit.
if(cmbPachet.getString(k).equals("Food&Drinks")){ costuri=costuri+(nrPers*5); } if(cmbPachet.getString(k).equals("Transport")){ costuri=costuri+(nrPers*2); }
2. Salveaza salveaza datele introduse. Rezervari = new Rezervari(); try { PersistableManager.getInstance().save(rez); } catch (FloggyException ex) { }
Formularul Vizualizare Clienti este format dintr-un ChoiceGroup in care sunt afisate informatii despre evenimentele oraganizate de companie(numele clientului , tipul evenimentului si data evenimentului). Datele sunt citite dint-o colectie in care au fost salvate toate evenimentele firmei.
... ObjectSet objSet = PersistableManager.getInstance().find(Rezervari.class, null, null); for(int i=0;i<objSet.size();i++){ try { rezervare = (Rezervari) objSet.get(i); } catch (FloggyException ex) { ex.printStackTrace(); }
...
4.1.Modulul Logare
4.2.Modulul Meniu
Implementarea capacitii de a trimite emailuri a fost facil datorit transparenei structurii Pocket Outlook API.
Din punctul de vedere al dezvoltatorului aplicaiilor, C# este preferat pentru crearea unui program pentru un dispozitive mobile, deoarece e foarte asemntor cu dezvoltarea aplicaiilor Windows Forms. Emulatorul este integrat n Visual Studio, fiind necesar doar rularea care lanseaz emulatorul i aplicaia scris. Avantajul Java este reprezentat de faptul c este un limbaj de programare care ruleaz indiferent de platform (Win 98/2000/XP, Unix,Linux, etc.) i c este un limbaj sigur. Spre deosebire de Java ME, .NET Compact Framework folosete n ntregime librriile .NET Framework (dar adaptate pentru dispozitivele mobile).
6. CONCLUZII
Programarea n C# este asemntoare cu dezvoltarea aplicaiilor Windows Forms, astfel c este indicat pentru lucrul cu dispozitive mobile. Emulatorul este integrat n Visual Studio, fiind necesar doar rularea care lanseaz emulatorul i aplicaia scris. Avantajul tehnologiei Java este c este un limbaj de programare care ruleaz indiferent de platform (Win 98/2000/XP, Unix,Linux, etc.), fiind de asemenea i un limbaj sigur.
7. BIBLIOGRAFIE
http://revistaie.ase.ro/content/31/Pocatilu%2BToma.pdf http://pocatilu.ase.ro http://www.sun.java.com/ http://java.sun.com/j2me http://www.nokia.com http://www.siemens-mobile.com/developer http://www.microsoft.com/downloads/en/details.aspx?FamilyID=06111A3A-A651-4745-88EF3D48091A390B&displaylang=en http://www.microsoft.com/windowsphone/en-us/howto/wp6/sync/prepare-to-sync-windowsphone-6-5-with-my-computer.aspx http://netbeans.org/downloads/index.html http://www.oracle.com/technetwork/java/javase/downloads/jdk6-jsp-136632.html http://www.oracle.com/technetwork/java/javame/javamobile/download/sdk/index.html http://www.roseindia.net/j2me/ https://www.astraonline.ro/ http://www.developer.com/ws/pc/article.php/3556186/Fast-and-Simple-Mobile-Access-toPocket-Outlook-Data.htm http://www.go4expert.com/forums/showthread.php?t=1484
Anexe:
1. Java ME MidletMain midletul pricipal care porneste aplicatia.
package main; import javax.microedition.lcdui.Display; import javax.microedition.midlet.*; /** * @author moacaaa */ public class MidletMain extends MIDlet { public static Display mmDispaly=null; public MidletMain() { mmDispaly = Display.getDisplay(this); }
public void startApp() { StartPage sp = new StartPage(this); mmDispaly.setCurrent(sp); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public static Display getMMDisplay(){ return mmDispaly; } }
In momentul pornirii aplicatie porneste clas StartPage care este setata ca pagina de pornire din MidletMain:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package main; import eveniment.CreareEveniment; import eveniment.VizualizareEveniment; import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Graphics; import javax.microedition.lcdui.Image; import javax.microedition.midlet.MIDletStateChangeException; /** * * @author moacaa */ public class StartPage extends Canvas implements CommandListener { private MidletMain midletMain; private Command cmdAdaugaEv; private Command cmdVizualizareEv; private Command cmdExit; public StartPage(MidletMain midletMain){ this.midletMain=midletMain; comandListeners(); }
private void comandListeners(){ cmdExit = new Command("Exit", Command.EXIT, 1); cmdVizualizareEv = new Command("Vizualizare Evenimente", Command.SCREEN, 1); cmdAdaugaEv = new Command("Adauga Eveniment", Command.SCREEN, 1); this.addCommand(cmdExit); this.addCommand(cmdVizualizareEv); this.addCommand(cmdAdaugaEv); this.setCommandListener(this); } protected void paint(Graphics g) { g.setColor(0,173,171); g.fillRect(0, 0, this.getWidth(), this.getHeight()); Image image=null; if (image == null) { try { image = Image.createImage("/DSC01805.jpg"); } catch (Exception ex) { g.setColor(0xffffff); g.drawString("Failed to load image!", 0, 0, Graphics.TOP | Graphics.LEFT); return; } } // g.drawImage(image, 0, 0, Graphics.TOP | Graphics.LEFT); int width=getWidth(); int height = getHeight(); g.setColor(0); g.setGrayScale(100); g.drawRect(60,50, width/2, height/4); g.drawRect(60, 140, width/2, height/4); g.setColor(147, 195, 158); g.fillRect(60,50, width/2, height/4); g.setColor(0,0,0); g.drawString("Creare", 90, 80, 0); g.setColor(147, 195, 158); g.fillRect(60,140, width/2, height/4); g.setColor(0,0,0); g.drawString("Vizualizare", 75, 170, 0); } public void commandAction(Command c, Displayable d) { if (c==cmdExit){ midletMain.destroyApp(false); midletMain.notifyDestroyed();
} if(c==cmdAdaugaEv){ CreareEveniment cv = new CreareEveniment(midletMain); MidletMain.getMMDisplay().setCurrent(cv); } if(c==cmdVizualizareEv){ VizualizareEveniment vv = new VizualizareEveniment(midletMain); MidletMain.getMMDisplay().setCurrent(vv); } } }
2. .NET