Archive

Archive for the ‘MSP’ Category

Thomas Gravgaard

April 14th, 2008

Jeg synes lige det var værd at referere til Rasmus’ interview med Thomas Gravgaard som er CEO af Gosuman Games. Godtnok synes jeg ikke lige den portrætter Thomas som jeg husker ham da vi lavede Mass Salvation til Nordic Game Jam 2008, han larmer jo ikke nær så meget på video ;D

felizk MSP, Personal, XNA

Vista Media Center SDK Guide 1

April 11th, 2008

Kravet for at følge med i denne guide er at man har Visual Studio af en eller anden slags og Vista Media Center SDK installeret.

Oprettelse af et nyt projekt

Det første vi vil gøre er at lave et projekt vi kan arbejde på og konfigurere det så vi kan køre det i Vista Media Center.

Efter at have installeret SDK’et så skulle være dukket nogle nye project templates op i Visual Studio’s New Project Dialog:

image

De nye project tempates er:

  • Windows Media Center Application
  • Windows Media Center Application – Background Application
  • Windows Media Center Application – Fundamental

Til denne del af guiden skal du bruge Windows Media Center Application.

Sign the assembly

Efter at have lavet et nyt projekt, skal der laves en strong key til assembliet. Det gør man ved at tage properties for projektet og gå under signing. Hvor "Sign the assembly" krydses af og "New…" vælges i dropdown boksen. I "Key file name" skrives nøglens navn (kan være hvad som helst, men jeg kalder den bare det samme som projektet hedder), hvor efter man kan sætte password på nøglen, gør jeg ikke.

Assemblien skal signes fordi, for at vista media center kan bruge plugin’et skal det lægges i Global Assembly Cache, og det kræver at den er signet.

Generer public key

Den strong key der er genereret skal herefter indsættes i Registration.xml. Det gør man ved at generere en public key til den med programmet "sn.exe".

  • Først skal assemblien buildes, Build -> Build Solution
  • Derefter tilføjes sn.exe i Tools -> External Tools…
  • I External Tools dialogen tilføjes blot et nyt tool C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\sn.exe med argumentet -Tp "$(TargetPath)" hvorefter Use Output Window markeres som det eneste af fluemærkerne
  • Kør nu sn.exe ved Tools -> Get Public Key
  • Kopier public key token
  • Åben Registration.xml og indsæt keyen istedet for insert_public_key_token_here

image

Kør i Vista Media Center

Hvis du compiler nu og starter debugging (F5) vil du få programmet MCMLPad.exe hvor du kan se dit MCML. Det er dog ikke så fedt når du skal debugge. Derfor vil vi gerne køre det i Vista Media Center og så debugge der.

Det skal dog lige nævnes at man ikke kan debugge direkte fra vista media center hvis ikke man har Visual Studio Professional eller højere. Det er fordi man skal bruge "Attach to process…" under Tools. Dog kan vi stadig gøre så man kan køre projektet direkte i vista media center ved debug start.

Lad os først få den til at køre plugin’et direkte i vista media center når der compiles release version.

Gå under Properties for projektet under Build Events. Her skal vi køre DevInstall.cmd efter at have buildet. I Post-build event tilføjes disse 2 linjer:

cd $(ProjectDir)
$(ProjectDir)DevInstall.cmd

Dette vil installere vores projekt i GAC’en.

Nu skal vi have Visual Studio til at køre Media Center istedet for MCMLPad. Først skal vi bruge 2 ID’er, vores plugin’s og det entrypoint den skal bruge (det kommer jeg lige tilbage til i en senere guide). Disse står i Registration.XML. Det første er den id attribut der er på application, og den anden er id attributten på entrypoint.

Gå derefter under Debug i project Properties. Sørg for at Configuration er sat til Release. Sæt Start external program til "C:\Windows\ehome\ehshell.exe", og command line arguments til:

/entrypoint:app_id\entrypoint_id

Det skal være uden krølle parenteser eg:

image

Gå nu i File->Save All og tryk F5 eller Debug->Start Debugging… (husk at sætte konfigurationen til Release)

Sidst og klart fedest: Real-time debug i Media Center

Det er denne del der kræver Visual Studio Pro eller højere.

Nu kan vi køre vores plugin i Media Center, men vi har ingen breakpoints og crasher skidtet får vi da en exception print out, men vi vil da hellere have rigtig debugging som vi kender det fra windows forms.

Det kan også lade sig gøre, man skal dog lave nogle krumspring. Først og fremmest skal vi i registrerings databasen og tilføje:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Media Center\Settings\Extensibility]
"EnableAddInLaunchDebugging"=dword:00000001

Det kan du gøre manuelt eller via denne .reg fil: EnableVMCDebugging.reg. Det kan slås fra igen med denne: DisableVMCDebugging.reg

Det næste vi gør er at sørge for at Vista Media Center også bliver startet for Debug konfigurationen. Under project Properties skal du under Debug vælge Debug konfigurationen og så sætte de samme ting som vi gjorde for at starte med Release.

Derefter skal vi lige ændre på Build Events for at sørge for at Debug installeres i GAC’en istedet for Release versionen. Det er bare at ændre:

