>

söndag 14 november 2010

TechEd Berlin är slut

TechEd Berlin är slut och det har varit en vecka full med inspiration, fakta och nätverkande. Jag har fått mycket nya upplägg för blogginlägg som ni kommer att få se i framtiden. För er som inte kunde vara på plats finns många av sessionerna inspelade och här får ni tips på 3 favoriter:

User Experience Best Practices for Building Applications on Windows Phone 7
http://www.msteched.com/2010/Europe/WPH202

Understanding the Windows Phone 7 Development Tools
http://www.msteched.com/2010/Europe/WPH305

Silverlight for Windows Phone 7
http://www.msteched.com/2010/Europe/WPH306






torsdag 11 november 2010

Windows Phone 7 i företagsmiljö


Phone 7 passar bra in i en företagsmiljö där vi redan har Exchange 2003 SP2, 2007 eller 2010 alternativt också Small Business Server 2008. Vi lägger upp Exchangekonto på telefonen lätt genom att den själv försöker ange alla inställningar utefter mailadressen, misslyckas detta kan du förstås ange allt manuellt.
Phone 7 stöder också flera konton, både om vi har flera Exchangekonton eller om vi också vill lägga till ett Windows Live, Yahoo eller  Google konto, dessutom har den stöd för pop & imap. Vi synkar sedan kalender och kontakter. På telefonen ligger informationen från de olika kontona separat men i gränssnittet slå delarna ihop och visas som en helhet.

Våra mail kan vi se antingen alla eller sorterat på bara olästa, de som är märkta (av avsändaren) som viktiga eller de som vi själva flaggat. Har mailet bilagor i Office dokument format kan vi öppna dessa och dessutom editera dessa.
Vi kan jobba med Offic dokument tex ändra formler i ett excel dokument eller lägga till en kommentar. När vi jobbar med Powerpoint eller Word dokument är dess oftast stora och här har man löst det med att man jobbar mot en outline som gör att man får en snabb överblick och kan hoppa lätt i dokumentet. Det finns också ett bra stöd för OneNote där noteringarna synkar med ditt livekonto precis som desktop versionen av programmet fungerar.

För mötesinbjudningar som vi får per mail kan vi direkt se om det krockar med något i kalendern. Vi kan sedan acceptera eller avböja med eller utan kommentar precis som i Outlook. Behöver vi hjälp att hitta till mötet öppnar vi bara location och kommer till kartapplikationen med mötesplatsen utmärkt. När sedan mötet äger rum och vi kanske är lite sen till detta kan vi öppna mötet från kalendern och där kan vi snabbt meddela att vi blir sen via sms eller mail genom en enkel knapptryckning.

För våra kalendrar har vi olika färger för våra kalendrar som kommer från olika konton, vi kan där också ändra vilka färger vi vill ha  och lätt stänga av en kalender som vi inte vill se för tillfället.

Phone 7 stödjer också SharePoint 2010 och SharePoint Workspace 2010 och vi kan öppna och jobba med dokument härifrån.

I en företagsmiljö är säkerheten viktig och när det gäller Phone 7 kan vi ha password polices via Exchange ActiveSync. Om vi skulle bli av med telefonen kan vi tvinga ut att den töms på information. Det finns också inbyggt VPN stöd med SSL mot Microsoft Forefront.

tisdag 9 november 2010

Starta med din Windows Phone 7 utveckling

För att komma igång att utveckla för Windos Phone 7 utveckling ladda hem alla verktyg som behövs via:
create.msdn.com/en-US

Har du redan Visual Studio och/eller Expression Blend kommer dessa verktyg att uppdateras, om du saknar dessa får du en express version av programmen. Dessutom får du en emulator av Windows Phone 7. Har du redan någon föregående version av Visual Studio kommer dessa inte att påverkas av installationen.

För att kunna flytta över och testa dina applikationer på en riktig telefon behöver du registrera ett användarkonto hos marketplace som du anger är ett developer account. Du kan sedan "låsa upp" tre telefoner och ha max 10 egen utvecklade applikationer per telefon.
registrera

TechEd Berlin

Jag är på TechEd Berlin, en konferens full med innehåll om Microsoft produkter. Idag börjar alla sessioner och jag riktar in mig på WPF, Silverlight och Windows Phone 7 sessionerna. Följ bloggen under veckan och jag utlovar många goda inlägg.

