Wednesday, December 5, 2007

O noua fundatie pentru aplicatiile RIA:Flash Player 9

Flash Player, elementul principal al platformei Flash, a evoluat devenind fundatie si pentru aplicatiile dezvoltate in Flex si pentru aplicatiile RIA din generatiile urmatoare. De-a lungul anilor, acest player, care a inceput ca si client pentru redarea animatiilor, si-a dezvoltat propriul limbaj de programare (Action Script) adaugand suport pentru bucati din ECMAScript standard (acelasi standard care determina dezvoltarea JavaScript). Odata cu releasul lui Flash Player 7, Action Script a acoperit marea majoritate a ECMA standard. Flash Player 9 a fost lansat in acelasi timp cu liniile de produse Flex 2. Odata cu el, a fost introdus si limbajul ActionScript 3, un puternic limbal orientat pe obiecte dezvoltat pentru productivitate si performanta.

Flash Player 8 (lansat in Septembrie 2005), a facut mari progrese cu privire la motorul de renderizare, introducand un set de functionalitati (filtre, controale avansate) si imbunatatiri pentru suportul video. Flash Player 8 deasemenea a imbunatatit modalitatile de comunicare intre mai multe aplicatii care ruleaza cu playerul.





Flash Player 9 a fost construit cu avantajele oferite de versiunea 8, concentrandu-se asupra imbunatatirii executarii scripturilor pe masina virtuala. Defapt, el include un limbaj cu totul nou, optimizat foarte mult, ActionScript Virtual Machine (AVM), cat si o noua versiunea de ActionScript. AVM2 este construit de la zero pentru a sprijini cu succes nevoile programatorilor de RIA. Noua masina virtuala este semnificativ mai rapida, suporta afisarea erorilor in real time si un sistem standard de debug. Include suport pentru sockturi pe biti, permitand programatorilor sa lucreze cu orice protocol pe biti. Deasemenea, Flash Player 9 contine si AVM1, care executa cod AcionScript 1.0 si 2.0, pentru compatiilitate si cu versiunile anterioare.

Odata cu ActionScript 3.0, s-a realizat mai mult decat o simpla legatura cu scripturile ECMA. Limbajul suporta noi functionalitati pentru manipularea datelor, incluzand E4X (ECMAScript for XML), care extinde limbajul si adauga XML-ul ca si modalitate nativa de scriere a codului, lasandu-i pe programatori sa interactioneze mai usor cu acest tip de fisiere. A fost adaugat suport pentru expresii regulate pentru o mai buna parsare si procesare a textelor.




Integrarea PHP-ului in Adobe Flex

Aplicatiile Flex sunt aplicatii RIA (rich internet applications) construite cu ajutorul uneltelor de la Adobe. Aceste aplicatii sunt rulate in interiorul Flash Player–ului.

In acest tutorial vom arata cum se pot obtine informatii dintr-o baza de date folosing PHP-ul ca si back end, si utilizandu-le intr-o aplciatie Flex.

Pentru intelegerea tuturialului, vom face aceasta aplicatie simpla.

In primul rand, vom avea nevoie de crearea bazei de date cu care va interactiona limajul de server PHP. Astfel vom avea :


