tisdag, december 20, 2011

LEAP – Lead Enterprise Architect Program

The Lead Enterprise Architect Program (LEAP) is a program that aims to give understanding of the strategic core components of the Microsoft platform.
LEAP consists of five master class training sessions as well as three days of sessions at Microsoft headquarters in Redmond, Seattle.
LEAP Sweden 2012 - Invitation
Vill du lära dig mer om Microsofts plattform? Då är LEAP-programmet för dig!
Under fem Master Classes kommer vi att gå igenom olika delar av vår plattform. Programmet avslutas med en resa till Redmond där talare från Microsoft Corporation fördjupar ytterligare inom olika ämnen.

Schema

15:e februari (halvdag inklusive middag)
Application architecture on the Microsoft Platform
16:e februari
Cloud computing for Architects
8:e mars
Identity & Access Management
4:e april
Integration on premises and in the cloud
3:e maj
Business Intelligence and Enterprise Search
29:e – 31:a maj
Tre heldagar med sessioner på Microsofts huvudkontor i Redmond samt evenemang!

Registrering

Kostanden för programmet är SEK 19.900. Deltagaren är själv ansvarig för alla kostnader relaterat till resa och uppehälle, både för Master Classes i Stockholm samt för dagarna i Redmond. Mat och transporter ingår i Redmond.
Sista dag för anmälan är den 31:a januari och anmälan sker genom mail till beriksen@microsoft.com
Här finns en presentation med all information!

tisdag, december 13, 2011

SQL Azure Federations

I den stora uppdatering av Windows Azure kom även många intressanta uppdateringar till SQL Azure. Den som sticker ut för mig som mest intressant är att vi nu har släppt SQL Azure Federations. Med hjälp av SQL Azure Fedrations kan man bygga in möjligheten att skala ut en databas till flera instanser för att dela på last.

Här kommer ett SQL Script går igen olika steg för att visa på användning av SQL Azure Federation.

Observera att detta script endast går att köra i SQL Azure och kommer att skapa två databaser. Självklart blir du därför debiterad för två databaser. I SQL Azure Federations ugår ingen extra kostnad för federeringen men man får betala för varje databas som skapas. Ett exempel är om man har 6GB data i en databas blir man debiterad för en 10GB databas. Om man väljer att skapa en federation och dela upp dessa databaser på tio 1GB federations members blir man debiterad för elva 1 GB databaser. En för varje federation member plus en för en federation root.

-- Skapa en ny databas. Det blir automatiskt en Web Edition med maxstorlek på 1GB
CREATE DATABASE Sales
GO

-- Skapa en Federation
-- Eftersom att SQL Azure inte har stöd för use måste du manuellt ändra din connection

-- use Sales
-- Ge din federation ett lämpligt namn och välj vilken datatyp du ska federera på.
-- Datatypen måste överensstämma med datatypen i den tabell som du sedan vill federera
CREATE FEDERATION CustomerFederation(customerId BIGINT RANGE)
GO

-- Använd kommandot USEFEDERATION för att dirigera trafik till den federation som innehåller det
--
CustomerId som skickas in
-- FILTERING=OFF kommer att reutnera alla rader i den federationen
USE FEDERATION CustomerFederation(customerId =0)WITH RESET,FILTERING=OFF
GO

-- Skapa en tabell i denna, än så länge enda federation
-- Observera raden FEDERATED ON, det är det som visar vilken kolumn tabellen ska federeras på.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE
[dbo].[Customer](
  
[CustomerID] [bigint] NOT NULL,
  
[FirstName] [nvarchar](50) NOT NULL,
  
[LastName] [nvarchar](50) NOT NULL,
CONSTRAINT[PK_Customer] PRIMARY KEY CLUSTERED
(
  
[CustomerID] ASC
)
)
FEDERATED ON(customerId =CustomerID)
GO

-- Lägg till ett par kunder i tabellen
insert into Customer values(1,'Jules','Winnfield')
insert into Customer values(2,'Vincent','Vega')
insert into Customer values(3,'Butch','Coolidge')
insert into Customer values(4,'Marsellus','Wallace')
insert into Customer values(5,'Mia','Wallace')
insert into Customer values(6, 'Esmeralda', 'Villalobos')
insert into Customer values(7, 'Captain', 'Koons')

