PerSalmi.NET

Swedish .Net software developer...
# Wednesday den 12 November 2014

image

Jag spinner vidare på Mats Sjövalls betraktelser kring Microsoft och öppenhet… Bilden här ovan är ett klipp från Scott Guthries presentation på online konferensen Connect(); som Microsoft håller nu 12-13 november i New York respektive Redmond, den sammanfattar ganska väl vad som är på gång från Microsoft just nu.

Innovationen kanske är på högsta nivå inom molnplattformen Azures framsteg medan den aggresiva takten av nya releaser av produkter som kommer är spridd över fler områden liksom den nya öppenheten med vad man jobbar på och jobbet med att göra mer och mer av plattformarna till öppen källkod verkar genomsyra allt just nu.

Scott tillkännagav idag att .NET plattformen blir öppenkällkod och att man kommer att släppa officiella versioner av .NET för både Linux och Mac framöver. Detta innebär bland annat att hela .NET runtime och dess kompilatorer nu kommer att vara öppen källkod. Ännu finns inte hela .NET Core som det kommer att kallas upplagt  på Github men det kommer att läggas ut stegvis fram till BUILD 2015 konferensen som kommer att gå i månadsskiftet april-maj 2015. Läs mer om open source processen för .NET på .NET Core is Open Source

För att göra det lättare att jobba med .NET i projekt framöver kommer dessutom en ny Visual Studio Community Edition, en gratis utvecklingsmiljö som kan användas för all utveckling som inte klassas som enterprise-utveckling.

Nytt för denna gratis version är att nu kan man använda extensions även utan att ha en betald Visual Studio licens! Det är alltså en mer komplett utvecklingsmiljö än de tidigare Express utgåvorna.

Ladda ner Visual Studio Community 2013 här.

Community Edition har bland annat stöd för att utveckla mot Azure, devices med Cordova och mycket mer.

Wednesday, 12 November 2014 17:04:53 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | Visual Studio
# Thursday den 5 June 2014

Nu är den första publikt tillgängliga förhandsversionen (CTP) av nästa generation i Visual Studio-familjen släppt!

Det har ju pratats och visats en del detaljer om vad som kommer på konferenser som BUILD och TechEd men nu kan man testa själv också.

Lite om vad som är nytt i denna Roslyn baserade version finns i Somasegars artikel:

Visual Studio 14 CTP - Somasegar's blog

För att hitta direkt till nerladdning av komplett ISO eller webbinstaller ta en titt på:

Visual Studio 14 CTP Downloads

Till sist kanske det snabbaste sättet att kunna få till sina första kodrader i denna version, en färdig virtuell maskin i Microsoft Azure? Kolla då in Azure Management Portal och skapa en ny virtuell maskin med denna VS “14” CTP förinstallerad!

image

Thursday, 05 June 2014 00:45:19 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | Visual Studio
# Wednesday den 22 May 2013

Vi har brottats med dåliga prestanda i Visual Studios debugger under flera år i ett projekt jag arbetar med. Det handlar om att single-step debugging i riktigt stora solutions, här pratar vi om 120+ projekt i en solution, går segt och tär rejält på tålamodet. Flera sekunders fördröjning för varje steg man tar med step-into eller step-over när man sitter och letar efter fel är inte ovanligt trots mycket enkla operationer i varje steg.

Men alldeles nyss gjorde min projektkollega, Henrik Cooke, ett fenomenalt genombrott i frågan! Debuggingen blir riktigt rapp och responsiv om man stänger av Edit and Continue funktionen i Visual Studio debuggern.

Så om du inte använder eller i alla fall kan leva utan Edit and Continue stöd när du kodar och felsöker så gör så här:

  • Gå till menyn DEBUG -> Options and Settings…
  • Öppna fliken Debugging -> Edit and Continue
  • Se till att rutan Enable Edit and Continue är urkryssad och välj OK

Det ska se ut så här:

image

Steg-operationerna i debuggern flyger fram efter att man fixat detta!

Wednesday, 22 May 2013 13:56:54 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | Verktyg | Visual Studio
# Friday den 23 September 2011

Det börjar bli långt fram i veckan nu med massor av nyheter och långa dagar. Vi funderar väl lite på det men är snart inne på att vi måste avsluta med en stark slutspurt, detta är ju sista dagen av konferensen och vi har fyra sessioner kvar att avnjuta.

Vi börjar dagen stenhårt med något som låter enkelt på rubriken “Windows Runtime internals: Understanding Hello World”. Det är inte fullt så enkelt, här snackar vi djupdykning i hur en WinRT App startar upp under en timme med Microsoft Console Debugger - cdb.exe, virtual function tables, Windows Registry och annat smått och gott, mycket lärorikt om hur initiering och uppstart av Windows Runtime ser ut. Kolla själva på Channel 9.

image

Session två för dagen blir om Media fundamentals of a communications app, intressant för att kunna utnyttja telefoni, kamera och video i Windows 8 enheter. Det finns riktigt smidiga APIer för detta i WinRT jämfört med hur krångligt det var att uppnå samma resultat med .NET eller Win32 innan.

Efter lunch drar vi på med en tungviktare till session igen, Deep Dive into the Kernel of  the .NET Framework. Mycket intressant om arbetet med att förbättra .NET kärnan i 4.5, bland annat när det gäller garbage collection och NGen systemet för att optimera prestanda när managed kod översätts till maskinkod i produktionsmiljöer. Bland annat genereras nu native kod images när de behövs baserat på statiskit och inte i förväg för att spara diskutrymme och minska applikationers tyngd i systemet. I .NET 4.5 körs ngen för Metro assemblies och för utvalda .NET assemblies i global assembly cache. Man har även infört att JIT kompilering kan köras om för kodstycken utan att starta om processer, detta gör att man kan instrumenera managed kod med instruktioner för profilering under körning utan att starta om processen som ska monitoreras.

Som avslutning på dagen och hela konferensen gick vi på en session om Architectural discovery with Visual Studio 11. Teamet bakom de olika ALM verktygen i Visual Studio visade upp möjligheterna med nya dependency diagram och hur dessa kan användas för att studer och förstå en stor kodbas och tex utforma utbildningsmaterial för nya utvecklare som snabbt ska komma in i ett projekt.

Efter konferensen var det dags för lite mer teknikspaning på ett flertal affärer, Microsoft Store, Apple Store och Sony Store i Costa Mesa. Vi kostaterar tex att vissa saker som tex Microsofts Arc Touch Mouse är billigare i Sverige än i USA, Apple Store är bland det stökigaste man kan besöka i fråga om ljudnivå och Sony har en del Vaio laptops med grymma prestanda. Nytt personligt rekord i diskprestanda som jag själv uppmätt med winsat i Windows 7 ligger nu på över 920 MB/sekund i läshastighet! Det är ruskigt snabbt. Våra annars toksnabba utvecklingslaptops är stillastående i jämförelse. Kvällen avslutades med packning…

