Archívum

Archive for the ‘Windows Presentation Foundation’ Category

Nyári Iskola – Last Minute

2010. július 13. kedd Hozzászólás

A Microsoft nyári iskola tanfolyamai nagy része betelt, de 1-2 tanfolyamon visszamondások véget maradt még 1-2 hely. Akinek van kedve és ideje jelentkezzen. (Laptopos helyek)

Részvételi díj: 5000 Ft

  • MS SQL Server 2008 üzemeltetés – 2 fő (2010.07.19-23, minden nap 14:00-19:00)
  • SharePoint 2010 konzulens – 3 fő (2010.08.02-06, minden nap 14:00-19:00)
  • Silverlight haladóknak – 4 fő (2010.08.09-13, minden nap 8:30-13:30)
  • SQL Server 2008 programozása és a Reporting Services 3 fő (2010.08.09-13, minden nap 14:00-19:00)
  • Webdesigner tanfolyam kezdőknek (Expression 4 termékcsalád) 1fő (2010.07.24-25 és 07.31, minden nap 9:00-17:00)
  • Webdesigner tanfolyam kezdőknek (Expression 4 termékcsalád) 4fő (2010.08.07-08 és 08.14, minden nap 9:00-17:00)

Jelentkezni a nyariiskola.devportal.hu címen lehet.

WPF és a Windows Forms kontrolok használata

2010. január 2. szombat Hozzászólás

A forrás fájl innen tölthető le.

Az alkalmazás elkészítését megnézhetitek az alábbi videóban.

http://silverlight.services.live.com/invoke/64427/WindowsForms%c3%a9saWPF/iframe.html

A következő tutorialban egy saját Remote Desktop klienst fogunk elkészíteni WPF-ben és felhasználunk egy „régi” ActiveX –es Terminal Service kontrolt. Hogy véletlenül se írjunk rossz helyre kódokat, ezért minden általunk írt kódsor előtt van egy megjegyzés, amely mutatja, hogy hova kell az aktuális kódsort írnunk.

Az alapvető felhasználói felület előre el van készítve, hogy ezzel se teljen az idő. Egy ribbon kontrolban van egy textbox amely a távoli gép IP címét vagy nevét adhatjuk meg. Ezen kívül van még 2 gomb, az egyik a kapcsolódásért, a másik pedig a kapcsolat megszüntetésért lesz felelős. A DEMO nincs ellátva semmilyen védelemmel, így ha rosszul adjuk meg a távoli gép címét, vagy egyéb hibát okozunk, kivételt fog dobni a program.clip_image009

Nyissuk meg a feladathoz mellékelt solutiont. Látható, hogy az ablak egy előre elkészített Ribbon kontrolból áll.

 Első lépésként adjunk, a projektünkhöz a System.Windows.Forms.Intergation névteret. A Solution Explorerben kattintsunk jobb egérgombbal a Refereces-re, és válasszuk, ki az Add Reference menüpontot, majd a .NET fülön válasszuk ki a WindowsFormsIntegration –t (majdnem a legalsó elem) és kattintsunk az Ok gombra.

clip_image011 (Azért, hogy az ActiveX-es Interoppal most foglalkozzunk, a projekt binDebug mappájában ott van az AxInterop.MSTSCLib illetve Interop.MSTSCLib DLL-ek . Ezek szintén előre hozzá vannak adva a referenciákhoz. )

Menjünk a XAML nézetben közvetlen a ribbon kontrol alá, és adjuk hozzá a következő elementet. //Task -1

<WindowsFormsHost Name="windowsFormsHost1">

</WindowsFormsHost>

Itt adtuk az ablakunkhoz egy WindowsFormsHost kontrolt. Ennek a kontrolnak a segítségével tudunk Windows Forms vagy régebbi COM kontrolokat elhelyezni WPF alkalmazásunkba.  Írjuk a WindowsFormsHost elementek közé az alábbi sort.

<rdp:AxMsTscAxNotSafeForScripting x:Name="rdpConnector" />

Itt egy Microsoft Terminal Service kontrolt helyeztünk el a WPF –es alkalmazásunkba, amelynek a neve az rdpConnector lett. Ezzel a névvel fogunk a kódból hivatkozni erre a kontrolra.

Navigáljunk el a MainWindow.xaml.cs fájlba és itt keressük meg a Connected_Executed eseményt, majd adjuk hozzá az alábbi kódsorokat. //Task -2

rdpConnector.Server = txtServerName.Text;
rdpConnector.Connect();
windowsFormsHost1.Focus();  

Itt megadtuk az rdpConnector számára, hogy mi a célgép (szerver) elérhetősége, majd pedig meghívjuk a Connect metódusát, és rögtön kapcsolódhatunk is a távoli géphez. Meg kell hívnunk a winodwsFormsHost Focus metódusát is, mert különben nem tudunk majd a távoli asztalon kattintani. (Próbáljátok majd ki nélküle is)

Ha ezzel megvagyunk, navigáljunk el, a Disconnected_Executed eseményhez, ott pedig írjuk be az alábbi kódsort. Amelynek, a segítségével az aktuális kapcsolatot lezárhatjuk. //Task -3

rdpConnector.Disconnect();

Miután ezzel is megvagyunk nincs más dolgunk mint használatba venni a programot. Fordítsuk le és indítsuk el. (F5) Írjuk az Ip Address mezőbe egy létező gép IP címét vagy hálózati nevét, és kattintsunk az Connect gombra.

 clip_image013

Ekkor, ha mindent jól csináltunk, és van távoli gépünk aminek elérhetjük a Remote Desktop szolgáltatását akkor egy login képernyő fog fogadni minket. Ha ezen is bejelentkezünk akkor a távoli gép asztala fogad minket, és így távolról irányíthatjuk az adott gépet.