-- Skapa en referenstabell. Referenstabeller kopieras till varje federation när man gör en split.
-- För att skapa en referenstabell låter utesluter man bara DEDERATED ON
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE
[dbo].[SomeReferenceTable](
   
[ReferenceID] [bigint] NOT NULL,
   
[SomeData] [nvarchar](8) NULL,
CONSTRAINT [PK_SomeReferenceTable] PRIMARY KEY CLUSTERED
(
   
[ReferenceID] ASC
)
)
GO --Note the lack of the FEDERATED ON keyword.

Insert into SomeReferenceTable values(1, 'Hello');
Insert into SomeReferenceTable values(2, 'SQL');
Insert into SomeReferenceTable values(3, 'Feds');

-- För att visa vilka federations som finns kan man ställa en fråga mot federation_member_distributions
USE FEDERATION ROOT WITH RESET
GO
SELECT
* FROM sys.federation_member_distributions ORDER BY federation_id, range_low;
GO

-- Be om en connection till den federation som innehåller CustomerId = 1
-- Med FILTERING=OFF kommer alla rader att returneras från den federation

USE FEDERATION CustomerFederation(customerId=1) WITH RESET, FILTERING=OFF
GO
SELECT
* FROM Customer

-- Be om en connection till den federation som innehåller CustomerId = 1
-- Med FILTERING=ON kommer bara de rader som har CustomerId = 1 att returneras.

USE FEDERATION CustomerFederation(customerId=1) WITH RESET, FILTERING=ON
GO
SELECT
* FROM Customer

-- Nu kommer magin! Med hjälp av ALTER FEDERATION kan man göra en online split för federatioen.
-- Här väljer vi att slita vid CustomerId = 5.
-- Det innebär att med CustomerId < 5 kommer att hamna en federation member
-- medan CustomerId >= 5 kommer att hamna i en annan federation member
 
USE FEDERATION ROOT WITH RESET
GO
ALTER
FEDERATION CustomerFederation SPLIT AT (customerId=5)
GO

-- Det tar ett tag för federations att skapas men under hela tiden kommer din databas att vara tillgänlig.
-- Ställ regelbundet frågor mot federation_member_distributions för att se när det kommer in en ny rad i tabllen.

USE FEDERATION ROOT WITH RESET
GO
SELECT
* FROM sys.federation_member_distributions ORDER BY federation_id, range_low;
GO

-- Ställ ytterligare några frågor mot olika Federations för att se hur data har blivit fördelat på två databaser.
-- Referenstabeller ligger kopierat lokalt till varje databas.

USE FEDERATION CustomerFederation(customerId=1) WITH RESET, FILTERING=OFF
GO
SELECT
* FROM Customer
select * from SomeReferenceTable

USE FEDERATION CustomerFederation(customerId=5) WITH RESET, FILTERING=OFF
GO
SELECT
* FROM Customer
select * from SomeReferenceTable

federations

Från den det nya administrationsverktyget kan man nu också se en visuell bild av federationerna i databasen och där kan man även splitta en federation.


-- För att droppa databasen måste man koppla upp sig mot master databasen
-- Vid drop av Federation Root droppas också alla Federations Members.
-- use master
Drop DATABASE Sales

Scott Guthrie, Dave Campbell, and Mark Russinovich in the line up!

Om du läser det här idag, den 13 december, missa då inte vårt live online event om Windows Azure som startar kl 18.00: http://LearnWindowsAzureEvent.com

Läser du det här senare kan du kolla på alla sessioner online:
http://ch9.ms/lwa

måndag, december 12, 2011

Ny release av Windows Azure!

Tidigare idag släppte vi ett antal uppdateringar och förbättringar till Windows Auzre. Dessa syftar mycket till att utvecklare enklare ska komma igång med Cloud Computing i allmänhet och Windows Azure i synnerhet.

I den här releasen är det stort fokus på att det ska bli enklare att komma igång. Hela sign up-processen är omgjord och innefattar nu bara tre steg. Förutsatt att du har ett Live ID så kan du logga in på http://www.windowsazure.com och direkt ta del av ett erbjudande som ger dig gratis användning av Windows Azure i tre månader. För varje månad kan du konsumera tjänster enligt följande:

  • Compute: 750 hours of a Small Compute Instance* (can run one small instance full-time or other sizes at their equivalent ratios)
  • Storage: 20GB with 50k Storage transactions
  • Data Transfers: 20GB outbound / Unlimited inbound data transfer
  • Relational Database: 1GB Web Edition SQL Azure database
  • Access Control: 100k transactions
  • Service Bus: Free through March 31, 2012
  • Caching: 128MB cache