Friday, 23 September 2011 00:01:01 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | BUILD | Windows Runtime | Visual Studio
# Thursday den 22 September 2011

Dagens första session blev inte helt oväntat Anders Heijlsbergs genomgång av framtiden för C# och Visual Basic. Det största och mest kända tillägget till språken är async konstruktionerna, det har ju kommit ut information om async redan innan men nu är det på väg ut i verkligheten med WinRT och .NET 4.5. Med tanke på att så stor andel av alla APIer nu har asynkrona varianter så kommer det att underlätta kod i moderna applikationer betydligt. Anders visade även tre nya attribut för felhantering och trace som gör att man kan inkludera källkodsinformation som filnamn och radnummer i t.ex. ett tracemeddelande.

Det mest intressanta eller omvälvande från sessionen var presentationen av Roslyn-projektet som flyttar ut språkkompilatorerna som tjänster. En serie APIer blir då tillgängliga så att utvecklare av verktyg och språk kan haka in sig och göra intressanta saker som refaktorering, kodgenerering  mm. Demoexemplet var tex att göra en extension till studion som klistrade in utklippt C# kod som Visual Basic kod översatt och klar. Spännande om man gillar att bygga ut sina verktyg. Perfekt för den som vill bygga till smart kodgenerering eller egna refaktoreringar. En CTP version av Visual Studio Roslyn kommer i mitten av oktober.

image

Dagens andra session som skulle bli om “Löst kopplade applikationer med Service Bus – Clemens Vasters” var förstås fullsatt så det blev lite avkoppling och tid att reflektera över veckan som den varit hittils. Ett tillfälle att läsa lite och låta hjärnan varva ner från informationsflödet. Trist men man får kolla på videon efteråt.

Vi lär oss av misstagen och är riktigt tidiga till nästa session om Entity Framework vNext. Riktigt intressant och ser nu ut att kunna konkurrera rejält med NHibernate som vi använder dagligen.

Bland annat kommer stöd för

  • Enums
  • Tablevalued functions
  • Compiled linq
  • Optimized query
  • Multipla diagram
  • Databasprojekt integration
  • Stored Procedures och multipla resultatset

Killarna visade även mer om Code First modellen som funnits ute i testversion ett tag samt nya det nya fluent-API som kan användas för konfigurering. Höjdpunkten tycker jag var migreringar, dvs stöd för att via kod uppdatera databas scheman när det behövs när en ny version ska installeras och uppgradera en tidigare databas med ny funktionalitet. Migrationer genereras i önskat språk. Kodfilerna kan även redigeras för hand och man ska inte riskera att de skrivs över av Entity Framework när man genererar ut ny migrationskod. I närheten av migreringar ligger också reverse engineering av databaser till code first modeller.

Nya datatyper som kommit i SQL Server sedan flera år har nu fått stöd i EF, tex finns nu de geografiska datatyperna med i EF. Datatjänster för access från klienter som telefoner och webbapplikationer finns också via WCF Data Services som kan skapas från en EF modell. DataSvcUtil kan användas för att generera klientproxys mot dessa services, ser smidigt ut vid demo, återstår att se hur det blir i praktiken.

Dagen avslutar vi med en session om tips och tricks i Visual Studio 2010 och 11. Lite lättviktigare avslutning på dagen även om det var högt tempo och del grejer man inte sett innan eller helt enkelt glömt bort. Efter sessionernas slut var det en sk Ask the Experts-stund där massor av medlemmar från utvecklingsteamen bakom Windows 8, WinRT och alla andra tekniker fanns på plats och man kunde sitta ner och prata samt få svar på frågor av de som faktiskt bygger grejerna. Eftersom det närmast uppstått överladdning av nya tekniker under veckan och man inte hunnit reflektera så väldigt mycket var det inte helt självklart vilka som var de rätta frågorna att ställa. Men jag fick i alla fall veta mer om SkyDrive-stödet i Windows 8.

Kvällen tillbringade vi på ESPN Zone där det ordnats med GeekFest, det bjöds på lite typisk plockmat och dryck under trevliga former, man kunde träffa mängder av .NET-folk och utvecklare mer eller mindre kända från tex Dotnet Rocks podcasts.

Thursday, 22 September 2011 23:06:29 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | BUILD

Jag fortsätter med några summeringar av BUILD konferensen, de var menade att postas redan förra veckan medan konferensen pågick men de blev fördröjda av både tekniska problem och tidsbrist.

Dag två började liksom första dagen med ett keynoteföredrag, den här dagen med fokus på utveckling. Främst då med nya versioner av Visual Studio, .NET Framework och DirectX. Scott Guthrie och Jason Zander var de tunga namnen för dagen, mest förtjusning hos publiken gav nog en demo av nya avancerade debugger funktioner där man felsökte ett DirectX baserat 3D spel och kunde hitta ett renderingsfel genom att spåra vägen genom olika filter som presentationen av en specifik pixel hade tagit. Grafiska demos väcker alltid publikens jubel tycks det, så Visual Studios nya grafikeditor blev också populär.

image

Visual Studio 11 som spelar en central roll i alla dessa utvecklingsscenarier har förbättrats i massor med små och stora detaljer, ScottGu visade på en del av nyheterna inom ASP.NET MVC och Async.

Jason Zander presenterade Team Foundation Service Preview som levereras som en tjänst baserad på Windows Azure och alla deltagare fick inbjudan till att pröva tjänsten under ett år.

Steve Ballmer dök upp lite oväntat under sista halvtimmen av keynoten och tryckte främst på att det nu fanns ett utmärkt tillfälle att börja bygga appar för Windows 8 med Metro-stil och att han hoppades kreativiteten skulle flöda fritt. Helt klart är att fokus för framtiden ligger på Windows - Windows 8, Windows Server 8, Windows Azure och Windows Phone! Han avslutade förstås med sin numera klassiska "Developers, developers, developers."

Efter detta började de riktiga tekniksessionerna som går mer på djupet. Det märktes tyvärr att en del hade haft lite bråttom att få ihop materialet. Vi var bland annat på en väldigt kort session om DirectX som inte var speciellt givande, men det skulle ganska snabbt bli bättre. Det var väl egentligen inte meningen att vi skulle på DirectX sessionen heller eftersom vi hamnade på den enbart av anledningen att det var proppfullt med folk på den session vi egentligen ville se. Tyvärr var nog detta en effekt av att allt varit så hemligt ända fram till konferensens början så man hade inte kunnat föranmäla sina intressen speciellt detaljerat. Planeringen av vilka sessioner som skulle komma att dra storpublik var därför lite skev. Man kunde snabbt se trenden att Visual Studio 11, nya Windows Runtime och en del sessioner med folk som har särskilt bra rykte om sig som underhållande och duktiga talare fick man vara väldigt tidig till för att få plats.