$(ProjectDir)DevInstall.cmd til $(ProjectDir)DevInstall.cmd /debug

Build og Start Debugging…, nu starter Vista Media Center op med en dialog boks der siger "Debug Application". Det er nu vi skal tilføje processen til Visual Studio’s debugger. Gå i Tools -> Attach to process eller tryk (CTRL+ALT+P), find ehexthost.exe og tryk attach.

Gå ind i Launch.cs og sæt et break point på app.GoToMenu(); vælg Media Center og tryk OK, visual studio skulle nu gerne breake :D

Jeg har ikke fundet nogen automatisk måde at attache processen når man debugger desværre :/

Slut

Nu har vi et projekt igang og kan starte og debugge det. Så skal vi bare lære hvad man gør herfra. Der er et monster der hedder MCML, der skal tæmmes og garanteret et par sære finurligheder ved at lave Vista Media Center plugins, men det gemmer jeg til de næste guides :)

Kilder:

felizk MSP, Programming, Tutorial, Vista Media Center

Windows Vista Media Center SDK

April 11th, 2008

Med SharpMedia udgivet vil jeg begynde at undersøge hvad der skal til for at tilføje nogle af de fede features fra SharpMedia til Windows Vista Media Center.

Selvom SharpMedia er nice, så har Vista Media Center nogle features som jeg aldrig regner med at implementere i SharpMedia, det er hovedsageligt Live-TV og Episode Guides og sådan noget.

Derfor forsøger jeg at implementere SharpMedia’s Importer og Database system på Vista Media Center.

Men man skal kravle før man kan gå, derfor vil jeg efterhånden som jeg lærer at udvikle med Media Center SDK, skrive et par blog posts om hvordan det skrider frem :)

felizk MSP, Programming, Vista Media Center

MSP | Gathering

April 6th, 2008

I fredags afholdte Martin et MSP | Gathering event for os MSP’er. Vi blev inviteret til Hellerup på Microsoft Danmark’s Kontorer hvor vi havde en sjov og meget interessant dag, hvor vi fik diskuteret hvad det vil sige at være MSP og hvad det er vi gerne vil lave, samt hvad vi kan lave. Det var første gang jeg fik mulighed for at møde andre MSP’er end Morten og heldigvis er Claus, Niels og Rasmus super flinke og lidt skøre.

Martin introducerede os også til en præsentations teknik han har anvendt i noget tid med stor success. Hovedpunkterne var at undgå massere af tekst på sine slides/tavler og istedet bruge symbolik og farver og samtidigt forklare tingene istedet. Det var ret interessant og sjovt at blive kastet ud i sådan noget, vi havde blot fået af vide vi skulle lave en fremlæggelse af noget teknisk, ikke at vi skulle gøre det på denne specielle måde og selvom der fløj nogle Whiteboard Marker låg rundt i lokalet ind i mellem gik det faktisk ret godt.

Så fik vi selvfølgelig også noget pizza og spillede noget bordfodbold før vi kørte hjem igen :)

En af de ting vi blev enige om var at forsøge at holde lidt liv i vores blogs og så lave en samlet blogroll for alle MSP’er, så vi og andre læsere kan se hvad det er vi render og laver. Her på min side vil jeg forsøge at lave et blog indlæg i ugen, hvor jeg skriver hvad jeg har rodet med i løbet af ugen, eller bare dropper en spand interessante links til ting der er sket.

Fokus vil stadig være på C#, XNA, WIndows Vista Media Center og andre teknologier og finurligheder jeg falder over.

felizk MSP, Personal

Microsoft Student Partner (MSP)

March 9th, 2008

Som Martin Esmann har skrevet på hans blog så er jeg officielt blevet Microsoft Student Partner. “Hvorfor dog det?”, ville nogle folk måske spørge, og svaret er simpelt: Som MSP kan man få en fod inden for døren hos en af verdens største software virksomheder, og i følge “Great Place To Work” den bedste arbejdsplads i Danmark.

Det der interesserede mig mest og virkelig overbeviste mig om at MSP var noget for mig, var til et XNA arrangement i København hvor Charles Cox og Dave Mitchell, som er henholdsvis generelt cool XNA person og XNA Director, lavede en præsentation af XNA frameworket, lukkede nogle guldkorn ud om fremtiden og lavede et spil i XNA på 59 mins. Efter arrangementet hvor vi andre tog tilbage til Aalborg lavede Morten Sneftrup Pedersen, AAU’s anden MSP, et interview med de 2 herrer fra USA, som til dagligt arbejder med at lave XNA til os andre.

Det er sådan nogle muligheder der interesserer mig for MSP programmet og da jeg alligevel bruger Visual Studio og XNA til dagligt og synes det er rigtig gode tools er MSP en oplagt mulighed og motivator for at ikke bare at lære de tools man bruger, men lære dem så godt at man kan præsentere dem for andre.

Jeg begynder med denne post at skrive på dansk på min blog. Dvs. at jeg i fremtiden vil poste nogle guldkorn jeg er faldet over i XNA eller andre interessante emner på dansk.

Hvis du er interesseret i at blive MSP så tag et kig på Martins blog.

felizk MSP, Personal, XNA