För samtliga konton som inkluderar resurser (gratis eller via t ex MSDN) har vi nu också gränser för hur mycket man kan spendera. För gratiskonton är den satt till $0. Det innebär att om man använder upp sin gratistid under en månad kommer kontot att spärras tills nästa period faktueringspåbörjas. Det fungerar ungefär som ett kontantkort till en mobiltelefon (förutom att man inte kan ta emot “samtal” när resurserna har tagit slut).

Om du har ett MSDN-konto knutet till ditt Live ID kommer vi att märka det när du signar up och automatiskt få ta del av det som ingår i ditt MSDN-konto. Det är fortfarande så att du behöver ange ett kreditkort eftersom att om du väljer att ta bort spärren och spendera mer än det som ingår kommer du att få betala allt överskjutande enligt listpriser.

En av de vanligaste frågorna jag möter när jag träffar kunder och individuella utvecklare som vill in på Windows Auzre är hur man kan vara säker på att man inte får en räkning på sitt kreditkort vid slutet av månaden som inte är så trevlig. “Tänk om jag startar upp tio instanser och glömmer att ta ner dem?” Well, you can stop worry and start to love Windows Auzre!

Mer om nyheterna finns att läsa här: http://blogs.msdn.com/b/windowsazure/archive/2011/12/12/improved-developer-experience-interoperability-and-scalability-on-windows-azure.aspx

Scott Guthrie, Dave Campbell, and Mark Russinovich in the line up!

Om du läser det här idag, den 13 december, missa då inte vårt live online event om Windows Azure som startar kl 18.00: http://LearnWindowsAzureEvent.com

Läser du det här senare kan du kolla på alla sessioner online:
http://ch9.ms/lwa

måndag, november 28, 2011

Windows Azure Sweden Tour 2011


Nu är det dags för Windows Azure Sweden Tour 2011 (och 2012). Vi kommer att besöka tre orter i december och en i februari.
Häng med på en introduktion till molnet och Windows Azure Plattform! Vi kommer under dessa sessioner ge en introduktion till cloud computing och Microsofts plattform för att bygga molnbaserade lösningar. Vi börjar dagen med några centrala begrepp och en inblick i varför man ska bry sig om molnet för att sedan gå igenom de olika tjänsterna i plattformen. Vad behöver man veta för att bygga en webbapplikation i Windows Azure? Hur skapar man en SQL databas i molnet? Vilka andra tjänster behöver man känna till?

I Luleå är det samma innehåll på förmiddag respektive eftermiddag. I Malmö, Stockholm och Göteborg är det heldagar.

Mer information och anmälan till respektive event finns här:

onsdag, maj 11, 2011

Full screen out of browser (OOB) i SL4

För att skapa en applikation i Silverligt 4 som kör out of browser, i full screen, finns det en del saker att tänka på. Det första man måste göra är att högerklicka på projektfilen Silverlightprojektet och välja egenskaper. På fliken för Silverlight markerar man att man vill ha stöd för out of browser.

Dialog

När den checkboxen är markerad kan man klicka på knappen för Out-of-Browser Settings.

I den dialog som dyker upp kan man ställa in vad applikationen ska heta, hur stor den ska vara när den startar, beskrivningar samt sätta ikoner. Längst ner på den dialogrutan finns det också några viktiga checkboxar. Den sista av de tre markerar man om man vill att applikationen kan köra med eleveted trust. Detta är ett krav för att senare kunna sätta applikationen i full screen mode.

oob

Om en Silverlight-applikation inte kör under elevated trust kan man fortfarande sätta den i full screen men då är det bara om det är på uppmaning av användaren, t ex genom att hon eller han klickar på en knapp. Om man försöker sätta applikationen i full screen genom kod i t ex Application_Startup kommer den kodraden att ignoreras.

Men om man kör i elevated trust kan man, genom kod när applikationen startar, direkt sätta den i full screen. Observer att anropet till att förändra propertien IsFullScreen måste ske iett anrop till Dispatcher.BeginInvoke.

Code Snippet
  1. private void Application_Startup(object sender, StartupEventArgs e)
  2. {
  3.     Deployment.Current.Dispatcher.BeginInvoke(() => SetFullScreen());
  4.     this.RootVisual = new MainPage();
  5. }
Code Snippet
  1. private void SetFullScreen()
  2. {
  3.     Application.Current.Host.Content.IsFullScreen = true;
  4. }

söndag, april 10, 2011

Flight Challenge - Sprint 2

