Wpf Threads

Les aplicacions amb WPF tenen dos threads d’execució: un per renderitzar i l’altre és el de tota la vida, el que crea els controls, el que accepta les entrades, el que executa els events,… Però aquesta vegada han volgut donar un nom a aquest Thrad. Dispatcher.

Dispatcher és el nom que han donat al thread UI i és des d’aquest objecte que podem invocar els mètodes necessaris per actualitzar els controls UI des de threads secundaris. També controla i gestiona tots els problemes de seguretat i sincronització que pot tenir el thread UI.

El Timer de Windows.Forms ara és el DispatcherTimer. Aquesta classe té el mateix event Tick.

Realment és molt útil i fàcil d’entendre.

Anuncis

NavigationWindow a les aplicacions Windows

WPF ens ofereix un tipus de window que permet la navegació. Aquesta navegació pot ser de pàgines web com si d’un navegador iexplorer es tractés o cap a altres window que tinguem al nostre projecte.

Les window que permeten navegació son les NavigationWindow. Aquest element navega per Page o PageFunction<T>.

Una Page és un element que pot tenir les mateixes prestacions que una Window però que permet la navegació. Les PageFunction<T> son com les Page però tenen la particularitat que podem retornar un valor com si es tractés d’una crida a un mètode.

Les aplicacions que podem tenir amb aquests elements és la de construir wizards o aplicacions de windows on minimitzem el numero de finestres que obrim i tanquem, millorant així l’experiència de l’usuari.

Microsoft Expression als cursos de WPF

Aquesta setmana que entrarem faré un curs de WPF a distància utilitzant la tecnologia Adobe Connect que ja he parlat aquí.

WPF és una tecnologia que personalment m’agrada molt per la potència gràfica que té i per la facilitat que hi ha de separar el disseny del codi a les pantalles de les nostres aplicacions.

Aquesta separació permet que les pantalles es puguin dissenyar amb el Microsoft Expression. Suite de Microsoft on hi trobem l’Expression Design per poder crear imatges vectorials i tractar-les, l’Expression Blend per poder dissenyar les pantalles dels nostres projectes WPF o Silverlight i l’Expression Web per dissenyar les pàgines ASP.NET.

L’Expression Blend és una bona eina per poder dissenyar les nostres pantalles, donar-l’hi les animacions i els tractaments dels events.

Però la pregunta que em faig és: Cal fer-l’ho servir en un curs de WPF? és a dir, per ensenyar com crear les pantalles wpf és millor fer-ho amb una eina visual i opaca com és el Blend o és millor ensenyar la sintaxi XAML, fer alguns exemples i que a partir d’això ells utilitzin el Blend.

La meva opció sempre ha sigut que és millor ensenyar XAML ja que és la base per entendre l’eina de disseny i el perfil dels alumnes que tinc (programadors) penso que així ho volen.

Espero no estar equivocat, tu què opines?

DockPanel o StackPanel

En el moment que programem amb XAML sempre apareix la necessitat d’utilitzar un Panel que d’una manera senzilla ens col·loqui els elements un al costat de l’altre.

En un primer moment pensem en l’StackPanel ja que és un Panel molt senzill que col·loca els elements un a sota a l’altre o un al costat de l’altre depenent del valor que l’hi donem a la propietat Orientation.

El problema és quan volem que l’ultim element col·locat ocupi tot l’espai que resta en el Panel, és a dir, que no es vegi cap posició buida.

L’StackPanel és un Panel massa senzill i no controla aquesta propietat. La solució passa en utilitzar el DockPanel. Aquest control col·loca els elements segons les coordenades: Top, Left, Right, Bottom o Center. En un primer moment sembla que no hagi d’ajudar massa, però no és així.

DockPanel té una propietat que es diu LastChildFill, que si el posem a True indica que l’ultim element col·locat ocupi tot l’espai restant.

Com ho hem de muntar? En el cas de l’StackPanel amb orientació horitzontal substituïm StackPanel per DockPanel i afegim l’atribut LastChildFill a True. Per cada element dins del ara DockPanel afegim l’atribut DockPanel.Dock=”Left”.

Avui he estat a Canadà

Aquest matí he anat a Canadà i he tornat, tot sense gastar masses diners ni patir massa fred.

Efectivament, he estat al consulat de Canadà de Barcelona però això no em treu poder dir que he estat oficialment 5 hores a Canadà.

5 hores impartint un curs d’Excel, tot i que no és la meva especialitat fer aquest tipus de cursos ja que els meus son d’aplicacions amb .Net i ara també amb Sharepoint, l’experiència d’anar al Canadà valia la pena.

L’experiència ha sigut bona, en un moment estàvem parlant català, castellà, anglès i francès a la mateixa sala.

Sharepoint 2010 as Developer

Ja he parlat del què penso del Sharepoint en altres posts (aquest i aquest altre) i ho he fet des del punt de vista d’un usuari final, és a dir, el que ha de fer ús de l’eina.

Ja quedava clar en aquests posts que el Sharepoint és una eina molt complerta i funcionalment molt potent.

Ara vull parlar com un desenvolupador d’aplicacions per Sharepoint. Porto uns mesos treballant amb aquesta eina i experimentant amb les coses que es poden fer amb el Visual Studio 2010. N’estic totalment encantat de tot el potencial que té. (una vegada més)

El Visual Studio 2010 porta integrat plantilles de projecte per el Sharepoint 2010. Per tant, ens facilita molt la feina alhora de crear web parts, application pages, content pages, content types, List definitions, etc. Acabo d’enumerar algunes de les coses que es poden arribar a desenvolupar amb el Visual Studio per el Sharepoint.

El Sharepoint amb el seu Client Obect Model podem interactuar amb els components de tot el site mitjançant classes. Disposa de WCF que per REST podem accedir a les dades del Site. Tant una cosa com l’altre ho podem fer per aplicació windows, per ASP.NET, Silverlight i Ajax.

S’acaba en què entrem en un entorn de programació propi que és el Sharepoint utilitzant les mateixes tècniques de programació que s’utilitza en aplicacions winforms, wpf, silverlight o asp.net.