Det bästa med dagen var kanske att koncepten bakom Windows Runtime började klarna ganska mycket. Martyn Lovells genomgång “Lap around Windows Runtime” gav mycket och kan rekommenderas för den som är intresserad. Vi avslutade dagen med en session om WebSockets i ASP.NET 4.5 på Windows Server 8. WebSockets kommer att öka mycket i användning framöver när alltfler webbapplikationer börjar utnyttja HTML5 funktioner och behöver snabba, effektiva sätt att få meddelanden pushade ut från servern till presentationen ute i användarnas webläsare. Stödet i ASP.NET 4.5 kändes ganska smidigt att använda, men det som stör är att det var något oklart om det samtidigt krävdes att servern kör på Windows Server 8.

Thursday, 22 September 2011 22:21:37 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | BUILD | Visual Studio
# Sunday den 15 May 2011

För några veckor sedan höll jag ett par introduktionsföredrag om Claims Based Security för mina kollegor inom projektet där jag jobbar. Vi använder claims för att säkra våra WCF-anrop mellan klientapplikationer och server. När vi började med detta och säkrade våra första tjänster fanns Windows Identity Foundation (WIF) bara i en betaversion, så det är ett tag sedan. Då var det lite si och så med dokumentationen och det var svårt att hitta fungerande exempel på hur man skulle både koda och konfigurera upp WCF tjänsterna.

Men eftersom det nu har mognat en hel del och vi till och med har fått lite andrum i projektet och hunnit med lite kompetensspridning så tänkte jag tipsa om ett par källor att ösa mer kunskap ur:

A Guide to Claims-Based Identity and Access Control (PDF) – bok som ger snabb översikt

image

Identity Developer Training Kit – Hands-on-labbar, presentationer, kodexempel och länkar till videos

Även om det nu är många som börjat jobba med claims framför allt vid molnbaserade grejer i Windows Azure så finns det fortfarande mycket att utforska, training kittet kan ju vara en bra början.

Sunday, 15 May 2011 15:42:46 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | Säkerhet | WCF
# Wednesday den 13 April 2011

Det finns hur mycket nytt som helst att labba med den närmaste tiden…

Silverlight 5 Beta släpptes idag, plocka ner verktyg och SDK här:

Silverlight 5 Tools Beta
Tillägg för Visual Studio 2010 Service Pack 1 för utveckling av Silverlight 5 Beta och Microsoft WCF RIA Services V1.0 SP2 Preview (April 2011) applikationer.

Microsoft® Silverlight™ 5 Software Development Kit Beta
Microsoft® Silverlight 5 SDK Beta filer och verktyg för utveckling.

Massor av andra nya nerladdningar finns också att hämta, mest nyheter om asynkron programmering men även en del ASP.NET relaterat och nytt training kit för Windows Azure.

Task-based Asynchronous Pattern
Djupgående dokumentation om nya Task-based Asynchronous Pattern (TAP) för .NET Framework.

TPL Dataflow CTP
Förhandsversion av System.Threading.Tasks.Dataflow.dll.

TPL Dataflow
Introduktion till .NET bibliotek för parallella applikationer.

Visual Studio Async CTP
Visual Studio Async CTP (SP1 Refresh) tillägg till Visual Studio 2010, ny förenklat stöd för utveckling av asynkrona applikationer.

C# Language Specification for Asynchronous Functions
Specifikationer för C# asynkrona funktioner.

ASP.NET Web Pages with Razor Syntax
ASP.NET Razor Syntax ramverk och en del av nya verktyget WebMatrix för utveckling av webbsajter.

Windows Azure Platform Training Kit
Windows Azure Platform Training Kit utbildningspaket för Windows Azure, SQL Azure och Windows Azure AppFabric.

Wednesday, 13 April 2011 22:37:16 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | ASP.NET | C# | Silverlight | Visual Studio

MIX11 dag två ser ut att bjuda på en del nytt om Windows Phone 7 efter en timmes tittande på keynote 2…

Att Microsoft känner av att det är hårt tryck på att släppa uppdateringar till WP7 är väldigt tydligt efter att de fått massiv kritik för uteblivna uppdateriongar och långsamt informationsflöde om vad som är på gång. WP7 delen av keynoteföredraget idag börjar med en ganska lång förklaring och ursäkt. Orsakerna som ges till fördröjningen är problem med sättet vissa telefoner tog emot uppdateringen som man började skeppa ut gjorde att man fick bygga om infrastruktur, ta fram en uppdaterad Zune klient mm. Nu fortsätter utrullningen utspridd över tiden, den är dock beroende av att operatörerna godkänt uppdateringen.

När det gäller hur det går för WP7 på marknaden så säger Microsoft att status på WP7 App Marketplace är att det finns 13000+ appar och 35000+ utvecklare med aktiva konton. Nokia jobbar stenhårt på sina första WP7 mobiler. Skype för WP7 kommer I höst. Spotify kommer också att släppas framöver ochn visades upp i en förhandsversion. Världssuccén Angry Birds släpps på Marketplace den 25:e Maj

Den riktigt stora uppdatering av telefonoperativet som kommer i höst kallas “Mango”, det kommer att finnas till alla idag tillgängliga WP7 mobiler samt på nya modeller som kommer. Det innehåller förbättringar på bred front med tunga delar som många fler länder som får tillgång till Marketplace, uppdaterar webbläsare och  multithreading. Inte mindre än 16 nya språk inkl svenska finns med Mango, Marketplace ökar till 36 länder för försäljning. Internet Explorer 9 ingår i Mango och baseras på samma kodbas som PC versionen av IE9. HTML5 standardsupport och hårdvaruacceleration, stöd för bakgrundsljud i HTML är bland nyheterna. Bland annat stöds videotaggen med H.264 kodning.

För apputvecklare märks främst förbättrade tiles, ringsignaler, SQL-databas, access till kalender och kontakter från appkod, rådataaccess till kameran och möjligheter att programmera mot inbyggd kompass och gyro. Ett nytt lättanvänt API för sensoranvändning är framtaget av Microsoft Research för att underlätta hantering av hårdvarusensorerna. Multitrådning ger möjligheter för snabb växling mellan appar, filnerladdning, alarmfunktioner som bevakas i bakgrunden, uppspelning av ljud från bakgrundstrådar och en del annat.