Efter fem timmar i luften är jag klar med sprint två. Är nu klar med MainView där man väljer användare och kan skapa nya användare, MyFriendaView där man listar alla sina vänner och kan lägga till nya vänner samt en påbörjad FriendPanormaView som visar all info om en vän. En av kontrollerna i panoramavyn ska innehålla bilder kopplade till vännen. Till den vyn har jag också lagt till en CameraCaptureTask som används för att ta en ny bild. Jag har dock ingen aning om hur jag ska kunna visa upp den bild som tagits så det får bli ett uppdrag för uppehållet i Chicago. Roten i min objektmodell är en lista av User-objekt. Den listan sparas också ner när applikationen deaktiveras och laddad när den aktiveras. Efter stoppet i Chicago med tillgång till Internet så blev koden för att ta en bild med hjälp av CaptureCameraTask enligt följande:

private void AddNewPicture()
{
var cameraCaptureTask = new CameraCaptureTask();
cameraCaptureTask.Completed += cameraCaptureTask_Completed;
cameraCaptureTask.Show();
}

void cameraCaptureTask_Completed(object sender, PhotoResult e)
{
if (e.TaskResult == TaskResult.OK)
{
var image = new BitmapImage();
image.SetSource(e.ChosenPhoto);
SelectedFriend.Images.Add(image);
}
}

Efter mellanlandningen i Chicago var jag dock tvingad att ge upp. För lite ström och för lite utrymme i planet satte stopp för FlightChallenge denna gång. Jag tänkte dock fortsätta med projektet så jag återkommer!

Flight Challenge

- Skrivet på planet på väg till Chicago -

Några dagar innan resan till Mix 2011 i Las Vegas fick jag en utmaning av mina gamla kollegor på Connecta. Utmaningen gick ut på att bygga en app till Windows Phone 7 på resan till Las Vegas. Inte nog med att tiden är begränsad så är det också ont med ström i economy class. Men utrustad med två datorer och ett stopp i Chicago på tre timmar bara för att ladda batterier så ska det nog gå vägen.

Innan jag åkte hemifrån såg jag till att jag hade allt jag behövde installerat. Det inkluderade Visual Studio 2010 med Windows Phone 7 SDK, Expression Blend 4, MVVM Light Toolkit och Windows Phone Training Kit och underbara ReSharper!

När jag hade checkat in på Arlanda började jag skissa på gränssnitt och datamodell till min app. Och appen då? Jag har två döttrar som är 6 & 9 och vi pratar ofta om vilka appar man skulle kunna utveckla. Ofta handlar det om något kopplat till Lady Gaga men den jag ska bygga idag heter Mina Vänner. I Mina Vänner kan man registrera sig som användare och sedan lägga till sina vänner. Man tar en bild på vännen och så får han eller hon svara på några frågor om sig själv. Det finns en uppsjö av sådana böcker som ockå används flitigt hemma.

Nu är första sprinten avklarad och jag har skapat grundstrukturen i projektet, min datamodell, min första Vy och tillhörande VyModell. Det är lite svårt att styra över sprintlängden utan jag får anpassa mig efter serveringstiderna. Levererat värde än så länge är att jag kan skapa nya användare och lista existerande användare.

Målet för nästa sprint är att jobba med persistering av objektmodellen så att saker sparas när man avslutar. Jag behöver också snart lägga till möjligheten att kommunicera mellan vymodeller i form av Messaging (tack MVVM Light) samt navigering till nya vyer.

Man kan även följa utmaningens framgång eller fall på Twitter och #FlightChallenge.

Nytt jobb - nya ambitioner!

Tiden går så extremt snabbt. Sedan en tid tillbaka har jag börjat på DPE på Microsoft som Plattformsevangelist och idag när jag kollade igenom min blogg så är det ju inte ofta jag kommer med nya inlägg. Har nu varit på Microsoft i precis en månad och ambitionen är helt klart att väcka bloggandet till liv igen.


Fokus i min nya roll kommer initialt att vara Windows Azure men jag kommer också att jobba en hel del med Microsoft Surface och ser väldigt mycket fram emot Surface 2.


De första fyra veckorna har varit mycket intensiva. Techdays där jag pratade om Windows Azure + Windows Phone = Love!, Windows Azure Acceleration Labs med kunder, lite affärsutveckling på Surface och en del Windows Phone 7.


Igår anlände jag till Las Vegas för att vara med på MIX11. Ska bli extremt kul! Resan hit var lång men gick bra och igår kväll var jag bara och promenerade runt på en massa hotell och casino.


Idag är det heldag med DPE från hela världen som sedan avslutas med middag.