Thursday, December 18, 2008

Ünnepek



Silverlight

Már régóta gondolkoztam, hogy milyen új technológiát lenne érdemes megtanulni, és mikor...Ugy itt az a baj, hogy ma már olyan gyorsan változik a technológia és olyan összetett (itt már nem elég egy nyelvet megtanulni, hozzájön az a több ezer objektum és szolgáltatás hiearchia, ami összetett programokhoz szükséges), hogy ezt érdemes megfontolni..pl. ugye ma él a Dot.NET, de meddig? 5év múlva kerül a süllyesztőbe, vagy 10év múlva? A mai VisualStudióval készült projektet 2 év múlva egy új VS-sel már nem lehet lefordítani, kapható pedig már nem lesz a régi...

Technológiák száma is már szinte végtelen: J2EE, ASP.NET, Silverlight, WCF, WFP bla,bla.......
Nagy kérdés mikor érdemes váltani és mire? Ugye ha az ember egy munkahelyen dolgozik, akkor ez adott - amit a munkahely megkíván.. Viszont Én és sokan olyanok vagyunk, hogy szeretnénk valami újjat, valami kihívást, valami mást is (ha máshogy nem akkor szabadidőmben..)

Most sikerült a Silverlight-ot kiválasztanom (nem pénzérmével). Mi vitt erre a döntésre?
1.Új webes technológiát akartam
2.Szerettem volna, ha szép és gazdag UI-t lehet vele készíteni
3.Igaz,hogy még nem egy kiforott valami, de sok lehetőséget látok benne (pl. a neten található 1.1-es demók nagy százaléka már nem is megy a 2.0 alatt:))) mondjuk ez megszokott ms béta,alpha,bc,rc... változás...
4. Teljesen jól lehet komunikálni a Html tartalommal
5. Jó kis animációk készíthetőek benne
6. És mindezt akár C#-al tudom csinálni:))...


<div>
<hr />
<p id="paragraph"></p>
</div>

HtmlElement element = HtmlPage.Document.GetElementByID("paragraph");
element.SetProperty("innerHTML",
"This HTML paragraph has been updated by Silverlight.");

..
element.AttachEvent("onclick", paragraph_Click);
..
}
private void paragraph_Click(object o, HtmlEventArgs e)
{
txt.Text =
"You clicked an HTML element, but this Silverlight application noticed.";
}

És megy ez a másik irányba is:
[Scriptable]
public void RemoveGradient()
{
this.Background = new SolidColorBrush(Colors.LightGray);
}

<script type="text/javascript">
function removeGradient()
{
var control = document.getElementById("SilverlightControl");
control.Content.Canvas.RemoveGradient();
}
</script>

<p onclick="removeGradient()">Click here to remove the gradient</p>