En intressant feature är bakgrundskörning av kod i stil med services, men Live Agents som det kallas  kör under korta sekvenser för att spara energi. En lokal SQL-databas baserad på SqlCE med LINQ-stöd och ORM för enkel lagring av data i applikationer kommer nu med i WP7, för att minska mängden av icke-kreativ kod som behöver skrivas. För övrigt har nätverks-APIerna har fått socketstöd. Men en av de hetare ändringarna för bland annat spelutveckling och visualisering är att både Silverlight och XNA kan kombineras i samma UI i en och samma app.

En nyckelordskarta lånad från keynotevideon avslöjar fler nyheter som kan vara google-värdiga:

image

Verktygen för “Mango” utveckling kommer att finnas tillgängliga under maj 2011. Scott Guthrie visar upp Mango Tools i Visual Studio 2010, bland annat en förbättrad emulator med accelerometerstöd och positionering där man kan ange position via en karta.

image

I Visual Studio med tilläggen för Mango finns profiliering av kod för telefoner. Även gratisversionerna av verktygen kommer att innehålla profileringsverktygen vilket tyder på att Microsoft vill försäkra sig om att användare av appar ska ha bästa möjliga prestanda när de använder telefonerna och att utvecklare inte längre har några utsäkter…

Prestandaförbättringar av inbyggda systemdelar för bland annat scrolling, bildavkodning, garbage collection och minnesanvändning har gjorts, minnesanvändning i existerande appar kan gå ner med så mycket som 30% bara genom dessa förbättringar.

Wednesday, 13 April 2011 22:16:01 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | Silverlight | Windows Phone 7 | Visual Studio
# Tuesday den 12 April 2011

Några grejer jag tänkte kolla på närmaste tiden kommer från MIX 2011 som just nu pågår i Las Vegas. Det hade säkert varit riktigt kul att vara på plats men i brist på egen närvaro får man kolla lite på det som släpps till alla.

ADO.NET Entity Framework 4.1
ADO.NET Entity Framework, ny release med funktioner som inte kom med i .NET 4 versionen.

ASP.NET MVC 3 Tools Update
ASP.NET MVC 3 Model-View-Controller (MVC) uppdatering av vertygsstödet.

Internet Explorer 10 Platform Preview 1
En riktigt tidig förhandsversion av IE10.

Förutom dessa paket för utvecklare så kan man ju förstås följa en hel del av vad som händer på konferensen på live.visitmix.com.

Tuesday, 12 April 2011 19:33:42 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | ASP.NET | Internet Explorer
# Tuesday den 7 December 2010

Ett par godbitar för den som vill ligga på topp när det gäller det senaste i .NET- och Visual Studio-väg dök upp på Microsoft Downloads respektive MSDN idag.

image

Jason Zander skriver om betaversionen av SP1 för VS 2010 som finns på MSDN för prenumeranter redan idag och kommer ut till allmän nerladdning inom några dagar. Kolla bloggen på Announcing Visual Studio 2010 Service Pack 1 Beta. Nerladdning finns här VS 2010 Service Pack 1 Beta (MSDN prenumeranter) och inom kort även här på Microsoft Downloads. Nu återstår att titta på förbättringar av online-hjälpsystemet och annat smått och gott.

Nästa grej då… Jo, tidigare i höst under PDC 2010 visades en del nya funktioner ur ADO.NET Entity Frameworks kommande uppdatering, nu kommer då en preview version 5 som finns att tanka hem och pröva. Här laddar du ner Microsoft ADO.NET Entity Framework Feature Community Technology Preview 5.

För lite utförligare info om nya features som finns med, så har Julie Lerman postat flera artiklar om vad som är nytt på sin blogg, Don't Be Iffy.

Tuesday, 07 December 2010 22:59:00 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | Entity Framework | Visual Studio
# 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, 12 April 2010 18:24:10 (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, 16 March 2010 22:59:38 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | C# | 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, 20 February 2010 00:14:08 (W. Europe Standard Time, UTC+01:00)  #    Comments [1]
.Net | C# | Visual Studio
# Friday den 24 July 2009

För de som inte har Visual Studio Team System i sin MSDN prenumeration kommer nu en intressant extra present när Expression Studio 3 släpps. 

image

Den nya Expression Studio 3 finns nu med som en del även för de som har Visual Studio Professional med MSDN Premium prenumeration. Så nu kan fler använda Expression Design och Expression Encoder! Nu kanske detta inte leder till några direkta mirakel för hur WPF och Silverlight applikationer kommer att se ut framöver, med tanke på att de flesta utvecklare jag träffat på, inklusive mig själv, brukar betrakta sig som mer eller mindre odugliga när det gäller att få grafik att se riktigt bra ut i de gränssnitt som byggs… Men man kan väl alltid hoppas.

Friday, 24 July 2009 01:20:21 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | Verktyg | WPF
# Wednesday den 29 April 2009

Felsökte en ASP.NET applikation som har sitt ursprung i version  1.1 av .NET Framework idag för att utreda varför en nybyggd funktion som bygger på ASP.NET Ajax med UpdatePanels inte fungerade.

Problemets symptom var att UpdatePanelen alltid gav en total omladdning av sidan, inga events lyckades få panelen att göra en partiell uppdatering. Ett inte helt ovanligt problem om man googlar lite på problem i samband med UpdatePanel.

Boven i dramat då? Jo, eftersom det handlar om ett webbprojekt som uppdaterats från äldre ASP.NET till 3.5 så har web.config fått en automatisk sättning av XHtml kompatibilitet som inte funkar bra ihop med ASP.NET Ajax.

Se till att du kontollerar att xhtmlConformance är satt till något annat än “Legacy”, använd tex “Transitional” eller “Strict”.

image

Wednesday, 29 April 2009 16:03:32 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | ASP.NET | Webb
# 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, 19 March 2009 15:22:06 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | Entity Framework | Linq | Visual Studio
# Tuesday den 17 March 2009

Varför är det så att en del problem dyker upp igen och igen när man sitter och utvecklar och varje gång man letar efter lösningen känner man igen sig väldigt väl… lite för väl? Till sist slutar det med att man kommer på vad det är och inser att detta har jag bråkat med förrut, fått frågor om och till och med hjälpt andra med flera gånger under de senaste åren. Ja, det är väl just detta kriterie som gör att en fråga hamnar på en FAQ lista och ställs gång efter gång.

Hur var det nu med COM Interop då? Jo, just detta teknikområde tycks rymma oändliga möjligheter att glömma nån liten detalj och sedan sitter man och felsöker och timmarna bara rusar iväg.

