PerSalmi.NET

Swedish .Net software developer... RSS 2.0
# Monday den 12 April 2010

Nerladdning pågår! Dags att göra sig av med förhandsversionerna och köra den riktiga varan!

image

De verkar ha jobbat hårt på att hålla farten uppe för nerladdning, ser ut att vara mindre än en timme till första installationen kan inledas på mina maskiner. Blir det en team task att migrera det pågående projektet till .NET 4.0 imorgon? :-)

Monday, April 12, 2010 6:24:10 PM (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | Visual Studio
# Tuesday den 16 March 2010

Min tidigare postning om kodkontrakt tänkte jag föja upp med en länk till Roy Dictus blogg. Han har ett snyggt exempel på hur man kan lägga upp sin användning av kontrakt tillsammans med testdriven utveckling där man baserar sin kod på en basklass som utrustats med kontrakt. Kolla in Roys artikel på Code Contracts By Example.

image

Man kan väl kanske ha åsikter om hur stiligt det är att ha en klass med namn som börjar med “I” som annars brukar vara reserverat för interface i C#, men jag tycker trots detta att det är ett snyggt sätt att uttrycka krav i form av kodkontrakt.

Tuesday, March 16, 2010 10:59:38 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | C# | Visual Studio
# Monday den 15 March 2010

image Lite nytt som trillar in så här på kvällskvisten från MIX konferensen i Las Vegas ser ut att vara stöd för utveckling med Silverlight 4 i Visual Studio 2010 RC. Den förra Silverlight 4 beta-versionen fungerade ju bara ihop med Visual Studio 2010 Beta 2 om man inte tog till mindre tillförlitliga fulhack. Det verkar vara Silverlight som gäller för utveckling av applikationer mot den kommande Windows Phone 7 plattformen också. Frågan är hur länge WPF och Silverlight kommer att ha parallella spår framåt…

Ladda ner verktygen för Silverlight 4 här - Silverlight 4 Tools

För att fixa design med Silverlight 4 släpps samtidigt Expression Blend 4 Beta.

Monday, March 15, 2010 11:21:10 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
Silverlight | Visual Studio
# Saturday den 20 February 2010

Kodkontrakt är en ny teknik som kommer i samband med Visual Studio 2010. Vad är då detta med konkontrakt? Lite förenklat kan man väl säga att det är ett sätt att kunna skriva kod som kontrollerar att inkommande och utgående parametrar och resultat är rimliga och håller sig inom förväntade gränser. Kan alltså vara riktigt bra för att se till att den som använder dina klassbibliotek inte skickar in dåliga parametervärden och ställler till det för sig.

Kodkontrakt har varit i fokus och diskuterats i min närhet vid flera tillfällen de senaste månaderna, dels vid ett frukostseminarie  i december och senare när jag själv presenterade nyheter kring .NET 4 på en konferens i Sälen för några veckor sedan. Först var vi lite besvikna eftersom det verkade som kodkontrakten inte skulle fungera ihop med Visual Studio 2010, de fanns inte med i installationen. Vi hörde rykten om att teamet på Microsoft Research inte hade levererat till Visual Studios byggteam, så kontrakten kom att saknas i betaversion 2.

imageEn del extra efterforskningar efter frukostseminariet visade dock att kontraktstödet faktiskt finns och fungerar, det kräver bara en liten extra nerladding och en separat installation. Både vi som lyssnade och killen som höll frukostföredraget var alltså besvikna i onödan. Det visade sig dessutom fungera bra med Visual Studio 2010 Beta 2 samt nu med den nya RC-versionen.

Det man behöver är antingen Code Contracts Standard eller Premium som finns att ladda ner från Code Contracts på Microsoft DevLabs. Teamet bakom kodkontrakten har mer material i form av publicerade forskningsrapporter och användarhandledning i PDF-form på sin sajt hos Microsoft Research, läs dem här: Contracts - Microsoft Research. Om man vill delta i diskussioner eller ställa frågor finns även ett forum specifikt om kodkontrakt på: Code Contracts MSDN Forum

Ok, det var lite allmän info. Hur kommer man då igång att använda kontrakt i sin dagliga kodning?

Efter att man installerat kontraktstödet så får man en ny panel i projektegenskaperna, Code Contracts:

image

Ovan ser man att jag aktiverat både runtime-kontroller och statiska kontroller som körs vid kompilering. På min labbmaskin har jag installerat premiumvarianten av kontraktstödet, därav har jag både runtime och statisk kontroll. Det är alltså denna projektinställning som behövs för att kontrakt som skrivits in i koden ska vara aktiva och kontrolleras antingen vid körning eller kompilering.

För att visa hur kontrakt för före- och eftervillkor fungerar har jag en mycket enkel metod i mitt C# projekt:

public int PositiveAdd(int a, int b) 
{
    Contract.Requires(a >= 0);
    Contract.Requires(b >= 0);
    Contract.Requires((a + b) > 0);
    Contract.Ensures(Contract.Result<int>() == (a + b));
    return (a + b);
}

Villkoren ovan är avsedda att kontrollera att båda inparametrarna är större än noll och att de tillsammans också ska vara större än noll. Kontrollen av slutresultatet verifierar att returvärdet är ett heltal som är summan av inparametrarna. Detta är ju som ni ser extremt förenklat bara för att visa just själva kontrakten. Requires-raderna ger alltså de “före”-villkor vi vill ha medan Ensures ger oss “efter”-kontroller.

Om man kör kod som utrustats med kontrakt för före- och eftervillkor i sin debugger kan man tydligt se att Contract.Requires(…) och Contract.Ensures(…) inte är kodrader som exekveras som vanligt. I denna sekvens av bilder från en debugger session visar det sig hur kontrakten kontrolleras vid exekvering av metoden.

Vi börjar med att först köra alla sk pre-conditions för att kontrollera utgångsläget när metodens kod påbörjas:

CropperCapture[4]

CropperCapture[5]

CropperCapture[6]

Nästa steg är mer överraskande, det är här man verkligen ser att Contract raderna inte är en vanlig del av metoden, debuggern visar nu att metodens kod kommer att exekvera från början av metodens kodblock:

CropperCapture[7]

Här fortsätter sedan körningen med att utföra det verkliga jobbet i vår metod:

CropperCapture[8]

Den funktionella delen av metoden är nu klar, i normala fall är vi nu färdiga att returnera resultatet till den anropande kodsekvensen:

CropperCapture[9]

Men eftersom kontrakten är aktiverade så är det istället dags att gå igenom och verifiera alla “efter”-villkor:

CropperCapture[10]

Som sammanfattning är alltså Contract-raderna inte en del av metoden som körs procedurellt!

Detta var kontroller för enkla före- och eftervillkor, kontraktstödet innehåller fler varianter av kontroller, men de får vi ta upp en annan gång.

Saturday, February 20, 2010 12:14:08 AM (W. Europe Standard Time, UTC+01:00)  #    Comments [1]
.Net | C# | Visual Studio
# Thursday den 11 February 2010

Sedan ett par dagar har Visual Studio 2010 Release Candidate funnits tillgänglig för MSDN-prenumeranter och nu har denna version även släppts för allmän nerladdning.

image

Eftersom jag höll ett föredrag om en del av nyheterna i Visual Studio 2010 och .NET Framework 4 på Combitechs Sälenkonferens 2010 nu i slutet av januari så kan det ju finnas en liten anledning att tipsa om nerladdningslänkarna till den nya RC versionen:

Det kan också vara värt att kolla in nya Team Foundation Server 2010 på Visual Studio Team Foundation Server eftersom den nu går utmärkt att installera på klientoperativsystem som Windows 7. Det är ett enkelt sätt att experimentera med versionshantering och work items mm för att lära sig hantera TFS. Jag håller som bäst på att kolla in TFS lokalt på min laptop, installationen gick på några få minuter och jag har redan ett par projekt importerade för fortsatta experiment. Om du är nyfiken på hur konfiguration av TFS går till på din lokala maskin så kan man se en video om det från Jim Lamb:

Thursday, February 11, 2010 12:18:17 AM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
TFS | Visual Studio
# Monday den 18 May 2009

Nu uppdaterad med nerladdningslänkar för alla som saknar MSDN prenumeration!

Visual Studio 2010 beta 1 finns nu tillgänglig för utvecklare med MSDN-prenumeration. Den väntas bli tillgänglig för alla från Microsoft Downloads på onsdag 20:e maj.

image

Det ska bli riktigt intressant att se hur studion utvecklats sedan PDC i höstas.

MSDN har för tillfället separata nerladdningar för betaversioner av

  • .NET Framework 4.0
  • Visual Studio 2010 Team Suite
  • Visual Studio 2010 Professional
  • Visual Studio Team Foundation Server 2010

Ramverket kommer både i fullversion för x86 och x64 processorer samt i den nerbantade sk client profile-versionen. Som tillbehör för Team System finns också testverktygen Test Load Agent och Test Load Controller.

Nerladdningar för alla:

Monday, May 18, 2009 7:29:57 PM (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
Visual Studio
# Monday den 4 May 2009

Idag råkade vi på ett något märkligt problem på en utvecklingsdator där vi just hämtat ut ett projekt som innehåller en Linq To Sql modell. Vid kompilering av delprojektet med .dbml-filen fick man felmeddelandet "Could not retrieve the current project." utan vidare ledtrådar. Projektet byggde perfekt på andra datorer med identisk kod.

image

Någon exakt bakomliggande orsak har vi egentligen inte hittat men det finns massor med referenser till liknande felmeddelanden hos andra användare av Visual Studio 2008 SP1. Problemet är relaterat till modelldesignern eller hur verktyget som genererar koden bakom modellen fungerar.

Men vi fann en lösning!

  1. Stäng Visual Studio
  2. Öppna en Visual Studio Command Prompt från startmenyn, ligger under Visual Studio 2008 –> Visual Studio Tools.
  3. Kör kommandot:
    devenv /ResetSkipPkgs
  4. Öppna projektet igen och öppna även din databasmodell, dvs .dbml-filen, i designern
  5. Spara .dbml filen för att den ska generera om koden
  6. Kompilera hela projektet

Detta fungerade för oss och var enklare än det alternativa förslaget vi hittade, att ominstallera hela VS 2008 inkl SP1.

Monday, May 04, 2009 12:45:50 PM (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
Linq | Visual Studio
# Wednesday den 22 April 2009

Ett problem som dyker upp som utvecklare när man uppgraderar Internet Explorer till version 8 är att en del projektwizards i Visual Studio 2008, och även i 2005 om man kör den, slutar fungera. Till exempel avslutas wizarden för att skapa ett nytt smart device projekt med felmeddelandet “Project creation failed.” nere i VS statusbar. Bakgrunden till problemen är att projektwizards i t ex MFC C++ och Smart Device / Mobile projekt i C++ är beroende av att använda delar av Internet Explorer och att kunna köra ActiveX kontroller, dessa körs av Internet Explorer inne i Visual Studio och med nya IE8 fungerar inte dessa wizards pga ändringar i säkerhetsmodellen i IE.

Lösningen som finns består i att man lättar på begränsningarna i den speciella säkerhetszon som finns just för dessa Visual Studio wizards. Vad som behöver göras är:

  • Starta Regedit (Obs! om du använder 64-bitars operativsystem ska du köra 32-bitars Regedit)
  • Gå till registersökvägen HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ Zones
  • Skapa en ny nyckel och döp den till 1000 om det inte finns en sådan nyckel redan
  • Under denna nya nyckel skapar du ett DWORD-värde med namnet 1207, typ REG_DWORD och datavärdet 0x00000000

 image

Nu ska wizards för att lägga till funktioner, lägga till variabler, nya smart device projekt i C++ och att lägga till klasser i smart device projekt fungera igen!

Wednesday, April 22, 2009 7:42:39 PM (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
C++ | Internet Explorer | Visual Studio
# Thursday den 19 March 2009

imageEtt tips till den som ska vidareutveckla eller underhålla C# applikationer som bygger på Linq To Sql modeller!

Ta en titt på http://www.huagati.com/dbmltools/, det är en plugin till Visual Studio 2008 som ger bra möjligheter att fixa vanliga underhållsuppgifter i .dbml filer.

Exempel på vad man kan åstadkomma snabbt och enkelt utan att generera om hela modellen med SQLMetal eller behöva ta till utvägen med ta-bort-och-lägg-till-igen-och-gör-om-alla-mappningar i O/R Designern är:

  • Lägga till klasser för nya tabeller/vyer
  • Uppdatera namn på kolumner
  • Byte av typer på kolumner
  • Använda regler för att snygga till namnen på klasser och properties i modellen automatiskt

Ändringarna som pluginen gör är inte raketforskning när man analyserar dem, det går mycket väl att använda samma teknik som man använder vid handskrivna entitetsklasser, men det är väldigt smidigt att kunna göra ändringarna med ett verktyg.

Thursday, March 19, 2009 3:22:06 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | Entity Framework | Linq | Visual Studio
# Saturday den 14 March 2009

image Gänget bakom MSDN Managed Newsgroup Support har startat upp ett projekt för att bygga upp en Visual Studio Solution med kodexempel för C#, VB och C++. Nu är det ju inte unikt att det publiceras exempelkod, men att ha en enda källa som tar ett samlat grepp på ett antal grundläggande teknikområden och låter de ingående exempelprojekten samspela och kombineras i alla tänkbara varianter känns fräscht. Det är ofta man hittar exempel som går i en riktning tex interop från C# klient till C++ server medan det man egentligen letar efter är det omvända. Här vrider man och vänder på de flesta kombinationer!

Anledningen att jag fastnade för projektet direkt jag såg det är att vi under ganska lång tid jobbat med ett brownfield (C++) system där olika delar bytts ut och strukturerats om och därmed har nya delar gjorts i managedkod (C#), jag tror knappt det är någon variant av interop som inte varit inblandad i det hela. Hade detta funnits och våra google-master-skills hade låtit oss hitta det förra sommaren så hade det varit perfekt.

I dagsläget finns följande tekniker med i projektet:

  • COM & ActiveX
  • Dataaccess
  • Office-anpassning
  • Klassbibliotek
  • RPC & IPC

Kolla in All-In-One Code Framework på CodePlex. Förhoppningsvis kommer det att växa med massor av exempel, tekniker och kombinationer ganska snart. Förresten, det vore inte dumt att blanda in Windows Mobile i leken också för att öka på antalet möjliga kombinationer i de fall det är teknik som är tillämpbar på telefoner och handenheter.

Saturday, March 14, 2009 12:57:07 AM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | C# | C++ | VB | Visual Studio
# Tuesday den 28 October 2008

scottgu Showen går vidare med Scott Guthrie som visar nyheter om applikationsutveckling med Windows 7. Han visar kodexempel med tillägg för att bygga funktioner för den nya taskbar som finns i Windows 7 direkt i WPF XAML.

En nyhet här är att man släpper en Ribbon UI kontroll för WPF tillsammans med ett nytt WPF kontroll toolkit den här veckan. Toolkitet innehåller bland annat Gridkontroll, kalender, datepicker och Ribbonkontrollen. Det ska vara anpassat till .NET Framework 3.5 SP1 som runtime.

 wpftoolkit

 

Visual Studio 2010 kommer att vara WPF baserad och ha stöd för multipla skärmar! Möjligheterna att bygga ut VS2010 IDE med nya funktioner som avancerade visualizers blir därmed väldigt bra. Nyheter för webbutveckling som känns intressanta är jQuery med IntelliSense, MVC paketet och hantering av flera konfigurationer i webbapplikationer, så man har stöd för utveckling, staging och drift konfigurationer. Silverlight får ett kontrolltoolkit med nånga vanliga kontroller samt kontroller för grafer och diagram. En ny stor Silverlight release kommer under nästa år med stöd för utanför-browsern-upplevelser och Silverlight på Windows Mobile.

NET4feat

David Treadwell fortsätter presentationen med att prata om Windows Azure plattformen ur utvecklarsynvinkel. Live tjänsterna ska bli lättare att anpassa, tex utseendemässigt för Windows Live Id inloggning. En intressant del som nämns är OpenId integration i Windows Live Id.

Live Framework introduceras för att ge utvecklare möjligheter att jobba mot Windows Live tjänsterna i Mesh-konceptet, nu hoppas vi bara på att de lättar lite på locket och släpper Mesh till fler länder som tex SVerige…

En liten skojig detallj är texten på Davids tröja: 0x007fff

Som avslutning visades Office 14 där Office Web Applications tydligen ingår som en grundläggande del för att man ska kunna nå och arbeta med sina dokument var man än befinner sig. 

Tuesday, October 28, 2008 7:51:48 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | PDC 2008 | Silverlight | Windows 7 | Visual Studio | WPF
# Tuesday den 14 October 2008

Idag verkar vara dagen då Silverlight 2 släpps officiellt i RTW-version. Vissa av utvecklingsverktygen för VS2008 kallas fortfarande “RC1”, frågan är vad det betyder i praktiken…

 image

Nerladdningslänkar:

  1. Silverlight run-time
  2. Silverlight Tools
    Add-on for Visual Studio 2008 SP1 for developing Silverlight 2 applications 
  3. Expression Blend 2 Service Pack 1
    Expression Blend 2 SP1 allows you to harness the power of XAML, .NET and Silverlight 2 to deliver compelling user experiences for both connected desktops and the web.
  4. Deep Zoom Composer
    Prepare images for use with the Deep Zoom feature in Silverlight 2
Tuesday, October 14, 2008 11:38:33 AM (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | Silverlight | Webb | Verktyg | Visual Studio
# Monday den 6 October 2008

Så kunde tidningsrubriken ha sett ut om det hela hamnat i kvällspressen…

image

Hur går det då till när man blir svårt biten av AutoEventWireup? Jo, just nu jobbar jag med en kund där vi driver flera projekt för att lyfta applikationer till nyare run-time plattform. Just den applikation som vållade rejält huvudbry är en ASP.NET applikation som ska migreras från .Net 1.1 till modern 3.5 miljö. Allt väl så långt, Visual Studio 2008 och den inbyggda wizarden hade inga som helst problem att uppgradera projektet. Det var givetvis en del varningar om uppdaterade APIer för klientscriptblock mm, men det var inga problem att fixa.

Till en början såg det också ut som applikationen fungerade hyffsat, det visade sig dock att så inte riktigt var fallet. Något skumt inträffade när man ville gå vidare och detaljstudera information som laddats från en databas via COM-objekt som inte rörts i uppgraderingen, COM-delarna var C++ baserade och ingick i ett annat projekt. Ok, då är det väl något problem med COM-objekten när de anropas via COM Interop från .NET CLR under 2.0 tänker man och börjar debugga.

Debuggingen tog tid… Allt såg rätt ut på .NET sidan, anropen till COM-lagret gav förväntade resultat tillbaks till .NET applikationen i de första stegen, men i övergången mellan två aspx-sidor verkade något mycket skumt hända. Efter övergången var allt man fick tillbaks från COM anropen tomma strängar. Hade vi lyckats trigga något fel för att vi låg på gränsen till något som ändrats drastiskt mellan .NET 1.1 och 2.0? Nej, verkade inte så… Debugging ner i COM-lagret gav inte direkt några ledtrådar heller. Det hela började kännas mycket skumt. Varför funkade 1.1 versionen av applikationen så bra medan den konverterade 2.0 versionen visade tomma fält utan att generera några exceptions eller felmeddelanden? Allt funkade ju men ändå inte.

Till sist började jag om från början med debuggingen och satte brytpunkter i varenda metod i code-behind filerna för alla sidor som var inblandade i scenariot som uppvisade fenomenet med de tomma fälten. Pang! Där var problemet! För länge sedan hade någon implementerat en Page_Unload metod i code-behind filen och mappat upp eventet i InitializeComponent vilket var påbjudet i 1.1. Sedan hade den utrensning av dataobjekt som skedde i Page_Unload fått gå i pension när applikationen byggdes ut och mappningen av eventet till Page_Unload handlern hade tagits bort medan själva koden för Page_Unload fick ligga kvar, den kunde ju vara bra att ha nångång… I just det här fallet var den inte så bra att ha, vid konverteringen av projektet mellan 1.1 och 2.0 så ändrar nämligen Visual Studio standardbeteendet på inställningen av AutoEventWireup från false till true, det gör i sin tur att Page_Unload koden som legat och slumrat i godan ro nu vakande till och fick chansen att exekvera just vid växlingen mellan två sidor där jag satt och debuggade.

Det är ju klart att om man helt plötsligt kör lite kod som tömmer alla laddade dataobjekt och sen visar de tomma strukturerna i ett formulär så är det inte mycket mer än tomma fält att förvänta sig. Slutsatserna av det hela blir:

  • Använd ordentlig versionshantering
  • Ta bort kod som inte ska användas

Kom ihåg! Du kan plocka tillbaks gammal kod från versionshanteringen om du skulle behöva det, men spar den inte i det levande dokument som koden faktiskt är.

En liten reflektion om sökmotorer som kommer upp just vid denna debugsession är att det gäller att drabbas av ett fel vid rätt tidpunkt, eller man kanske ska uppgradera sina projekt vid rätt tidpunkt. För Google och de andra motorerna prioriterar givetvis träffar som är aktuella tidsmässigt, mitt problem visade sig finnas dokumenterat på en del sidor men de var inte direkt aktuella, det är ju något år sedan uppgradering mellan 1.1 och 2.0 var hett, så jag fick inte träff på de beskrivningar som låg nära mitt verkliga problem med den ändrade standardinställningen för AutoEventWireup förrän mycket långt ner i sökresultaten. Och det är väl knappt någon som tittar längre på sökresultatlistorna än 10-20 träffar neråt… grejer som får sämre ranking än så kan väl inte vara något att ha… :-)

Ett par länkar till info om AutoEventWireup i alla fall då, så det blir lite teknisk slutknorr på detta:

Monday, October 06, 2008 1:16:20 PM (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | ASP.NET | Visual Studio
# Friday den 22 August 2008

Man kan faktiskt underhålla projekt som fortfarande kör under .NET Framework 1.1 med Visual Studio 2008 som utvecklingsmiljö. Eftersom Visual Studio har blivit mycket trevligare att jobba med sedan 2003 versionen så kan det vara värt att kolla in in Jimmy Skowronskis artikel Working with .NET 1.1 in Visual Studio 2008 and Team Server om man måste jobba med .NET 1.1 baserade projekt.

Nu kom jag in på ämnet äldre utvecklingsmiljöer… Jag jobbar just nu med en kund där vi under våren har lyft upp en hel del projekt till Visual Studio 2008 från ett antal olika gamla miljöer det är både .NET och native-projekt. Det är fantastiskt hur mycket bättre utvecklingsmiljön i Visual Studio blivit. Det blir riktigt tydligt när man tar ett hopp direkt från Embedded Visual C++ 4.0 med ett projekt till Visual Studio 2008. MFC kändes dock fräschare 1996 än det gör idag. Så jag är väldigt glad att få all hjälp jag kan av verktygsmiljön.

När jag nu jobbar mer med C++ än på många år så är det att par detaljer som jag slås av. Kompileringstiderna för C++ är definitivt inte roliga, det hjälper inte att 2008 är snabbare än de äldre kompilatorerna. Som min kollega Kalle sa så känns det som flaskhalsen vid kompilering av C++ är hårddiskprestanda medan kompilering av C# kod verkar begränsas av hur snabbt Visual Studio lyckas scrolla output-fönstret för kompilatorns output-meddelanden. Idag blev det extra påtagligt när jag byggde ett litet konverteringsverktyg i C# efter flera veckors C++ hackande. Blixtsnabb kompilering och en GUI-designer för Windows applikationer värd att döda för jämfört med vad man har i C++/MFC-projekt. Utvecklingen går verkligen framåt.

Friday, August 22, 2008 10:47:13 PM (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
Visual Studio
# Monday den 11 August 2008

image

Nu finns service pack 1 för Visual Studio 2008 klar att hämta från MSDN! Alla nyheter i denna service pack finns beskrivna i denna text: Visual Studio 2008 Service Pack 1 (SP1) Readme

Dels finns service packet som Visual Studio 2008 Service Pack 1 (exe) och Visual Studio 2008 Service Pack 1 (iso) samt i Express Edition med SP1. Om du haft betaversionen av SP1 installerad så behövs VS 2008 Service Pack Preparation Tool för att städa upp din Visual Studio installation innan det går att lägga på den nya releaseversionen av SP1.

Uppdatering av VS 2008 går hand i hand med SP1 för .NET Framework 3.5, ta en titt på ramverkets nyheter här.

Monday, August 11, 2008 6:47:09 PM (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | Visual Studio
# Friday den 8 August 2008

Jag vet att jag kommer att sitta och leta efter lösningen på det här problemet fler gånger framöver när teflonminnet slagit till. Det lika bra att posta lösningen här nu direkt medan jag minns även om ingen annan någonsin kommer att behöva den.

Problemet:

Scenariot är att jag har lagt till kontroller på en dialog i ett MFC-baserat C++ projekt för Windows Mobile i Visual Studio 2008 och nu ska koppla kod till events på dessa kontroller. T. ex. en OnBnClick-handler för en knapp. Vanligtvis är det bara att högerklicka på knappkontrollen och välja Add Event Handler… för att få upp Event Handler Wizarden. Men inte denna gång! Istället fick jag ett felmeddelande: “Add/Remove operation is impossible, because the code element C… is read only". Kollade massor av grejer, inga filer var låsta av nån process, omstart av Visual Studio hjälpte inte heller, hittade referenser till att det varit en bugg med detta symptom i VS2005 men att det fixats i SP1 för 2005. Nu var jag ju uppe på VS2008 så det borde inte vara samma.

image

Lösningen:

Det var enkelt när jag väl kom på det! Stäng Visual Studio och gå till Utforskaren och radera sedan projektets .ncb-fil (i denna finns IntelliSense information) som vanligen ligger på solution-nivån på disken samt .aps-filen i projektmappen.

Starta om Visual Studio och ladda projektet, vips så fungerar verktygsstödet för att generera kod utifrån dialogeditorn och alla Wizards startar som de ska igen! Filerna som togs bort skapas om automatiskt när man laddar projektet.

image

Friday, August 08, 2008 2:06:53 PM (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
MFC | Windows Mobile | Visual Studio
# Friday den 16 May 2008

Ok, då var det dags att kolla in lite nyheter igen. Visual Studio 2008 SP1 Beta får nog bo kvar i en virtuell maskin tills den visat sig värdig att få flytta in på riktigt.

image

Måste säga att det var ganska snabbt som denna SP1 kommer efter släppet av VS2008, men det var ju iofs en del funktioner som plockades ur 2008 ganska sent. Trevliga subtila saker som bakgrundskompilerande editor i C# som visar syntaxproblem liknande det som funnits i Visual Basic... Kanske är konstig som gillar såna små grejer. Blir det alltför mycket regn i helgen så har man att göra alltså.

Friday, May 16, 2008 3:11:49 PM (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
Visual Studio
# Saturday den 10 May 2008

Scott Hanselman har fiskat fram en plugin till Visual Studio som utvecklats internt på Microsoft av Rocky Downs. RockScroll ger en bredare rullningslist i Visual Studios kodfönster, listen visar en miniatyrvy av koden i filen med den synliga delen skuggad. Det ger en ganska subtil men ändå rätt bra hjälp att navigera i filen. Saken är ju den att det ganska ofta syns mönster i filens utseende som man mer eller mindre omedvetet utnyttjar när jobbar med koden.

image

Se Scott Hanselman's Computer Zen - Introducing RockScroll för nerladdningslänk.

Saturday, May 10, 2008 1:31:26 AM (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
Visual Studio
# Friday den 4 April 2008

För att kunna debugga Windows Mobile applikationer direkt mot en fysisk enhet med Visual Studio krävs det att man släpper lite på säkerhetsnivåerna i mobilenheten. Det gör man ganska enkelt med den inbyggda Device Security Manager som finns i Visual Studio 2008.

  • Anslut den aktuella mobilenheten, i mitt fall en HTC Advantage x7500

htc_x7500_advantage

  • Starta Device Security Manager från Tools-menyn i Visual Studio. Managern hämtar nu upp infromation från enheten om den gällande säkerhetspolicyn som är aktiv.

Device Security Manager

  • Skapa en Xml-fil på disk med följande innehåll, det är enklast att exportera den gällande policyn och modifiera filen. De rödmarkerade inställningarna motsvarar Prompt respektive RAPI Access som förenklar debugging avsevärt. För en översikt av konfigurationsmöjligheterna, se denna länk till MSDN.


 
   
    1" />
   
   
    1" />
 

  • Importera filen till managern igen efter modifieringarna
  • Välj den nya policyn som automatiskt får namnet Custom
  • Klicka sedan på Deploy to Device för att spara den nya poilcyn till mobilenheten och samtidigt aktivera den

Nu kan Visual Studio kommunicera med enheten utan hinder och starta applikationen som ska köra utan att man behöver godkänna den för hand på enheten.

Man bör givetvis återställa en mer restriktiv policy på enheten när man inte längre använder den för debugging.

Friday, April 04, 2008 3:31:06 PM (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
Visual Studio | Windows Mobile
# Thursday den 3 April 2008

image

Jag började precis jobba med ett nytt uppdrag, en del av utvecklingsprojekten källkodshanteras med Visual SourceSafe 2005. Det visade sig väldigt snabbt att SourceSafe kräver en rejäl patch för att fungera som det var tänkt om man använder Windows Vista och Visual Studio 2008 som utvecklingsplattform.

Ett av problemen är att integrationen i Visual Studio inte fungerar på samma sätt som i äldre versioner, främst beroende på att VS2008 använder Vistas standarddialog för att öppna filer och projekt. Nu behöver man inte deppa ihop helt eftersom det finns en uppdatering att plocka hem och installera.

Ladda ner uppdateringen för Visual SourceSafe 2005 här!

Thursday, April 03, 2008 9:33:51 PM (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
Windows Vista | Visual Studio
# Monday den 17 March 2008

Frågan dök upp under dagens kurstillfälle när vi presenterade TDD i Visual Studio Team Suite. Svaret är: Ja, det finns grejer som inte kostar något, bland andra PartCover och CLR Profiler. Det är kanske lite jobbigare att använda än de kommersiella verktygen men betydligt billigare och därmed tillgängligt även för mindre utvecklingsteam som kanske inte har så stor budget.

Monday, March 17, 2008 11:01:02 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | Visual Studio
# Wednesday den 5 March 2008

Intresserad av båtar, operativsystem, databasservrar eller Visual Studio 2008? Då var Älvsjö platsen... igår alltså, idag är det för sent, idag skulle man vara i Las Vegas. Lansering och galapremiär för Visual Studio 2008 nu två och en halv månad efter att jag började jobba med den i skarpt projekt känns lite märkligt.

Eftersom man redan jobbar med Visual Studio 2008 så var det inte fullt så revolutionerande att se demos av LINQ och andra nyheter i utvecklingsmiljön. Det var däremot väldigt intressant att se lite av nyheterna i SQL Server 2008, jag kan ju direkt se en del intressanta tillämpningar av GIS datatyperna i projekt som det jobbas på inom koncernen där jag själv jobbar. Men de prestandarelaterade nyheterna med kompression av rader respektive sidor i databasmotorns lagring är nog det som kommer att vara mest användbart på bred front. Jag har en hel del gamla databasprojekt i bagaget där prestandaförbättringar och lagring av blobbar som med nya FileStream säkerligen skulle få enorma kickar av att utnyttja row och page compression. Det verkar vara läge att börja labba med SQL Server 2008 CTP...

HeroesHappenedThere (4) Inte för att jag riktigt vet vad jag ska göra med det eftersom jag kör med en tyngre edition av Visual Studio i jobbet men i "Heroes happen {here}" påsen som kom med hem efter tillställningen finns licens för Visual Studio 2008 Standard Edition. Men det finns kanske en lucka att fylla med den licensen eftersom familjens yngsta medlem helt plötsligt fått upp intresset för att utveckling kan vara en framtidssysselsättning.

Båtar då? Vad hade det med lanseringen att göra? Inte speceillt mycket men det gav en rejäl promenad för oss som kom till mässområdet vid lunchtid eftersom man fick parkera låååååångt bort eftersom den pågående båtmässans besökare slukade allt tillgängligt parkeringsutrymme.

Las Vegas? Jo, det är lite synd att inte det var någon dag senare som lanseringen gjordes, då hade vi antagligen fått se en hel massa andra nyheter också eftersom man idag har stort pådrag av nya grejer som annonseras på MIX 08 konferensen i Lag Vegas. Enligt en insatt källa på Microsoft har de problem med att hinna med att annonsera alla nyheter som borde ut på MIX rent tidsmässigt. Men å andra sidan var det ju Visual Studio 2008, Windows Server 2008 och SQL Server 2008 som skulle presenteras igår, idag är det en ny dag och vi är redo för att suga i oss fler nyheter!

Wednesday, March 05, 2008 11:39:42 AM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
SQL Server | Windows Server | Visual Studio
# Monday den 25 February 2008

Ett av de verktyg i .NET-lådan som turnerat runt mest mellan olika installationsdelar är kontrollpanelen för hantering av applikationer och säkerhetsinställningar. I .NET Framework 1.0 - 2.0 fanns panelen med i installationen av ramverket. Men när jag hade behov av att använda den förra veckan på en samling maskiner som hade installerats med Visual Studio 2008 direkt på rent operativsytem så var kontrollpanelen inte där. Grundorsaken till att jag ville modifiera säkerhetsinställningarna var att den Windows XP plattform våra kursdeltagare använde på sina datorer hade användarens personliga filer på en offline-synkroniserad nätverksdisk, det gav resultatet att Visual Studio betraktar sina projektmappar som icke-pålitliga.

Det visar sig att kontrollpanelen inte installeras med .NET Framework 3.5 SDK vilket den gjorde för version 2.0. Numera återfinns kontrollpanelen, som heter Mscorcfg.msc, i Windows Software Development Kit (SDK).

Ladda ner SDK: ISO eller Web Setup.

I vissa fall ger det problem med Intellisense i VS2008 om man installerar SDK efter att Visual Studio installerades, ta en titt på Workaround: Installing Win SDK after VS2008 breaks XAML Intellisense för lösning på de problemen.

Om man inte vill installera verktygen från Windows SDK för att få tillgång till .NET kontrollpanelen så kan säkerhetskonfigurationen uppdateras genom att använda kommandoradsverktyget Caspol.exe, det installeras till skillnad från panelen tillsammans med .NET Framework SDK och Visual Studio. För info om hur det används, se Code Access Security Policy Tool (Caspol.exe).

image

Monday, February 25, 2008 11:02:33 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | Säkerhet | Visual Studio
# Tuesday den 19 February 2008

Just nu sitter vi och kör vår C#/.NET grundkurs ute hos en kund och har diskuterat C# XML dokumentation i kodkommentarer. För att få ut bästa möjliga resultat av den dokumenterade koden så kan det vara intressant att titta på verktygen Sandcastle och Visual Studio tillägget DocProject. Alternativt finns verktyget doc-o-matic men då blir det en del licenskostnader.

image

Ett verktyg som kan vara bra i samband med denna dokumentation är ett tillägg för stavningskontroll i Visual Studio. Mer information och nerladdning finns här... Om ni använder 64-bitars Vista som plattform så behöver ni titta på tipsen längst ner i artikeln alldeles innan kommentarerna börjar för att registerera DLL-filen manuellt.

Tuesday, February 19, 2008 12:55:35 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | C# | Visual Studio

Snabbtangenter, kortkommandon eller tangentbordsgenvägar? Ja, oavsett vad man vill kalla det så finns en bra översikt att ladda ner från Microsoft, hämta via http://shrinkster.com/v1d.

image

Tuesday, February 19, 2008 11:04:50 AM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
Visual Studio
# Saturday den 9 February 2008

Utvecklingsteamet för Visual Studio har släppt en hotfix för Visual Studio 2008 (inklusive Express versionen av webbutvecklingsdelen). Det är främst korrigeringar av problem med redigeringsverktygen för HTML och en del prestanda problem som fixats.

Läs mer och ladda ner här - Downloadable Hotfix: Performance and Editor fixes for Microsoft Visual Studio 2008 and Visual Web Developer Express 2008

Det som är riktigt intressant är ScottGus kommentar till artikeln ovan, att teamet nu har som målsättning att släppa korrigeringar betydligt snabbare och oftare än de gjort för de tidigare versionerna av Visual Studio.

Saturday, February 09, 2008 4:46:09 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
ASP.NET | Visual Studio
# Monday den 28 January 2008

Ikväll kollade jag statusen på AnkhSVN projektet, den fria Subversion-pluginen för Visual Studio. Med stor glädje kan jag konstatera att utvecklingsteamet verkar ha löst kompatibilitetsproblemen som gjort att AnkhSVN inte fungerat med Visual Studio 2008 i kombination med Windows Vista.

image

Uppdatering!
En del buggfixar har tillkommit så en version som fungerar bättre (1.0.3.2823) är nu tillgänglig.

Den version jag installerat är pre-release AnkhSVN 1.0.3.2815, och den fungerar utan problem på min 64-bitars Vista med Visual Studio 2008.

Klicka här för att ladda ner...

Monday, January 28, 2008 11:02:35 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
Subversion | Visual Studio
# Tuesday den 20 November 2007
Framåt kvällen igår när jag satt och pratade med några kollegor efter månadens konsultmöte så frågade min kollega Mats om jag hade hört något närmare när Visual Studio 2008 skulle släppas i RTM version. Jag gjorde en något humoristiskt menad ansats att titta på klockan... Inte för att jag hade en aning om det just i det ögonblicket men det verkar inte ha varit helt galet att försöka uppskatta Visual Studio 2008 nedkomsten genom att kolla klockan istället för att ge sig på almanackan. Nerladdningen pågår för fullt just nu.

VS2008 download screenshot

Om ett par timmar är det väl läge att kolla hur det står till med de sista ändringarna sedan senaste beta-versionen och titta till statusen för en del plugin-moduler man kan komma att behöva.
Tuesday, November 20, 2007 10:01:05 AM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | Visual Studio
# Friday den 27 July 2007

Det gick relativt snabbt att tanka ner VS 2008 och dess tillhörande MSDN Library igår, mycket snabbare än de tidigare CTP releaserna av Orcas. Jag antar att Microsoft lagt lite mer resurser på bra distribution av nya betaversionen än de gjort tidigare med tanke på att det troligen blir ganska hårt tryck på nerladdningen av denna release som sägs vara funktionsmässigt komplett.

Installationen på min Vista laptop (Dell Latitude D820) gick på ca 1,5 timme, jag körde med Virtual Clone Drive direkt från en ISO image på samma hårddisk så det kanske inte var optimalt ur prestandahänseende.

VS2008 Beta 2  install 1

Installationen gick igenom helt utan problem och några få minuters test visade att det går utmärkt att skapa och bygga både Winforms och ASP.NET applikationer. Det blir intressant att se hur väl den hanterar att bygga applikationer med olika målplattformar i fråga om .NET versioner. Jag ska ge den ett rejält test med en större webbapplikation för att se om det fungerar bra att bygga ASP.NET 2.0 applikationer som driftas på servrar utan .NET Framework 3.5.

Friday, July 27, 2007 5:32:48 PM (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | ASP.NET | Visual Studio
# Saturday den 10 March 2007

Nu är det dags att ladda ner och installera den kompletta Vista-anpassningen för Visual Studio 2005. Obs! Man måste avinstallera betaversionen av SP1 uppdateringen för Vista om man haft den installerad. 

Ladda ner uppdateringen här: VS2005 SP1 Uppdatering för Vista

Saturday, March 10, 2007 2:20:50 AM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
Windows Vista | Visual Studio
# Monday den 22 January 2007

En kompis beklagade sig över den "odugliga sökfunktionen som F3 är kopplad till" i Visual Studio 2005. Han längtade verkligen tillbaks till gamla hederliga UltraEdit med sin mer strömlinjeformade sökfunktion.

För att beskriva det han uppfattade som ett problem kanske jag ska beskriva skillnaderna mellan Visual Studios F3-sökning och UltraEdits. UltraEdit söker efter nästa förekomst av det för tillfället markerade ordet i texten och hoppar dit när man trycker på F3. Visual Studio har funktionen FindNext kopplad till F3 vilket gör att den söker efter nästa förekomst av det senast eftersökta ordet även om ett helt annat ord är markerat i texten.

Med normala inställningar i Visual Studio behöver man utföra följande sekvens för att göra en upprepad sökning:

  1. Markera ett ord att söka efter
  2. Tryck [CTRL+F]
  3. Tryck [Enter]
    Nu är man på första förekomsten av sökordet...
  4. Nu fungerar [F3] för att hoppa till nästa förekomst av sökordet
    Problemet är att man måste upprepa [CTRL+F] delen för att söka efter ett annat ord.

För samma resultat i UltraEdit:

  1. Markera ett sökord
  2. Tryck [F3] 

För att få Visual Studio att bete sig som UltraEdit kan man mappa om F3 till att kalla på funktionen FindNextSelected istället.

  1. Välj Tools -> Options... i menyn
  2. Sedan väljer man  Environment -> Keyboard.
  3. Sök efter "FindNext" i Show commands containing för att hitta de två funktionerna som är kopplade till [F3] respektive [CTRL+F3] (se bilden)
  4. Ta bort tangentbordsmappningen på båda funktionerna  FindNext och  FindNextSelected
  5. Lägg till den nya mappningen, men nu med omkastade tangentkombinationer, dvs FindNextSelected mappas till [F3]

 

Visual Studio
Monday, January 22, 2007 11:27:57 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
Visual Studio

Idag stötte vi på ett märkligt problem med Visual Studio 2005. Ett ASP.NET C# projekt behövde en rejäl omkompilering. Min kollega började leta efter Rebuild Solution i Build menyn eftersom det hade fungerat bra på min laptop. Till vår stora förvåning var det menyalternativet tillsammans med en del andra i Build och Debug menyerna spårlöst borta.

Visual Studio Settings

Efter en hel del undersökningar konstaterade vi att Visual Studios inställningar hade ställt om sig av okänd anledning och miljön var inställd på ett av de mer specialiserade inställningsschemana. Mest troligt hade den av någon anledning övergått till läget för Web Development där en del funktioner i miljön är nedtonade.

Lösningen på problemet med de saknade menyalternativen var i alla fall att återställa miljön till inställningarna för General Development.

Visual Studio Settings

  1. Inställningen för att växla schema för miljön ligger under menyn Tools -> Import and Export Settings...
  2. Välj Reset all settings och klicka på Next
  3. Nästa steg är att eventuellt spara de nuvarande inställningarna till en fil, det kan vara bra om man har några specialgrejer sedan innan
  4. Gå sedan vidare och välj General Development Settings från listan med inställningsscheman, se bild nedan
  5. Avsluta wizarden genom att klicka på Finish

Nu ska menyerna för Build och Debug återigen vara kompletta.

Jag tycker det är lite underligt att man valt att skala bort så många funktioner i de övriga inställningsscheman som finns så att ganska grundläggande kompilering och debugging blir lidande av det. Något mer oroväckande kanske det är att miljön själv verkar ha bytt grundschema!

General Development är det schema som mest ska efterlikna utvecklingsmiljön i den tidigare versionen, Visual Studio.NET 2003.

Visual Studio Settings

Monday, January 22, 2007 10:50:26 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
Visual Studio
# Thursday den 11 May 2006

Idag var det dags att uppdatera en äldre rapportdefinition som designats i Visual Studio.Net 2003 och publiceras på SQL Server 2000 med tillägg för Reporting Services. Eftersom jag för tillfället har vissa problem med VS 2003 installationen på min dator så bestämde jag mig för att göra ett försök i Visual Studio 2005.

Tyvärr kan man inte använda VS 2005 för att designa rapporter som är fullständigt kompatibla med RDL-formatet i SQL 2000 versionen av Reporting Services, vissa begränsningar och viss handpåläggning måste till för att publicera rapporterna. Rapportdesignern i VS 2005 har utökad syntax för det nyare RDL-format som stöds av SQL Server 2005, så Report Manager applikationen i SQL2K gillar inte RDL-filerna som produceras av VS 2005. Därför fungerar inte t. ex. inte "Deploy" direkt från Visual Studio.

En del tricks finns dock att ta till för att komma runt dessa begränsningar.

  • Använd bara funktioner som fanns i Reporting Services på SQL2K, använder man nyare funktioner kommer det garanterat inte att fungera.
  • Använd inte VS2005 funktionen "Deploy" för att publicera rapporten, spara den istället som RDL-fil.
  • Öppna rapporten (RDL-filen) antingen som Xml kod i VS eller med en annan textredigerare och ändra Xml namnrymdreferensen i <Report>-taggen enligt detta:

<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition"
xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">

Ändra till:

<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2003/10/reportdefinition"
xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">

  • Ta bort rader som innehåller taggarna <InteractiveWidth> och <InteractiveHeight>, de är inte kompatibla med RS 2000 men genereras av VS2005. Såg ut så här i mitt fall:

...
<InteractiveWidth>8.5in</InteractiveWidth>
...
<InteractiveHeight>11in</InteractiveHeight>
...

Publicera rapporten från Report Manager applikationen genom att ladda upp RDL-filen.

Report Manager-applikationen är relativt väluppfostrad och talar om vilka taggar den inte har stöd för så om du kan ladda upp rapporten utan felmeddelanden kommer den med största sannolikhet att fungera korrekt.

Thursday, May 11, 2006 1:50:11 PM (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
SQL Server | Visual Studio
# Wednesday den 3 May 2006

Nu kan man hitta Consolas typsnittet från Windows Vista som direkt nerladdning hos Microsoft utan att behöva dissekera en existerande Vista installation för att få tag på typsnittsfilerna.

Laddas ner här...

Instruktion för hur man använder typsnittet i kommandoprompten finns hos Scott Hanselman.

Wednesday, May 03, 2006 9:58:11 AM (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
Visual Studio | Windows XP
Prenumerera - RSS
Per Salmi
Per Salmi
Min LinkedIn Profil

Jag arbetar på Combitech AB i Linköping med konsultuppdrag och utbildning inom Microsoft .NET området. Kontakta mig gärna om ni har frågor, behov av konsulttjänster eller är intresserade av utbildning inom .NET.

Kontakta mig via
Send mail to the author(s) E-Post WLM Status Icon Per Salmi

Publicerade filer

Copyright © 2010 Per Salmi

Bloggmotor: newtelligence dasBlog 2.3.9074.18820

Sign In
Statistics
Total Posts: 174
This Year: 12
This Month: 0
This Week: 0
Comments: 35
Bloggtoppen.se!
Datorer
All Content © 2010, Per Salmi
DasBlog theme 'Business' created by Christoph De Baene (delarou)