CREATE TABLE `users` (

  `userid` int(10) unsigned NOT NULL auto_increment,

  `username` varchar(255) collate latin1_general_ci NOT NULL,=

  `emailaddress` varchar(255) collate latin1_general_ci NOT NULL,

  PRIMARY KEY  (`userid`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1

COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;

Deasemenea, vom realiza un script PHP care va adauga useri la aceasta tabela si va exporta un fisier XML, consumat ulterior de catre aplicatia Flex.


<?php

Define( "DATABASE_SERVER", "localhost" );

Define( "DATABASE_USERNAME, "username" );

Define( "DATABASE_PASSWORD", "password" );

Define( "DATABASE_NAME", "sample" );

//connect to the database

$mysql = mysql_connect(DATABASE_SERVER, DATABASER_USERNAME,

DATABASE_PASSWORD);

mysql_select_db( DATABASE_NAME );



// Quote variable to make safe

function quote_smart($value)

{

// Stripslashes

if (get_magic_quotes_gpc()) {

$value = stripslashes($value);

}

// Quote if not integer

if (!is_numeric($value)) {

$value = "'" . mysql_real_escape_string($value) . "'";

}

return $value;

}



if( $_POST["emailaddress"] AND $_POST["username"])

{

//adaugarea userului

$Query = sprintf("INSERT INTO users VALUES ('', '%s',

'%s')", quote_smart($_POST["username"], quote_smart($_POST

["emailaddress"])";

$Result = mysql_query( $Query );

}

//lista userilor

$Query = "SELECT * from users";

$Result = mysql_query( $Query );

$Return = "<users>";

while ( $User = mysql_fetch_object( $Result ) )

{

$Return .= "<user><userid>".$User-

>userid."</userid><username>".$User-

>username."</username><emailaddress>".$User-

>emailaddress."</emailaddress></user>";

}

$Return .= "</users>";

mysql_free_result( $Result );

print ($Return)

?>

Acest cod ar trebui sa se explice singur. Variabilele din _POST sunt transmise prin Flex. Daca adresa de email si usernameul sunt trimise, atunci va urma o adaugare in aza de date. Ulterior, se va lista in formt XML continutul intregii tabele de Useri. Este foarte important de retinut ca nu pot fi transmise informatii din PHP in Flex decat prin intermediul unui fisier cu format XML.


Pana in acest moment, am realizat scriptul PHP si baza de date de care am avut nevoie pentru aplicatia Flex.


Aplicatiile Flex sunt construite folosinf o combinatie intre AS3 si MXML. ActionScript este bazat pe ECMA Script. MXML este un limbaj bazat pe XML-uri.

In principiu, in construirea unei aplicatii, trebuie construita UI cuajutorul XML, si codata cu ajutorul AS3. Acesta este codul pentru interfata grafica (UI) a aplciatiei :


<?xml version="1.0" encoding="utf-8"?>

<mx:Application

xmlns:mx="http://www.macromedia.com/2005/mxml" xmlns="*"

layout="absolute" creationComplete="userRequest.send()">

<mx:HTTPService id="userRequest"

url="http://localhost/flex/php/request.php" useProxy="false"

method="POST">

<mx:request xmlns="">

<username>{username.text}</username><emailaddress>

{emailaddress.text}</emailaddress>

</mx:request>

</mx:HTTPService>

<mx:Form x="22" y="10" width="493">

<mx:HBox>

<mx:Label text="Username"/>

<mx:TextInput id="username"/>

</mx:HBox>

<mx:HBox>

<mx:Label text="Email Address"/>

<mx:TextInput id="emailaddress"/>

</mx:HBox>

<mx:Button label="Submit" click="userRequest.send()"/>

</mx:Form>

<mx:DataGrid id="dgUserRequest" x="22" y="128" dataProvider="{userRequest.result.users.user}">

<mx:columns>

<mx:DataGridColumn headerText="User ID"

columnName="userid"/>

<mx:DataGridColumn headerText="User Name"

columnName="username"/>

</mx:columns>

</mx:DataGrid>

<mx:TextInput x="22" y="292" id="selectedemailaddress"

text="{dgUserRequest.selectedItem.emailaddress}"/>

</mx:Application>



Aceasta aplicatie face urmatoarele lucruri:


<?xml version="1.0" encoding="utf-8"?>

<mx:Application

xmlns:mx="http://www.macromedia.com/2005/mxml" xmlns="*"

layout="absolute" creationComplete="userRequest.send()">

Acestea sunt primele doua linii de cod ale aplicatiei Flex. Prima linie declara ca acest document este unul de tip XML. Al doilea declara ca este o aplicatie, declara layout-ul sa fie absolut, iar in final, "creationComplete="userRequest.send()", spune ca la sfarsitul creerii interfetei grafice pentru user, sa apeleze functia send() a idului userRequest.

<mx:HTTPService id="userRequest"

url="http://localhost/flex/php/request.php" useProxy="false"

method="POST">

<mx:request xmlns="">

<username>{username.text}</username><emailaddress>

{emailaddress.text}</emailaddress>

</mx:request>

</mx:HTTPService>


In aceste linii de cod setam HTTPService-ul pentru a trimite si primii date de la codul PHP scris de noi. Setam id-ul userRequest si ii dam URL-ul catre scriptul de PHP. Ca si metoda de trimitere a informatiilor alegem POST. (am putea alege GET insa atunci ar trebui sa schimbam si codul de php scris).

Metoda de request contine 2 variabile, username-ul si adresa de email. Valoarea pentru username este setata la valoarea text a idului cu numele de «username«, iar valoarea pentru variabila PHP _POST[“emailaddress”] este setata la valoarea atributului text al elementului cu idul “emailaddress”.

<mx:DataGrid id="dgUserRequest" x="22" y="128"

dataProvider="{userRequest.result.users.user}">

<mx:columns>

<mx:DataGridColumn headerText="User ID"

columnName="userid"/>

<mx:DataGridColumn headerText="User Name"

columnName="username"/>

</mx:columns>

</mx:DataGrid>

<mx:TextInput x="22" y="292" id="selectedemailaddress"

text="{dgUserRequest.selectedItem.emailaddress}"/>

</mx:Application>

In acest cod, am cosntruit partea grafica in care se vor afisa datele aduse din baza de date. Aici avem un DataGrid care se populeaza cu XML-ul provenit din serviceul HTTP userRequest.

XML-ul returnat arata de forma urmatoare:

<users>

<user>

<userid>1</userid>

<username>Mihai Trantea</username>

<emailaddress>mihai.trantea@i-neo.ro</emailaddress>

</user>

<user>

<userid>2</userid>

<username>Alexandru Smeureanu</username>

<emailaddress>alexandru.smeureanu@i-neo.ro</emailaddress>

</user>

</users>




Getting Started with Adobe Flex 2

Cu totii stim ca Flex a fost vazut inca de la inceput ca un produs uimitor si revolutionar. Daca te gandesti la Coldfusion ca la o metoda de a construi pagini HTML, la Flex te gandesti ca la po metoda de a construi filmulete flash in real time. Din pacate, majoritatea oamenilor considera ca pretul este o importanta problema in utilizarea Flexului. Aceasta problema a fost rezolvata odata cu aparitia versiunii Flex 2.
Flex 2 este produs din urmatoarele componente:



    • ActionScript 3: limbajul de programare al produsului Flash. Odata cu aparitia Flash Playerului 9, apare si o noua versiune de Actionscript, care confera o functionalitate avansata a filmuletelor flash.

    • MXML (Maximum Experience Markup Language) : reprezinta o firma de XML. Se poate folosi pentru a creea flimulete flash cu ajutorul aplicatiei Flex. De cele mai multe ori, exista o paralela intre codul scris in ActionScript si codul din MXML, si invers.

    • FlashPlayer 9 : este necesar rularii oricarei aplicatii realizate in Flex. Ofera suport pentru ActionScript 3.

    • Flex SDK: este tot ce aveti nevoie pentru a creea aplicatii in Flex. Contine un compilator alaturi de toate componentele integrate (care contin si o serie de elemente dedicate userului). Ordinea in realizarea unei aplicatii Flex este : scrieti cod MXML in orice editor, folositi SDK-ul pentru a-l transforma in fisier swf, apoi rulati-l in orice web server. Flex SDK este gratuit.


    • Flex Builder 2: este un editor bazat pe Eclipse. Cu toate ca aceste aplicatii le puteti construi si cu ajutorul Flex SDK-ului gratuit, acest editor are foarte multe avantaje, printre care un debuger step by step. El poate fi achizitionat ca si produs separat sau ca si plug-in al Eclipse-ului.

    • Flex Charting Components : Acest pachet este disponibil ca si pachet individual, sau ca si modul al Flex Builder-ului. Ofera posibilitatea dezvoltarii de charturi intr-o maniera foarte usoara cu posibilitati de captare a eventurilor.

    • Flex Data Services : Aceasta componenta va permite sa oferiti date browserului.




Sunday, November 25, 2007

Cum sa faci rapid un meniu cu css

Ai nevoie de 4 elemente: un fisier css, un fisier html si 2 seturi de imagini: unul pentru butoanele normale (neactivate) si unul pentru butoanele active (deasupra caruia se afla cursorul – starea hover).

Pas 1: Se editeaza un fisier css:

.menu_buton1

{
cursor: pointer;
background-image:url(img/b_01.jpg);
}

.menu_buton1_hover
{
cursor: pointer;
background-image:url(img/b_01_hover.jpg);
}

Este nevoie de 2 stiluri pentru un buton, stilul default ( cand butonul nu e activ ) – menu_buton1, si stilul care se aplica atunci cand vei fi cu mouse-ul deasupra lui : menu_buton1_hover.

Cursor: pointer va face sa apara cursorul tip link deasupra imaginii, iar background-image va seta imaginea dorita.

Se repeta cele doua stiluri pentru fiecare buton al meniului.

Pas 2: Se editeaza fisierul html:


Vom face un tabel fara margini si fara spatii intre celule.

<table border="0" cellpadding="0" cellspacing="0">

<tr>

<td width="121" height="75" class="menu_buton1" onMouseOver='this.className=" menu_buton1_hover"' onMouseOut='this.className=" menu_buton1"' onClick='window.location = "link.html"'>&nbsp;

</td>

</tr>

</table>



Fiecare celula va fi un buton al meniului. Vom seta in fiecare celula dimensiunile dorite prin width si height, apoi ii vom defini clasa default: menu_buton1.


Vom folosi event-urile td-ului pentru a putea schimba stilul celulei fara sa reincarcam pagina. Codul din event-ul onMouseOver de exemplu, se va apela automat cand trecem cu cursorul deasupra elementului. this.className=" menu_buton1_hover" va face ca stilul elementului curent (td-ul nostru) sa se modifice in menu_buton1_hover. Acest stil va seta o alta poza de fundal (vezi pasul 1). La iesirea cu mouse-ul de deasupra elementului, vom schimba iar stilul la cel initial.


Pentru a simula efectul butonului, folosim onClick unde vom afisa alta pagina prin window.location = `link.html`.


Ca si continut, td-ul va avea un in el, adica un spatiu simplu care nu va aparea pe ecran, dar care trebuie pus deoarece td-ul trebuie sa contina ceva in el. Se poate pune o imagine cu un pixel transparent (gif) de exemplu, varianta chiar mai recomandata decat un spatiu.


Astfel un simplu td, cu 2 poze de fundal si cateva linii de cod, s-a transformat intr-un buton adevarat. In functie de cat de inventivi suntem, putem prezenta utilizatorului interfete atractive, dinamice, evoluate. Acest gen de meniuri este foarte simplu de utilizat si intretinut, singurul lucru dificil fiind designul efectiv al pozelor.

Saturday, November 24, 2007

Web crawling sau despre cum sa obtii o baza de date….

....O baza de date cu linkuri care te-ar putea interesa, o baza de date cu adrese de email :D ,o baza de date cu temperaturile sa zicem pentru mai multe orase sau pur si simplu o baza de date cu titlurile dintr-o pagina de ziar.Totul se reduce la a reusi sa extragi dintr-o pagina web, avand in spate un cod uneori mult prea incalcit pentru muritorii de rand, bucatica aia de informatie de care ai nevoie.Normal ca de la pagina html pe care o obtii printr-un simplu “View Source” si pana la un XML curat, plin cu bunatati pentru baza ta de date si mai ales simplu de parsat, e un oarecare drum.Pai sa vedem, sa zicem ca vrei sa folosesti XPath sau..XQuery sau de ce nu poate chiar simplul DOM pentru a parsa un fisier XML.Dar de unde iei XML-ul ?

Pasul 1:Faci rost de Tidy.Tidy pentru Java, Tidy pentru Python,ce preferi.

Pasul 2:Faci putina “curatenie “ in fisierul html si utilizand Tidy, obtii un XHTML, adica un HTML mult mai ordonat, cu toate tagurile inchise.

Pasul 3:Tratezi XHTML-ul ca un XML si te apuci sa parsezi :)

Ce-i cu Tidy?Pai interfete evoluate, dar prea evoluate, prea….grabite.Cam 40% din paginile HTML din intreg Internetul sunt scrise “grabit”, cu erori de genul <br> in loc de <br/>, cu taguri neinchise, totul pentru ca browserele HTML accepta orice input, corect sau incorect, incercand sa-l interpreteze cum pot mai bine.Un parser insa va sesiza toate aceste erori iar modalitatea cea mai simpla de a ajunge de la un HTML astfel scris la un riguros XHTML este acest Tidy.

Friday, November 23, 2007

Orcas-Visual Studio 2008 Beta 2

Dupa ce m-am jucat putin cu noul MS Visual Studio 2008 nume de cod Orcas, pentru prima oara, in intreaga suita Visual, m-am intrebat: ce e nou? Pentru utilizatorii vechiului Visual Studio raspunsul aparent va fi probabil … - Nimic!

Aceasta a fost prima mea reactie cand am testat VS2008 Beta 2. Dupa o scurta cautare pe stie-ul Microsoft am gasit documente care descriu cateva facilitati noi si aparent folositoare. Platforma Visual Studio este puternica si robusta - de la versiunea din 2003 pana in 2005, in VS s-a consolidat multe facilitati si unelte de dezvoltare, si nu exista practic o alternativa pentru utilizatorii care dezvolta aplicatii C/C++ pe platforme mobile de exemplu sau care deszvolta o aplicatie Windows pentru platforme x86.

Comparand Orcas cu predecesorul sau (VS2005) si considerand ca este in dezvoltare de peste trei ani, toate facilitatile noi lasa pana la urma un gust amar. Ma asteptam la mai mult de la aceasta versiune noua a platoformei.

Asa cum Microsoft a lansat Vista varianta Beta la inceputul lui 2007 tot asa in 2008 nu va face mare zarva in jurul lui VS2008. Totusi Microsoft a publicat destul de mult continut pe site-urile sale ce descrie noile facilitati din Orcas. Realitatea este ca VS 2008 introduce facilitati pe care doar un segment specific din utilizatorii sai le pot aprecia, in special cei care lucreaza cu .NET Framework.

Microsoft a spus clar ca nu incearca sa imbunatateasca experienta unui utilizator in Visual Studio dar mai curand se concentreaza pe popularizarea si utilizarea cat mai usoara a frameworku-ului pentru Windows Vista (referindu-se la C#, VB, ASP.NET).

Saturday, November 17, 2007

Lupta titanilor - Partea III

După ce am discutat despre fiecare tabăra e momentul sa comparam performantele.

Prima întrebare pe care ne-o punem este ce mari companii utilizează aceste tehnologi?

Flex

Acesta este deja la versiunea 2.0 se anunţa in curând apariţia Flex SDK 3.0. Este deja lansat si s-a bucurat de o perioada considerabila de monopol pe acest segment:

Amsterdam-Schiphol Airport

Sherwin-Williams Color Visualizer

Sony Ericsson Product Catalogue

Yahoo! Maps

Yahoo! Messenger for the Web


Pentru curiosi exista un site dedicate protofoliului acestei tehnologi :
http://flex.org/showcase/ Evident si acest site este creat tot in FLEX

Microsoft Silverlight

Tehnologie ne-lansata oficial pe piaţa decât intr-o varianta rudimentara, bazându-se pe un singur limbaj .Net JavaScript (varianta .NET nu cea intalnita in browsere deşi este asemănătoare ca sintaxa) se bucura deja de o suita impresionanta de clienţi :
http://silverlight.net/Showcase/

Microsoft Expression Design (WPF normal nu Silverlight)

Microsoft Expression Blend (WPF normal nu Silverlight)

Yahoo! Messenger (WPF normal nu Silverlight)


La acest capitol Flex castiga. Yahoo este un nume greu, Yahoo Maps merge superb! Speram sa existe un comeback din partea Silverlight odată cu lansarea oficiala 1.1. In tabăra Microsoft este foarte interesant faptul ca cele doua produse Expression (ce sunt in competiţie cu Adobe Dreamwaver si Image Ready) sunt create intr-o tehnologie noua pentru care nu exista inca un IDE. Pentru mine acest lucru arata ca .Net 3.0 este stabil.
Cat despre Yahoo Messager ... eu unul nu m-as lauda ca e facut in WPF ... este greoi consuma memorie si are tot felul de comportamente ciudate ce variază de la un calculator la altul... yacs....

A doua problema este cea legata de Framework ... Cati oamenii il au instalat? Cum il instalez... prefer sa parasesc site-ul sau instalez Framework-ul... Ce e aia Framework?

In funcţie de persoana răspunsul evident variază, insa câteva lucruri sunt clare pentru toti. Flex se foloseşte de Macromedia – Adobe Shockwave / Flash care este de ceva timp bun pe piaţa. Acest lucru înseamnă ca mulţi oamenii îl au si se bucura de el.... Sa nu uitam ca la un moment dat daca instalai Windows XP undeva in Costum Instalation puteai sa instalezi odată cu windows-ul si suportul de Shockwave o versiune veche si incompatibila cu Flex-ul totuşi. Microsoft-ul are avantajul Windows-ului... Oricand acesteia pot instala prin intermediul Windows Update-ului orice framework... Momentan Framework-urile sunt trecute la pachete opţionale - o simpla schimbare a categoriei ar putea spulbera avantajul Adobe.

Lupta titanilor - Partea II

Daca in prima parte am discutat pe scurt despre tabăra Adobe si am amintit cate ceva despre cei doi soldaţi ai săi in aceasta lupta, in cea de a doua parte vom discuta despre Microsoft si conceptul Avalon ..... ba nu WinFx ...... ba nu Orcas ..... ba nu WPF….ba nu Arrowhead.
Atâtea nume de cod si atâtea denumiri care mai de care mai ciudate pentru noile concepte si facilitaţi aduse de noile framework-uri. Desigur când spun noile framework-uri ma refer la NET Framework 3.0 (codename WinFX) si mai recentul NET Framework 3.5.

Nu intrebati de ce a aparut deja Framework 3.5 in momentul in care Framework 3.0 abia isi face debutul pe Windows Vista pentru ca nu voi putea raspunde exact.

Cert este ca Microsoft a introdus .NET Framework 3.0 WinFx in Vista default acum cel puţin un an, un an si jumătate ceea ce inseamana ca acesta exista de ceva vreme. Problema este ca Microsoft nu a pus la dispozitie utilitare de dezvoltare noi pentru acesta oferind decât o extensie pentru Visual Studio 2005 (destinat .NET 2.0). Aceasta extensie poate fi downloadata de la adresa următoare:
http://www.microsoft.com/downloads/details.aspx?familyid=F54F5537-CC86-4BF5-AE44-F5A1E805680D&displaylang=en

Pentru cei care nu au curiozitatea sa deschida acest link am sa dau un citat care mie unul mi s-a parut foarte intereant si m-a facut sa nu mai downloadez nimic:

The Visual Studio 2005 extensions for.NET Framework 3.0 (WCF & WPF), November 2006 CTP provides developers with support for building .NET Framework 3.0 applications using the released version of Visual Studio 2005. These tools are provided as an early preview of technology being considered for the Orcas release of Visual Studio. These tools are not supported by Microsoft but provided as is to enable early adoption of the .NET Framework 3.0 platform. Users will be expected to upgrade to the Visual Studio Orcas release when that becomes commercially available. Please fully review the EULA provided to understand the terms of this release.

Practic folosirea in sens comercial a programelor create cu aceasta extensie nu este posibila deoarece extensia este un preview (denumirea de beta ar fi fost mai elocventa) a unei tehnologii viitoare ce va necesita o licenta aditionala.

Orcas este numele de cod pentru viitorul Visual Studio 2008 ce va lucra cu .... surpriza .NET Framework 3.5.

Revenind la oile noastre ce ne interesează din tabăra Microsoft este noul concept:
WPF Windows Presentation Foundation. Acesta se imparte in mai multe componente.

Ideea de baza este ca aproximativ acelaşi cod rulează atât in browser cat si ca aplicaţie normala de sine stătătoare. Faptul ca aplicaţia este capabila sa ruleze in Browser transforma practic orice aplicaţie de sine stătătoare intr-o aplicaţie web client-side.

Controale utilizabile sunt aceleaşi atât pentru varianta browser cat si pentru varianta aplicaţiei normale. Aceste controale sunt asemantoare cu cele din NET.2.0 Windows Forms (acesta a ramas si in .NET 3.0 - vom discuta in alt articol).

WPF permite interoperabilitatea cu Windows Forms via un set de controale special construite ce permit comunicare dintre cele doua tehnologi. (sa nu uitam ca si Widows Forms era capabil intr-o măsura mica sa ruleze in browser)

WPF este tehnologia pretendenta din partea Microsoft vârful de lance este WPF/E - Windows Presentation Foundation Everywhere. WPF/E este o ramura ce s-a separat de WPF, scopul acestora este sa ofere un framework care sa ruleze in cat mai multe browsere. Frameworkul acesta derivat se numeste Silverlight si este capabil sa ruleze oficial si in Firefox si chiar in Safari pe MAC-uri.

Silverlight aduce acelaşi elemente inovative ca si Flex-ul. Layout intr-un sistem derivat din XML -XAML (vs MXML) usor de folosit usor de inteles usor de interpretat si parsat (interesant pentru domeniul Interfete Evoluate). Similitudinile sunt fantastice totul este vector-based, acelasi genuri de controale aceleasi suport ptr 3D, 2D, aceasi idee de efecte de tranzitie, acelasi suport ptr CSS. Fiecare parte si-a adus limbajele favorite : ActionScript vs .NET languages.

Privit in ansamblu Silverlight pare sa fie o clona a Flexului; ramane de vazut cat este de fiabil si cum se va comporta.

Tuesday, November 13, 2007

Lupta titanilor - Partea I

Cand vorbim despre titani in lumea softului ne gândim desigur la firme precum Adobe si Microsoft.

Recent cele doua companii fiecare lidere de piaţa pe segmentul lor au decis sa se atace fiecare îndreptându-se spre segmentul de piaţa dominat de cealalata.

Prima lupta se refera la bătălia pentru segmentul tehnologiilor web client-side.

Când vorbim de tehnologii web client-side primul lucru care ne vine in minte este cunoscutul Adobe Flash. Acesta exista de mulţi ani pe piaţa si se bucura de o mare popularitate in rândul designerilor de pagini web.

Odată cu preluarea de către Adobe a competitorului direct Macromedia aceştia au preluat si Flex Data Services. Flex-ul este un produs bazat pe Flash gândit sa facă mai uşoara viata unui programator oferindu-i modele de lucru si programare. Un mare atu al Flex-ului este faptul ca layout-ul se face prin descrieri MXML, model bazat pe fişiere XML acest lucru facilitând dezvoltarea rapida a interfetei grafice.

Daca aruncam o privire pe screen-shoturile alăturate o sa observam o lista impresionanta de controale. Acesta lista îmi aduce aminte de IDE-urile specializate in dezvoltarea de aplicaţii Windows ce aveau un designer vizual puternic si o suita de controale la fel de de impresionanta precum: Delphi, C#/C Builder, Intelli Java, NetBeans, Visual Studio... Se pare ca Flex oferă aceeaşi putere si nu oriunde .... chiar pe WEB.


La prima vedere totul suna perfect:


  • Flexibilitate asemănătoare cu cea aplicaţiilor Windows intr-un browser. Event-uri si triggere ce ar fi aproape imposibil de stăpânit si programat cu AJAX si JavaScript.
  • Aplicaţiile sunt state-aware, s-a terminat cu QueryString-ul (GET), POST, Session, Cookies sau alte metode care mai de care pentru a stoca variabilele de la o pagina la alta.
Din păcate perfecţiunea are si ea un cost... minusurile desigur exista si dor:

  • Aplicaţia rulează pe calculatorul clientului intr-un sandbox fara drepturi si este dependenta de puterea de procesare a clientului.
  • Este nevoie de Macromedia Shockwave/Flash plugin pentru a putea beneficia de aceasta experienţa.

Despre ce e vorba?

De fapt, ce-i cu proiectul asta? Proiectul are ca scop nu numai familiarizarea studentilor cu ceea ce se numeste tehnologie web dar si acomodarea acestora cu “lupta ”pentru mediatizarea unui produs de internet, cu tot ceea ce inseamna aceasta:indexare pe motoare de cautare, inscriere pe directoare web si pe monitoare de trafic. (si da, chestia asta chiar necesita timp si rabdare si perseverenta)

Oricum, dupa ani de electronici, matematici, fizici,(no offence) uite ca studentii de la Automatica si Calculatoare, acum, in anul 5 de facultate invata si ei .... tehnologii web. (said it)

Blogul, aici de fata :), are ca scop promovarea site-ului destinat proiectului si se bazeaza pe articole despre tehnologiile prezentate in cadrul orelor de Interfete Evoluate sau tehnologii utilizate de membrii echipei in realizarea temelor : XML,DTD,XPATH,XQUERY,CSS,XHTM.

Relansare site

Relansare! Da, este 13, da,este marti 13, da, va trebui sa asteptam alte 2 saptamani (in cel mai fericit caz) pentru indexarea la Google dar noi suntem optimisti si va ... redirectionam: http://interfete-evoluate.i-neo.ro/

De ce?

Pentru ca traficul ne....da nota:D. Si cum inainte eram sub tutela si sub...umbrela traficului celor de la www.i-neo.ro (nu ca nu ne era bine), ni s-a cerut sa fim pe picioarele noastre si sa ne bazam pe propriul trafic.

Va fi la fel de bine,u will see!

Tuesday, November 6, 2007

Lansare

De astazi este disponibil siteul echipei : www.i-neo.ro/ie .Acolo vor fi postate enunturile temelor primite de-a lungul semestrului la Interfete Evoluate,materie din aria curriculara a specializarii C2.
De asemenea veti putea gasi rezolvarile fiecarui membru al echipei pentru respectivele teme. (Cred ca cei mai multumiti vor fi cei ce vor studia anul viitor Interfete Evoluate:D)