torsdag 4 november 2010

Renare namespace i XAML

När vi vill använda en klass i XAML måste vi först importera namespacet. För en assembly som heter Addskills.dll och där i ett av namespacen heter Addskills.Controls skulle vi infoga följande i våran XAML:

xmlns:a="clr-namespace:Addskills.Controls;assembly=Addskills"

För att sedan använda en kontroll från denna assembly använder vi prefixet innan namnet på kontrollen

<a:SuperTextBox...

Om vi sedan har ett namespace från samma assembly som heter Addskills.Converters och även vill importera detta kan vi inte använda samma prefix

xmlns:aControls=
"clr-namespace:Addskills.Controls;assembly=Addskills"
xmlns:aConverters=
"clr-namespace:Addskills.Converters;assembly=Addskills"

Så kan vi fortsätta men om vi har många namespace vi vill importera blir det ganska många prefix att hålla reda på. Det är då önskvärt att lägga flera clr-namespace på samma xml namespace. Detta går att göra genom attributet XmlnsDefinition. I assemblyt för Addskills.dll letar vi reda på AssemblyInfo filen och lägger till följande:

 [assembly : XmlnsDefinition("http://schemas.addskills.se",
"Addskills.Controls")]
[assembly : XmlnsDefinition("http://schemas.addskills.se",
"Addskills.Converters")]

Den första parametern skall vara ett xml namespace, dessa har formen av ett URI men det behöver inte vara någon adress som finns. För att garantera att vi väljer en unikt xml namespace använder vi domänen vi/företaget äger. Nu när vi skall importera namespacet skriver vi bara följande:

xmlns:a="http://schemas.addskills.se"

Det som också kan vara rekommenderat att göra i samband med XmlnsDefinition är att använda XmlnsPrefix för att ange standard prefixet.

[assembly : XmlnsDefinition("http://schemas.addskills.se",
"Addskills.Controls")]
[assembly : XmlnsDefinition("http://schemas.addskills.se",
"Addskills.Converters")]
[assembly : XmlnsPrefix("http://schemas.addskills.se",
"a" )]

Detta gör att om vi använder drag & drop från toolboxen (då skrivs importen automatiskt) får du 'a' prefixet på namespacet.

Om vi inte vill ha något prefix alls, så som det fungerar med andra befintliga kontroller

[assembly:XmlnsDefinition(
"http://schemas.microsoft.com/winfx/2006/xaml/presentation",
"Addskills.Controls" )]
[assembly:XmlnsDefinition(
"http://schemas.microsoft.com/winfx/2006/xaml/presentation",
"Addskills.Converters" )]

söndag 10 oktober 2010

Vad är skillnaden mellan x:Name och Name?

Namnge dina element gör du genom att använda x:Name men oftast kan du även använda Name. Frågan många nya XAML kodare ställer sig är "Vad är skillnaden på x:Name och Name?". Det enkla svaret är att de samma sak. Men vet du vad som egentligen ligger bakom?
<Button x:Name="okButton"/>
<Button Name="okButton"/>
 
I WPF finns attributet RuntimeNamePropertyAttribute som används för att flagga vilken Property som skall länkas ihop med x:Name. Detta attribut appliceras på klassen enligt följande:
[RuntimeNamePropertyAttribute("Name")]
public class MyXamlElement 
{
  public string Name { get; set; }
  public string Id { get; set; }
}
x:Name kan alltså också länkas till ett annan property, tex Id i exemplet ovan: 
[RuntimeNamePropertyAttribute("Id")]
 
Klassen FrameworkElement har detta attribute deklarerat på just Name. Då de flesta av dina grafiska element ärver från denna klass kommer de också  att ha en Name property som är länkad med x:Name.
I Silverlight räcker det att propertyn heter Name för att den skall länkas ihop med x:Name. Du kan då inte välja en annan property för att länkas med x:Name.
Om propertyn Name eller som i WPF fallet - RuntimeNamePropertyAttribut, saknas går det fortfarande att använda x:Name för att namnge dina element.
I samband med att du sätter x:Name skapas en variabel för elementet med namnet som anges i x:Name. Denna  variabel kommer dock att få accessnivå internal/Friend, om du vill ändra på detta lägger du även till x:FieldModifier på elementet:
<Button x:Name="okButton" x:FieldModifier="private"/>