image Dagens scenario var en .NET assembly med några interface som skulle anropas från en native-klient på en testmaskin med en nära nog produktionsmässig installation av operativsystem och verktyg. Det är nästan lustigt hur felsökningen långsamt letar sig fram till en lösning. Först testas det på en utvecklarmaskin, där det förstås fungerar. Sedan börjar någon gå på spåret att det kan vara rättigheter som saknas, nähä, inte det heller. Är det verkligen rätt fil vi installerar, det är ju mer än en gång man trott det men haft fel… Man tänker så det knakar, pratar med fler kollegor, börjar gräva i registryt… Skumt, inget spår av den aktuella GUID som borde finnas där. Men vi har ju gjort registreringen av komponenten om och om igen, fram och tillbaks. Nåväl, efter lång felsökning och en god portion frustration, tankar kring att implementera en annan lösning utan COM och lite andra mindre framgångsrika försök hittades felet och avhjälptes under stort jubel. Projektkollegan som hade spenderat mest tid med felsökningen tyckte att lösningen borde vi nog skriva upp och rama in för framtiden. Vi får se om en bloggpost kan vara jämförbart med en inramning.

En .NET assembly som innehåller ett COM gränssnitt och ska bli åtkomlig från COM klienter ska genomgå följande steg för att man ska undvika frustration:

  • Registrera .NET assemblyn för att COM-runtime systemet ska kunna lokalisera den
  • Generera ett COM Type Library för att klienten ska kunna interagera med de publika typer som finns i assemblyn
  • Driftsätta assemblyn antingen i samma katalog som klienten eller i Global Assembly Cache 

Verktyget för att göra detta är RegAsm. Syntaxen är som följer:

Microsoft (R) .NET Framework Assembly Registration Utility 2.0.50727.3074
Copyright (C) Microsoft Corporation 1998-2004.  All rights reserved.

Syntax: RegAsm AssemblyName [Options]
Options:
    /unregister          Unregister types
   
/tlb[:FileName]      Export the assembly to the specified type library and register it
    /regfile[:FileName]  Generate a reg file with the specified name instead of registering the types. This option cannot be used with the /u or /tlb options
    /codebase            Set the code base in the registry
    /registered          Only refer to already registered type libraries
    /asmpath:Directory   Look for assembly references here
    /nologo              Prevents RegAsm from displaying logo
    /silent              Silent mode. Prevents displaying of success messages
    /verbose             Displays extra information
    /? or /help          Display this usage message

Hade vi inte använt RegAsm då? Jodå, men den lilla väsentliga parametern /tlb hade fallit bort.
Enklaste fallet att registrera och generera rätt Type Library blir så här:

C:\dotnet>RegAsm MyNETAssembly.dll /tlb

Observera att verktyget TlbExp också finns tillgängligt men det skapar enbart type library filen utan att göra korrekt registrering av den. Så RegAsm är trevligare.

Nu återstår att se hur länge det tar att felsöka nästa gång det händer… Men “lagen om att det inte får gå för lätt” kommer väl nu att slå in och se till att det blir ett annat problem vi får leta efter nästa gång.

Tuesday, 17 March 2009 21:23:32 (W. Europe Standard Time, UTC+01:00)  #    Comments [2]
.Net | COM
# 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, 14 March 2009 00:57:07 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | C# | C++ | VB | Visual Studio
# Monday den 3 November 2008

ef2I Entity Framework gruppen har man funderat kring användning av data access och att användare av data har olika profiler. Sedan har man kollat vad som kan göras för att underlätta livet tillsammans med EF för de olika användartyperna. Tidsramen för de här ändringarna är .NET Framework 4.0.

Agilekillen
Typisk i ALT.NET rörelsen, här är konkurrenten tekniskt sett NHibernate. Från den här gruppen har man tagit till sig massor av feedback. Det har ju kommit en hel del hårda omdömen om EF från ALT.NET-håll, kanske mest beroende på att många investerat tungt i kompetens på NHibernate och nu riskerar att förlora mark när det finns en liknande teknik från Microsoft, men det har även varit konstruktiv kritik. Resultatet är att man kommer att kunna använda en “enbart-kod-variant” och låta EF skapa lagringen.

Den modellbaserade utvecklaren
Här är modell-först en ny variant att använda för att utifrån en modell skapa databasstrukturen. Man har också ett round-trip-stöd för att uppdatera modellen baserat på databasändringar. Templatemotorn T4 används här tillsammans med workflow och ger en kodgenererande funktion som ska kunna återanvändas.

Ramverksutvecklaren
Här kom det krav på att lazy-loading skulle vara en valfri möjlighet, vilket det kommer att bli. Ytterligare ett tillägg är tabellvärda funktioner. Även funktioner som definieras i modellen finns att tillgå, sk EdmFunctions. Dessa definieras i EDM modellens XML beskrivning.

LINQ ses som ett sätt att hämta objekt från databasen. Men om vi man inte vill ha objekt? Med hjälp av ExecuteQuery på ett data context kan man få ut en DataReader för att direkt få “rader” när man inte bryr sig om objektstruktur!

Detta kommer nog att kräva lite med utforskande labbar för att sjunka in.

Dagens citat: “ADO.NET Data Services (Astoria) – the Red Bull of data access”  - den ger dig vingar…

Monday, 03 November 2008 19:25:23 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | PDC 2008
# 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, 28 October 2008 19:51:48 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | PDC 2008 | Silverlight | Windows 7 | Visual Studio | WPF
Hanselman1

Ok, applikationern för småbarn? Alla som velat lära sig nån ny kodteknik har slagits av att det är riktigt svårt att komma på bra exempelapplikationer att bygga för att få med alla olika teknikområden. Scott Hanselman har skapat Baby Smash som ett veritabelt nöjesfält med alla attraktioner på en gång… om man kallar MEF, WPF, SIlverlight 2, WCF, ASP.NET MVC, Dynamic Data, Entity Framework, REST web services med WCF och ADO.NET Data Services mm.

Ta ett dopp i .NET havet genom att kolla in Baby Smash på Baby Smash! by Scott Hanselman. Utvecklingscentret för Baby Smash finns på BabySmash - WindowsClient.net. Måste säga att Scott fortfarande är en av de mest underhållande talare jag sett.

Tuesday, 28 October 2008 01:55:18 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | PDC 2008 | WPF

Man ska ju gå ut hårt och öka mot slutet har jagbhört så idag direkt efter första keynoten så drog jag till med en stenhård tekniksession om utökningar av COM interop stödet i .NET 4.0.

Nyckeldelarna i dessa förbättringar är:

  • Type Embedding
  • Type Equivalence

