Lag ditt eget Visual Studio Gallery

Forrige uken fikk ALM MVP Jakob Ehn sin nå snart ett år gamle blogpost om Visual Studio mer oppmerksomhet, da Greg Duncan skrev en blogpost på Channel9's Coding4Fun, "Hosting your own Visual Studio Gallery with the Inmeta Visual Studio Gallery". 

Hvorfor er dette så interessant ?

Visual Studio har utviklet seg til et meget bra utvidbart utviklingsmiljø. Det er veldig mye av Visual Studio’s funksjonalitet som kommer fra forskjellige utvidelser (extensions).  Flere av disse installeres når man installerer Visual Studio, men i tillegg kan man legge til en mengde andre utvidelser.  Disse hentes i utgangspunktet fra Visual Studio Gallery, som er Microsoft sin plass for slike utvidelser.  Disse utvidelsene kommer både fra Micrsooft selv men i enda større grad fra andre individer og firmaer utenfor Microsoft. Hvem som helst kan legge opp utvidelser på Visual Studio Gallery, og de aller fleste utvidelsene er gratis. De utvidelsene som legges opp er i første rekke forskjellig typer funksjonalitet, som kalles Tools, men kan også være prosjekt eller item templates, Controls eller Storyboard Shapes.

Et firma vil alltid ha en del funksjonalitet som er spesifikk for firmaet.  Det kan være av  hvilken som helst av de nevnte kategoriene, men et typisk eksempel kan for eksempel være firmaets spesifikke sett av Checkin Policies, eller prosjekt templates for løsninger de lager.  Begge deler kan da legges ut på et eget Visual Studio Gallery, som firmaet hoster internt.

Det å ha et eget Visual Studio Gallery blir en del av den infrastruktur et firma behøver for å gjøre utvikling av software.  

Oppsett og bruk i Visual Studio

Visual Studio støtter multiple slike gallerier.  I utgangspunktet er Visual Studio koplet til Visual Studio Gallery, men man kan legge på så mange ekstra man bare ønsker.  Det gjør man gjennom Tools/Options, under Environment/Extensions and Updates

SNAGHTML1c05be45

Her ser man at jeg har koplet meg til vsgallery.osiris.no, som er ett av Inmeta sine galleries.  Dette er et åpent gallery, så gå gjerne inn og ta en kikk.  Det andre er et private firma gallery for en kunde jeg jobber for.  Som man kan se er denne URL’en direkte til en gitt server.

Dersom man går til Tools/Extensions and Updates, og velger å se på Online, får man opp listen med disse to pluss to innebygde gallerier. 

image

På Inmeta Galleriet ser man Inmeta sine checkin policies, en Wix prosjekt template og over der to Tools, begge disse ligger også på det offisielle Visual Studio Gallery. Det går altså helt fint å legge opp utvidelser på flere galleries.  Visual Studio søker ovenfra og nedover i denne listen.

 

To alternative gallerier

Det er to forskjellige galleries man kan anvende.  For den første varianten, som er beskrevet av Jakob her, finnes det intet Web interface, og løsningen er noe enklere – blant annet mangler informasjon som antall nedlastinger, man kan ikke stemme, og dessuten er den filbasert, mens den andre varianten, beskrevet I den siste blogposten har disse egenskapene, den er SQL basert, noe som også gir raskere respons, den har dessuten et Web brukersnitt, og man kan uploade via dette websnittet.

Sammenligner man hvordan disse ser ut I Visual Studio, ser man følgende forskjeller:

SNAGHTML1c5c64a5

Den nederste er den enkle, mens den øverste er den siste varianten, og der ser man nedlastings- og stemme informasjon.

 

Oppsett av Web basert privat gallery

Et privat gallery kan være lukket eller åpent.  Det bestemmes kun ved hvor og hvordan man setter opp IIS tjenesten og tilgangene til det.  Om man ikke har tilgang ignorerer Visual Studio dette galleriet.

Du kan installere og kjøre opp galleriet på tre måter,

  1. Anvende Webdeploy command line scriptet som følger med I pakken fra codeplex
  2. Laste ned kildekoden og kjøre Publish på denne, da får du en web deploy pakke som du kan kjøre lokalt, basert på den siste koden
  3. Laste ned kildekoden og kjøre Web prosjektet direkte.

Opsjon 1 og 2 anvender IIS på din maskin.  Den må da være korrekt satt opp.  I tillegg til default features, trenger du de to som er markert rødt under:

clip_image002

clip_image002[4]

 

Opsjon 3 anvender din IIS_EXPRESS, der er alt satt opp for å kjøre default, og anvendes typisk under testing og utvikling.

Når du kjører webdeploy, anvende kun kommandoen:

SNAGHTML1a2f4c40

Da får du en ny webside under Default Website.

 

Anvende galleriet fra websiten

Start opp ditt nye galleri ved å gå til

localhost/InmetaVSGallery

 

Ved oppstart ser websiten som følger ut:

image

Du kan så uploade extensions til den ved å trykke på Upload knappen:

image

Her kan du velge de filene du vil laste opp, men merk at nåværende versjon kun støtter VSIX filer.  (En bra utvidelse her er å legge til støtte for andre filer, som exe, msi, zip m.fl.  Dette støttes av Microsoft sitt galleri, og bør kunne støttes i neste versjon av dette galleriet også.)

 

Og etter opplastingen får du websiten med de nye komponentene lastet opp:

 

image

 

Klikker man seg inn på tittelen får man frem følgende detaljside:

 

image

Fra denne siden kan man laste ned extension direkte, eller man kan uploade nye versjoner, eventuelt slette extension fra galleriet.

 

Visual Studio oppsett

Visual Studio vil normalt kun lese atom baserte extension gallerier, utenom sitt eget Microsoft galleri.  For å få ditt nye private galleri til å bli synlig i Visual Studio, så må man fortelle Visual Studio om det via et registry oppsett.  Det går altså ikke å legge disse til med Tools/Options metoden ovenfor, man må anvende registry som vist her.

Du kan laste ned reg settingene fra codeplex,https://inmetavsgallery.codeplex.com/downloads/get/775854  , og deretter må du endre dem til slik at de har din url (1) og eventuelt et passende navn (2).

image

Den blir da lagt til, og ser ut som følger (renamet til Terje Visual Studio Gallery”"):

image

 

 

Forfatter:

Terje Sandstrøm, Visual Studio ALM MVP, Inmeta Consulting.  Følg meg på Twitter: @OsirisTerje