Ahhoz, hogy kapcsolódj egy távoli gépre. A távoli gépen engedélyezni kell, a távoli asztali kapcsolatszolgáltatás. Ezen beállításokhoz, az alábbi linken találsz információkat. http://www.microsoft.com/windowsxp/using/networking/expert/northrup_03may16.mspx
Windows Vistán illetve Windows7 en is hasonlóan kell elvégezni.

Visual Studio 2008 és WPF

2007. augusztus 22. szerda Hozzászólás

Egy remek kis cikk, a Visual Studio 2008 és a WPF használatáról.

 


Bátorfi Zsolt

Rögtön egy remek hírrel, ugyanis megjelent a Visual Studio 2008 (igen, kezdjük el szokni) Beta 2, ami innentől kezdve abban az állapotba van, amit funkcionálisan késznek tekinthetünk.

Ez azt jelenti, hogy aki veszi a fáradságot és letölti a telepítőkészletet, az már a mindent úgy láthat, ahogy az a végleges – a következő év elején megjelenő – termékben benne lesz.

Mivel ez a blog elsősorban a prezentációs technológiákról szól, ezért most eltekintek az összes új feature felsorolásától, inkább csak az első élményekre fókuszálok a WPF támogatással (aka. Cider) kapcsolatban.

Aki a WPF-be beleásta magát, annak nem kell mondanom, milyen fontos ez a pillanat, hiszen közismert, mindezidáig komoly fejlesztőeszköz támogatás nincs a WPF-hez, aki eddig neki akart indulni egy projektnek, az bizony kezdhette az alapoktól: msbuild fájlok (.csproj) kézzel történő létrehozása, "meztelen" XAML szerkesztés, ugyanis a VS 2005 alatt design time támogatást nem létezett stb.

Tovább bonyolította a helyzetet, hogy közben elkészült a Blend, ami egy profi designer felület, de ha a kódolásra kerül a sor, nos, nincs igazán a helyzet magaslatán, ugyanis képességei odáig terjednek, hogy képes egy .cs fájlt egy editorban megnyitni, s aztán filmszakadás…

Ezzel kapcsolatban elő is jön egy kérdés, nevezetesen, hogy miben kezdjünk el egy WPF alkalmazást fejleszteni: Blend-el vagy VS-el hozzuk létre a szoftver vázát?

Egyáltalán milyen helyzetben használjuk a designer, s mikor a fejlesztő eszközt?

Most hogy végre látszik, mi lesz pontosan a VS 2008-ban, szerintem kitisztult a kép, ugyanis innentől kezdve minden támogatást megkapunk az eszközben. Gyakorlatilag teljes szabadsággal fejleszthetünk Windows alkalmazásokat, úgy mint a WinForms-ban, természetesen azzal a rengeteg plusszal (pl. vezérlők testreszabása) amit a WPF ad, ráadásul a két technologiát szabadon kombinálhatjuk, mindkét irányban.

Nézzük hát mi fogad bennünket, amikor rányitunk egy már korábban elkezdett projektre (megj: az új multitargeting-nek köszönhetően egy kattintással átváthatunk 3.0-ról 3.5-rem így tettem én is egy demó alkalmazásommal):

Cider01

tovább képernyőképek itt…

Néhány dolgot szeretnék kiemelni:

  • a designer felület tényleg gyors, nagyítható és végre jól szinkronban van a XAML editorral, ami gyakorlatilag gépelés közben úgy ellenőrzi (interpretálja!) a kódot, hogy az ne pusztán csak az XML sémának, hanem a WPF visual tree előírásainak is megfeleljen, illetve fel van készítve minden extrára (markup extension-ök, resource-ok, stílusok, adatkötés):
    Cider03
  • egy igazi felület számos layout vezérlő és azok gyermekobjektumainak beágyazásából áll, minek következtében másodpercek alatt el lehet veszni a markup ingoványban. Erre ad megoldást az új Document Outline panel (kedvencem), ami nem csak navigálni enged, hanem még előnézeti képet is az elemről ami felett az egerem áll:
    Cider05 Cider02
  • mivel a XAML editor menetközben validál ezért, remek hibajelzéseket kapunk, anélkül, hogy build-elnénk:
    Cider04
  • remek jól működik a WPF tartalom hosztolása egy Winform-on (Elementhost) illetve a Winform vezérlők beágyazása WPF-be (WindowsFormsHost):
    Cider07 Cider06

Összeségében elmondhatjuk, hogy végre kikerekedett a kép a WPF fejlesztők számára is, a megvalósítás minden fázisa tökéletesen lefedődik eszköz és design time támogatással és most már az is tiszta mikor mit használjunk: a projekt vázát készítsük el VS 2008-ban, hozzuk létre a felső szintű layout konténereket (pl. canvas, grid, dockpanel), tervezzük meg és implementáljuk az adatkötést támogató osztályokat felhasználva pl. a LinQ to SQL támogatást, majd pedig menjünk át a Blend-be és polírozzuk ki a UI-t (layout, control template, databinding).

Jó ismerkedést Mindenkinek!

WPF és Silverlight tutorial

2007. augusztus 20. hétfő Hozzászólás

 

Egy kis tutorial, amivel könnyen elsajátíthatjuk, mind a WPF mind a Silverlight -tal való munkát. (Silverlight telepítese szükséges)


Bátorfi Zsolt: 

Silverlight és WPF designerek figyelem!

Azoknak akik szeretik a rövid, moduláris tanulást, egy remek honlap indult a napokban, ahol részletes trénanyagok segítségével lehet megtanulni az egyedi vezérlők, effektek, animációtervezés, vektorgrafika és sok más tipikusan "tervezendő" vizuális komponenseket:

image

Jó tanulást!