image Lite snabbt förklarat går type embedding ut på att lösa problemet med att .NET applikationer som utnyttjar COM Interop belastas med stora automatgenererade interop-assemblies. Genom att de nya kompilatorerna kan strippa ner dessa interop-assemblies till att bara innehålla wrappers för metoder som används och baka in denna nya lättviktiga interop-del med projektens huvudsakliga output assembly så sparar man en hel del utrymme. Det hela förenklar installation och minskar minnesanvändningen hos interop beroende applikationer avsevärt. Funktionen kallas även “NoPIA”. VS 2010 har stöd för att aktivera type embedding på en refererad assembly genom en flagga i referensens propertyinställningar. För att utnyttja det krävs förstås en omkompilering av applikationen och att man faktiskt har den COM komponent som man ska använda installerad…

Type equivalence innebär att interface med samma guid behandlas som ekvivalenta typer av CLR. Det gör att man med .NET 4.0 tex kan utveckla på en PC med Office 2007 och bygga interop dela mot Office och kompilera sin applikation för att sedan installera och köra på klienter som har Office 2003 installerat. Vi får alltså mycket enklare utvecklingsscenarier och kan köra samma bygge på flera målplattformar. Givetvis är det inte begränsat till interop mot Office, det var bara ett exempel… :-)

Tuesday, 28 October 2008 01:54:01 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | PDC 2008
# Monday den 27 October 2008

Söndagen här i Los Angeles blev som väntat fullspäckad. Vi började med att ta oss till konferenscentret för registrering och fick ut våra PDC-kit med lite information och prylar. Tvärt mot alla förutspåelser var det i år inte någon riktig väska utan nåt slags enkel påse. Efter lite inledande orientering på området var det dags för min endags crash-course i WPF och XAML med Charles Petzold.

DSC00077

Petzold som är en legend inom utveckling på Windows levererade en ganska omfattande genomgång av WPF under dagen. Jag uppfattade det i alla fall så men det kan ju också bero på att jag inte jobbat så mycket med WPF och XAML innan. Fokus låg i alla fall på hur några grundläggande koncept i WPF fungerar. Ett stort antal kontroller gicks igenom tillsammans med koncept som koordinatsystem, databindning, animering och dependency properties. Charles kodar XAML direkt för hand och det blir väldigt bra koppling mellan orsak och verkan i hans XAML verktyg “XAML Cruncher”. Det var en kompakt genomgång över många XAML konstruktioner, dock inte med hjälp av designverktyg som Expression Blend vilket kanske hade varit intressant att se eftersom det är troligt att Blend kommer att användas när man väl kommer till ett kommersiellt WPF projekt.

Något av det mest intressanta var att få veta vilka frågor jag ska fundera över när man ska bygga en egen WPF kontroll. Kontentan av det var “Koda för XAML, inte istället för det” när du vill bygga eget.

Kvällen avslutade vi med ett kort besök på The Palm med den sk  svenskkvällen. Det blev lite plockmat och prat med folk man i vissa fall inte sett på massor med år. Imorgon börjar PDC på allvar och det ganska tidigt på morgonen…

Monday, 27 October 2008 09:00:40 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | PDC 2008 | 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, 14 October 2008 11:38:33 (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, 06 October 2008 13:16:20 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | ASP.NET | Visual Studio
# Tuesday den 12 August 2008

image

Eftersom vi inte är direkt översvämmade av .NET relaterade evenemang på vår egen hemmaplan här i Linköping så måste jag ge en liten knuff för Heroes {Dotway} Tour. Det ska vara en mikro-konferens i Open Spaces anda så innehållet är upp till deltagarna och deras intressen inom området kring Visual Studio 2008 och .NET Framework 3.5.

Datumet är i alla fall den 1 september:

Tuesday, 12 August 2008 20:21:35 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | Evenemang
# 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, 11 August 2008 18:47:09 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | Visual Studio
# Monday den 23 June 2008

Zeta Resource EditorEftersom .NET Framework innehåller bra stöd för att översätta applikationer till olika språk med hjälp av resursfiler i Xml-format och ResourceManager så kan det vara praktiskt med ett verktyg för att hålla reda på ändringar i översättningar. Ett problem är t ex att ett projekt utvecklas i en engelsk version och man skapar då .resx-filer för engelska textsträngar, kanske gör man då en översättning till svenska eller annat språk. Sedan uppdateras projektet och fler strängar läggs till eller tas bort, när man sedan ska uppdatera de olika översättningarna är det svårt att se vilka resurssträngar som tillkommit i den engelska versionen, så man kan inte vara säker på att alla strängar översatts korrekt.

När jag uppdaterar den svenska översättningen av DasBlog jobbar jag med verktyget Zeta Resource Editor hämtat från Code Project, detta verktyg underlättar översättningen genom att presentera de båda matchande versionerna av strängar i två .resx-filer sida vid sida och markerar saknade översättningar. Tittar man bara direkt på Xml-versionerna av resursfilerna så finns det inget som säger att strängarna måste ligga sorterade eller i samma ordning i olika språkversioner, det gör det väldigt jobbigt att hitta nya eller borttagna strängar direkt i Xml-filerna så verktyget gör det mycket enklare.

När man väl har ett bra verktyg att jobba med är det bara att försöka hitta rätt ord på svenska, vilket inte alltid känns helt enkelt… Jobbar man med andra språk än svenska och engelska så har man en del andra detaljer att se upp med, se Språk är svårt.

Monday, 23 June 2008 22:42:48 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | Utveckling | Verktyg
# Tuesday den 10 June 2008

sandTyvärr ser det illa ut för dokumentationsverktyget SandCastle, i alla fall tillfälligt, det har tagits bort från open source sajten CodePlex eftersom det inte var klassat som ett open source projekt med korrekt öppen licens. Läs mer om det på Sandcastle project removed from Codeplex. För er som använder SandCastle eller vill använda det så finns den senaste versionen på SandCastle May 2008 Binaries.

Läget verkar vara att man överväger vilken distributionsform det ska vara på SandCastle, antingen kan en come-back att ske på MSDN Code gallery eller på CodePlex men då med komplett licens och källkod. Vi får hoppas det inte tar evigheter att komma fram till ett beslut…

Tuesday, 10 June 2008 13:53:27 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net
# Monday den 2 June 2008

Letade efter lite information om trådhantering i .NET Framework nyss och snubblade över den alldeles färska Released! Parallel Extensions to the .NET Framework June 2008 CTP.

image

Det är ju ett av de riktigt svåra problemen att lösa, att göra det enklare för utvecklare att bygga programvara som kan parallelliseras i större utsträckning. Prestandajakten inom hårdvaran går mot allt fler kärnor som vi behöver sätta i arbete från mjukvarusidan...

Monday, 02 June 2008 14:47:59 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net
# Tuesday den 18 March 2008

Allänt bra artiklar om .NET utveckling och ett ganska coolt exempel på hur man kan presentera information finns på MSDN Reader.

För den som vill bli hardcore guru på hantering av utvecklingsmiljön Visual Studio (både 2005 och 2008) finns massor av tips att ta till sig på Sara Ford's WebLog där i stort sett dagliga tips publiceras.

Eftersom en hel del av deltagarna jobbar inom flygrelaterad utveckling så kan Tim Sneath  Great WPF Applications #14 Zurich Airport vara intressant, exemplet är inte helt nytt men det är helt klart flygrelaterat.

image

En bra artikel om arkitektur och beroenden mellan olika delar i lösningar, se James Kovacs artikel "Loosen Up Tame Your Software Dependencies for More Flexible Apps".

Expression Blend verktyget för design av användargränssnitt i WPF applikationer hittar man på "Microsoft Expression Blend 2.5 Preview".

Tuesday, 18 March 2008 16:00:51 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | WPF
# 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, 17 March 2008 23:01:02 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | Visual Studio
# Wednesday den 5 March 2008
image Ok, nyheterna fortsätter att ploppa ut... Nu finns Silverlight 2.0 Beta 1 tillgängligt! Det ser ut att vara versioner för Windows och Mac OS X som släppts idag tillsammans med verktygsstöd för utveckling i Visual Studio 2008.
Klientinstallationen är strax över 4 Mb stor och tog mindre är 10 sekunder att köra på min laptop med Vista x64. Inte illa, kan väl säga att installationen  av Flash inte var lika enkel...

För utveckling av applikationer kan det vara behändigt att jobba med Expression Blend 2.5 March 2008 Preview.
Wednesday, 05 March 2008 19:48:06 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | Internet Explorer | Silverlight

Dagens tips för att dryga ut arbetsdagen ett par timmar är att ni plockar fram all julbelysning och färgade lampor ni har. Häng upp det i hemmakontoret för att fixa Las Vegas känsla i rummet. Plocka fram nåt drickbart och lite tilltugg och styr över en väl vald favoritwebbläsare till MIX08 Keynote väljer passande stream- eller nerladdningslänk och spanar in lite snack och demos!

Wednesday, 05 March 2008 19:10:56 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | ASP.NET | Internet Explorer
# Monday den 25 February 2008

Det kanske räknas som en liten nisch inom .NET utveckling men XNA Framework är ändå en släkting till ramverket jag jobbar med mestadels.

Jag tänkte försöka ta en sväng förbi universitetet imorgon kväll för att kolla in UppLysnings föredrag med Johan L om spelutveckling för Windows och XBox 360 med XNA Framework.

Tid och plats är tisdag 26/2 klockan 18:15 - 20:00 i Visionen, B-huset, Linköpings Universitet Campus Valla. Det ska inte behövas någon föranmälan och det är heller inte krav på att vara student.

Uppdaterat: Tyvärr hinner jag inte gå själv, men hoppas ni som går får se en bra presentation! XNA är rätt kul, jag får leva på minnet av de demos jag sett av det förrut.

Monday, 25 February 2008 23:32:19 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net

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, 25 February 2008 23:02:33 (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, 19 February 2008 12:55:35 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | C# | Visual Studio
# Saturday den 9 February 2008
Pro C# 2008 and the .NET 3.5 Framework
ProCSharp2008

Andrew Troelsens nya tegelsten landade på skrivbordet häromdagen. Den nya fjärde utgåvan är en rejäl omarbetning av boken. Nu är innehållet i fas med Visual Studio 2008 och .NET Framework 3.5 i sina färdiga versioner. Den förra utgåvan hade en litet udda blandning av .NET 3.0 och .NET 3.5 och baserades på information som inte var helt komplett. Men den nya boken känns betydligt mer enhetlig och dessa versionsförvirringar är bortblåsta. Boken har  dessutom växt med ca 200 sidor genom nytt utökat innehåll om C# 3.0, nyheter i VS2008, LINQ, Windows Presentation Foundation och ASP.NET. Därmed närmar den sig 1400 sidor.

Eftersom boken är ganska heltäckande när det gäller .NET Framework blir det inte så djuplodande inom alla teknikdelarna, Windows Workflow och Windows Communication Foundation är ganska kortfattat beskrivna medan grafiska gränssnitt med WPF får en djupare genomgång. Som helhet känns det som en bra uppdatering av boken och jag tror den får fortsatt förtroende att vara underlag för våra .NET kurser på jobbet. Ett pågående projekt just nu är att uppdatera vår .NET grundkurs och förbättra kursmaterialet rejält, det blir enklare nu med den nya boken. 

Så över till en lite mer lättviktig bok...

 

jPod av Douglas Coupland
jPod

Det är nog 10 år sedan jag läste Couplands bok Microslavar (Microserfs), den kom 1996 och det känns som den inledde accelerationen där vi inte släppte gaspedalen förrän dotcom-bubblan sprack strax efter millennieskiftet. När man jobbar i branschen kändes den Microslavar som en väldigt träffsäker och lite skruvad observation av vår verklighet. Jag hoppas Douglas har samma skärpa i nya JPod, den börjar i alla fall lovande. Den beskrivs som Google-generationens motsvarighet till Microslavar. I JPod följer man vardagen för ett gäng utvecklare som alla har namn som börjar med "J" och som på grund av ett datafel hos personalavdelningen hamnat på samma avdelning inom det stora spelutvecklingsföretaget. De sysselsätter sig med diverse aktiviteter för att fördriva tiden mellan vansinniga möten med marknadsföringsavdelningen... Vi får se hur det slutar. :-)

Saturday, 09 February 2008 17:30:22 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net
# 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, 20 November 2007 10:01:05 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | Visual Studio
# Thursday den 4 October 2007

Härligt, härligt men farligt, farligt...

MS Shared Source Inte mindre än 17 av de bloggar som ligger på min lista med feeds skriver idag om Microsofts beslut att släppa källkoden till .NET Framework till allmän beskådan. Redan detta faktum att så många skriver om det borde ju ha stoppat mig från att också ta upp ärendet... Men jag kan inte låta bli för jag ser en ganska tydlig trend och det är många som är väldigt positiva till att vi nu får se koden utan att behöva gå omvägar via Reflector, endast två av de 17 bloggarna utrycker sig tvekande eller direkt negativt om beslutet. Nu kanske det delvis beror på att flera av dessa bloggare dels är anställda på Microsoft eller att de bara i mycket kortfattat vidarebefordrar nyheten.

Vi har i alla fall källorna som jag betraktar vara Scott Guthrie med sin artikel Releasing the Source Code for the .NET Framework Libraries och Shawn Burke som skriver Making .NET Framework Source Available to Developers. De två kan ju knappast lastas för att de tillhör den positiva skaran.

Sedan har vi ett helt gäng artiklar: Källkoden till .Net släpps, Arrived in Redmond + some hot .NET news - B# .NET Blog, .NET Framework Source Code Release, .NET Framework Code To Be Released, Hanselminutes Podcast 83 - Microsoft to release .NET Framework Libraries Source, links for 2007-10-04, MS is releasing the .Net Source with VS 2008, Hämta hem källkoden till .NET Framework, Microsoft is releasing .NET Source code (and for Debugging too!), .net framework source code released, Källkoden för .NET görs tillgänglig!, Releasing Source Code for the .NET Framework och till sist Källkoden till workflow foundation.

Till de mer kritiskt granskande kan jag räkna Lars Olofsson, Snart kan du studera källkoden till .NET Framework. Han noterar mot slutet att det finns risker med att koden finns tillgänglig.

Som avslutning tar vi killen som verkligen sticker ut och är mycket kritisk. Frans Bouma varnar oss aktiva utvecklare för att överhuvudtaget titta på koden när den blir tillgänglig med hänvisning till att det är rätt svårt att glömma vad man sett och inte låta sig inspireras av det. Läs hans artikel på: Don't look at the sourcecode of .NET licensed under the 'Reference license' - Frans Bouma's blog

Thursday, 04 October 2007 13:44:48 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net
# 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, 27 July 2007 17:32:48 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | ASP.NET | Visual Studio
# Tuesday den 17 July 2007

Jag hittade just en specialiserad sökmotor för .NET relaterat material. Det påstås tex från .NET Rocks podcast att den ofta ger bättre träffar än direkta Google-sökningar, det kan jag väl inte direkt bekräfta men det är ju inte helt omöjligt med tanke på fokuseringen.

image

DotNet Developers Search

Tuesday, 17 July 2007 23:44:42 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net
# Wednesday den 16 May 2007

Avdelningen mystiska fel som uppträder i driftmiljö har fått ett nytt tillskott. Vid driftsättning av en kundapplikation upptäcktes det att användarna aldrig fick sina lösenord om de använde funktionen för att skicka ut nytt lösenord via e-post. Det visade sig att System.Net.Mail i ASP.NET 2.0 använder den lokala SMTP tjänsten på ett sådant sätt att SMTP servern tycker att det är frågan om försök att reläa post med falsk avsändare.

Felmeddelandet är "SmtpFailedRecipientException: Postlådan är inte tillgänglig. Serverns svar var: 5.7.1 Unable to relay for xxx@yyy.zz" detta på en maskin med svenskt språkpaket för ASP.NET.

Slår man om så att fullständiga felmeddelanden är synliga ser det ut ungefär så här:

IIS SMTP error screenshot

Problemet är relativt enkelt att avhjälpa, det handlar om att konfigurera SMTP tjänsten så att den tillåter relä-funktion för lokala maskinen, dvs IP-nummer 127.0.0.1. Enklaste sättet att fixa det i IIS-hanteraren är att:

  1. Öppna Internet Information Services Manager
  2. Gå ner i trädet för lokala datorn -> Default SMTP Virtual Server och höger-klicka på den noden, välj Properties
  3. Gå till fliken Access och klicka på knappen Relay...
  4. Klicka på Add... och lägg in 127.0.0.1 som IP-nummer
  5. Klicka Ok på de öppnade dialogerna

Nu ska utgående mail från ASP.NET applikationer fungera korrekt.

IIS security settings screenshot

Wednesday, 16 May 2007 14:13:08 (W. Europe Daylight Time, UTC+02:00)  #    Comments [1]
.Net | ASP.NET
# Thursday den 27 October 2005

Idag kl 20.00 släpptes Visual Studio 2005 och SQL Server 2005 i full RTM version för nerladdning på MSDN Subscriber Downloads! Nu är det ca 3 timmar kvar tills nerladdningen av VS 2005 är klar, förhoppningsvis är hela sviten inklusive SQL Server 2005 Developer Edition nerladdat och klart för att bränna på DVD lagom tills imorgon när det är dags att börja jobba!

VS 2005 nerladdning
Thursday, 27 October 2005 22:17:51 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net
# Thursday den 7 July 2005

Jeff Prosise (Wintellect)gav en underhållande genomgång av de flesta nyheter i ASP.NET. Det mest intressanta inom ASP.NET området för min del kommer att bli att bygga en del olika providers för Membership, SiteMap mfl. som utnyttjar provider modellen och de nya sätten  att hantera asynkrona sidor. Jag anar också en nyrenässans för JavaScript-kunskaper i och med att Client-Callbacks kommer att finnas tillgängligt.

Fredrik Normén har en del mycket intressanta postningar om providers på sin blog

Märkligt vad man får mycket nya bra idéer när man sitter på ett sånt här ställe och ser demos av nya grejer... Det är väl helt enkelt så att när jag sitter på min vanliga arbetsplats så är dagen alltid fylld med måste-vara-klart-igår-eller-helst-förra-månaden-saker så man hinner inte läsa in sig och testa nyheter i den takt man borde.

Thursday, 07 July 2005 09:33:25 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | ASP.NET | TechEd
# Monday den 14 March 2005

Veckans anledning till att man helt i onödan har stångat pannan blodig är "PRB: Some Functionalities of a COM+ Application Do Not Change If You Change the Corresponding Settings in the COM+ Catalog". Råkat ut för "COM+ activation not completed within the time..." och trott att det räcker med att peta upp CreationTimeout i administrationsverktyget för komponenttjänster?

Slutsatsen är att det inte räcker med det, momenten som behövs är:

  • Kompilera om den aktuella assembly filen
  • Registrera den med gacutil /i
  • Registrera COM+ applikationen med regsvcs

CreationTimeout i COM+ katalogens egenskaper för komponenten är alltså en återvändsgränd.

Monday, 14 March 2005 15:31:55 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net
# Wednesday den 21 July 2004

Jag upptäckte just att det finns en ny version av DAAB att använda. Kolla på DAAB GotDotNet Workspace.

Wednesday, 21 July 2004 14:31:15 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net
Blog & Contact
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.

Copyright © 2017 Per Salmi

Bloggmotor: newtelligence dasBlog 2.3.12105.0

Sign In
Statistics
Total Posts: 220
This Year: 1
This Month: 0
This Week: 0
Comments: 40

Datorer
All Content Copyright © 2017, Per Salmi