Welcome to MSDN Blogs Sign in | Join | Help

Idag drog uppvärmingstävlingen i Swedish Game Awards igång på allvar med en en vecka lång tävling med syfte att skapa ett 80-tals inspirerat spel. Kul koncept och något som jag med allt för stor erfarenhet (i och med att jag är född redan på 70-talet) kommer att sätta mig in i under nästa vecka i min roll som enmanna-jury för tävlingen.

Tävla här!

Jag får ibland frågan vilken version av Visual Studio som en utvecklare ska välja och jag har ett enkelt svar:

VISUAL STUDIO 2008 TEAM SUITE+MSDN PREM DVDVisual Studio 2008 Team Suite.

Då får du alla de roller inom mjukvarututveckling (arkitekt, utvecklare, testare, projektledare) som du potentiellt kommer att behöva ha inom de kommande projekten.

Men då kanske du tänker, är det inte bara för att sälja in den dyrare sviten än de specifika versionerna och jag vill å det starkaste påstå; NEJ, det är för att du själv ska kunna använda det som du behöver i dina olika roller.

I vissa länder så är en utvecklare absolut inget annat än en utvecklare, jobbar ingenting med arkitektur eller integrationstester, men vi är inte så specifika i Sverige vill jag påstå. Majoriteten av de utvecklare som jag träffar påstår sig ha åtminstone en ytterligare roll och så som Team Suite är prissatt så är den i samma prisklass som om du istället skulle välja att köpa två speficika roller. Och då uppstår frågan, kommer du aldrig att behöva den tredje rollen? Är du verkligen säker?

Det är lite som med Office vågar jag nog också påstå, där det tidigare gick att bara införskaffa Word eller kanske bara Excel, men eftersom allt fler kunder valde att köpa flera produkter så paketerades produkterna ihop till en svit.

Nu menar jag absolut inte att alla olika roller kommer att slås ihop till en enda version, några sådana indikationer har inte sett röken av, men trenden i branschen är fortfarande att fler utvecklare breddar sin kompetens och då är du redan förberedd med hjälp av Team Suite.

Så det så!

Jag har blivit intervjuad av “The Code Junkie” om min syn på bloggning och varför jag överhuvudtaget gör det. Jag har bloggat i över fem år så det var kul att få ta mig tid och reflektera över vad jag gör annorlunda idag från tidigare samt om det överhuvudtaget har givit någonting.

En fråga som inte ställs är “Varför bloggar jag på svenska?”, och det frågar jag mig ibland också, jag är på väg att börja göra vissa inlägg på engelska för att få ytterligare perspektiv och kommentarer när det gäller tekniska inlägg.

Läs gärna intervjun och kommentera!

Låt mig inleda det här inlägget med att säga att rubriken på det här inlägget är vald för att få delta i debatten, men det finns en potentiell poäng vill jag påstå. I repliken på IDG som publicerades nyligen så fick jag tyvärr inte riktigt plats med mer utförliga svar så jag passar på i bloggen istället.

Jag anser att det är lysande att vi får en nyanserad och konstruktiv dialog med communityn gällande hur vi redan utvecklar eller bör utveckla våra produkter och tjänster, men debatten måste vara konstruktiv. ALT.NET är ett mycket bra initiativ för att samla intrycken och även förespråka både alternativ, dialog och konkurrens.

Men vad har det här med tonåringar att göra?

Jo, jag kan minnas allt för väl hur jag själv agerade i tonåren, ville ha det ena och det andra och var allmänt säker på att alla de val som jag och mina kamrater med mig gjorde var absolut rätt och det enda vettiga alternativet att välja. Tack och lov kan jag känna så här i efterhand så tilläts jag ändå inte göra precis på det sätt som jag själv alltid ville, jag hade inte helheten och erfarenheten att göra alla dessa val vid just den tidpunkten.

När jag sedan också reflekterar på hur jag själv agerar när mina egna barn kontinuerligt gör mig uppmärksam på att saker och ting bör förändras så inser jag att när det skriks och tjafsas om detaljer, separerade från helheten och helt ifrånkopplade från varandra så brister inte bara min koncentration utan till slut och mitt intresse för att lyssna, även fast de ibland har helt rätt i sina synpunkter.

För närvarande får vi kritik för hur vi har implementerat stöd för TDD i våra produkter, hur vår ansats på en Dependency Injection teknik ser ut, hur vår ORM-teknik (Entity Framework) fungerar och även hur vårt väldigt öppna ramverk för ASP.NET MVC börjar ta form. Dessa är bara några av de saker som kritiseras, i vissa fall helt motiverat, både kritik och konkurrens främjar för vidareutveckling och dialog, men vi måste vara konstruktiva och inte bara falla tillbaka på; använd något annat...

Jag noterar också att kommentarerna på min replik också berör att Microsoft inte är tillräckligt öppna utan måste öppna mer och mer, villket jag igen anser att det är precis det vi gör, varje dag. Men vi kommer antagligen aldrig vara tillräckligt öppna för alla.

Vår öppenhet sträcker sig dock inte bara till källkod utan också till insyn i “stängda projekt” där vi samtidigt får en hel del kritik från kunder som anser att vi är för öppna, det släpps för många CTP’er och versioner av beta-tekniker för att kunden i sin tur ska hinna ta del av alla nyheter. Om någon kan skapa formeln för rätt nivå på öppenhet för alla våra kunder så är jag mycket intresserad, den är inte helt trivial.

Jag skulle också vilja att communityn ibland höjer perspektivet och istället för att stirra sig blind på detaljer som om en produkt eller teknik heter A eller B och gör på det ena eller andra sättet, försöka skapa sig en helhetsbild. Är det verkligen relevant för en stor lösning om vi använder Spring, Windsor eller Unity för att skapa en IoC eller DI-funktionalitet? Det är lite som att jag faktiskt struntar fullständigt i om när du träffar mig under en presentation, har på dig en tröja från HM, Dressman eller Ralph Laurent, bara du har på dig en tröja och inte går naken på överkroppen.

Är det inte bättre att både vi (Microsoft) och communityn förespråkar mönster och rekommendationer och att vi tillsammans försöker främja kompetensutvecklingen hos den generella utvecklaren och bidrar till bättre lösningar och nytta för kunden i slutändan. Vi försöker själva göra det via rekommendationer och riktlinjer på codeplex. Och tillsammans med ALT.NET så tror jag vi kommer nå ytterligare gemensamma framgångar.

När kritiken dock tar upp att våra produkter och då speciellt utvecklingsverktygen bara är gjorda för att passa i vår egen utvecklingsprocess så blir jag lite förvånad. Jag vågar absolut påstå att Microsoft har en stor framgång i mjukvaru-utveckling och vi har massvis med kunder och partners som vänder sig till oss för att lära sig precis hur vi själva använder våra verktyg för att de själva ska kunna dra nytta av våra lärdomar och också bli framgångsrika själva.

Ett praktexempel på det anser jag också vara hur vår SDL-process har paketerats, dokumenterats och exporterats för att säkerställa att alla utvecklare ska kunna bli bättre på att skriva säkrare lösningar med hög kvalitet med en strukturad process.

Jag hade själv en mycket intressant dialog med Scott Bellware under en av dagarna på ÖreDev konferensen och blev naturligtvis både inspirerad och förvånad på samma gång över hans enorma passion för Microsofts plattform och teknik, trots att han som han själv poängterade driver ett företag som helt fokuserar på Java.

Jag tror att Microsoft tillsammans med ALT.NET kommer att dra flertalet gemensamma strån till stacken i framtiden och ser oerhört positivt på både samarbetet och konkurrensen. Vad ALT.NET lyckas åstadkomma som jag avslutningsvis vill påstå är den absoluta styrkan är en gemensam erfarenhet som gör ALT.NET till en mycket värdefull och inflytelserik partner till Microsoft i allmänhet och mig själv i synnerhet.

Full fart framåt!

Tänkte prova ett annorlunda koncept i bloggen och utlysa en julklapssrim-tävling där det gäller att antingen rimma för Visual Studio alternativt Expression. Jag och några av mina kollegor kommer sedan att välja ut ett bidrag för respektive produkt som naturligtvis vinner en Visual Studio 2008 Professional respektive en Expression Studio 2. Vi kommer att värdera saker som käckhet, humor, klurighet och så klart nördighet. Längd på rimmen är valfritt, och här är några korta exemp för att få igång tankeverksamheten:

“Nu när det mot julen lacka, VISUAL STUDIO 2008 PRO ENG DVD UPGMICROSOFT EXPRESSION STUDIO 2 WIN/MAC ENG DVD
är det dags att börja hacka.”

“Grattis, älskling, vi kommer bli flera,
därför måste vi koden bättre hantera“

“För att på sajten öka vår trafik,
kan du med denna skapa bättre grafik“

“Nu du din HTML-kod kan rensa,
och på webben med detta glänsa”

Bidragen lämnas in genom att kommentera det här inlägget, se till att använda en identitet som vi kan återkoppla till för att kunna skicka ut vinsten, du kan också kontakta mig via epost, exempelvis via kontakt-formuläret på bloggen, men rimmet måste ändå postas som en kommentar till det här inlägget.

Vinnarna kommer att annonseras i bloggen efter Lucia.

Lycka till!

Managed Extensibility Framework (MEF) finns nu i en ny förhandsversion att ladda hem och prova på. MEF är vår strategi och väg framåt för att bygga flexibla lösningar utan “hårda kopplingar” och kommer att ligga till grund för flera av våra produkter framöver. Jag intervjuade och pratade med Glenn Block under ÖreDev och den intervjun kommer att publiceras på svenska MSDN TV kanalen på Channel9 senare i veckan. Glenn driver teamet bakom utvecklingen av MEF och ligger också bakom delar av Prism (Composite Application Guidance). Glenn nämnde BizTalk, SharePoint och naturligtvis Visual Studio som starka kandidater att få ta del av MEF inom en nära framtid och jag ser positivt på ett gemensamt sätt att göra den typen av utveckling oavsett produkt som nyttjas.

Läs gärna lite mer om vad som är nytt i den här uppdateringen av MEF på Glenn’s blogg, eller ladda hem koden direkt från CodePlex och prova själv!

Alldeles nyligen släpptes beta 2 av Application Architecture Guide 2.0ApplicationArchitectureGuideV3.PNG. Några av nyheterna i den senaste versionen innebär beslutsmatriser för dig som står i valet av tekniker för Presentation, Dataåtkomst, Workflow och integrationslösningar. Det här är en “måste läsa” för alla lösningsarkitekter och avancerade utvecklare på .NET plattformen med massvis av tips och rekommendationer, baserade på egna erfarenheter och naturligtvis återkoppling från “communityn”.

Alan Smith är en av Sveriges primära tekniker på BizTalk och det som kallas Connected Systems. Han driver bland annat en webbsida som går under namnet BloggersGuides.net som innehåller en del intressanta artiklar och webcasts. En av de senare artiklarna handlar om nyheterna i .NET Framework 4.0, och då speciellt WCF och WF, men också en del om “Oslo” och “Dublin”. Alan länkar också till en VPC som du själv kan ladda hem för att prova teknikerna i en skyddad miljö.

Läs artikeln och ladda hem materialet!

I nästa version av Entity Framework har mycket intryck och åsikter från Community och speciellt ett externt “design-team” fått vara ledande för hur ramverket ska se ut och hanteras. Kritiken som har låtit sig höras om version 1.0 har handlat om objektmodellens olika brister på grund av att entitets klasser antingen behövt ärva från basklasser eller implementerat en del interface. Kritik på verktygen och avsaknanden av möjligheten att generera databasen baserat på den konceptuella objektmodellen har också kommit till vår kännedom.

Därför är det extra kul att få se de tidiga “bitarna” på PDC’n på hur vi har förändrat oss och verkligen tagit till oss av kritiken. Ett exempel på en renare objektmodell är följande exempelkod som helt enkelt beskriver en delmängd av en produkt i Northwind-databasen:

public class Product

{

    public int ProductID { get; set; }

    public string Name { get; set; }

}

Observera den totala avsaknaden av basklasser, implementationer av gränssnitt osv…

Men då kanske du tänker, hur vet Entity Framework vilken tabell som representerar modellens entititer, vilka kolumner som innehåller respektive egenskaps värde osv. Här har också utvecklarna lyssnat på förslagen och rekommendationerna från communityn som sa följande:

Primärt så vill vi att Entity Framework själv ska försöka lista ut “mappningen” eller kopplingen, sekundärt så kan attribut användas för att explicit styra kopplingarna. Sista alternativet är XML-mappningsfiler som hanterar kopplingen.

Därför har EntityFramework fått lite ny funktionalitet som enklast kan beskrivas som att använda en generisk Factory som hanterar mappningen baserat på ett specifikt ObjectContext objekt. Så här kan ett enkelt ObjectContext se ut.

public class DemoContext : ObjectContext

{

    public DemoContext(EntityConnection connection) : base(connection) { }

 

    private ObjectSet<Product> _products;

 

    public ObjectSet<Product> Products

    {

        get

        {

            if (_products == null)

                _products = CreateObjectSet<Product>("DemoContext.Products");

            return _products;

        }

    }

}

Vad jag gör i exemplet ovan är att ärva från basklassen ObjectContext och sedan skapa en publik egenskap av den generiska typen ObjectSet med min Product klass som typ-parameter. I “gettern” skapar jag (i det fall det inte redan existerar) ett ObjectSet med hjälp av en generisk metod som finns i ObjectContext-basklassen. Sträng-parametern kan jag idag inte riktigt förklara men det kommer nog att klarna framöver, det är i alla fall <Klass>.<Egenskap>.

För att sedan kunna använda context-klassen i min applikation så använder jag den tidigare nämnda Factory-klassen på följande sätt:

using (DemoContext context =

       ContextFactory.CreateContext<DemoContext>(CONNECTION_STRING))

{

    var query = from p in context.Products

                select p;

 

    foreach (Product p in query)

    {

        Console.WriteLine(p.Name);

    }

}

Visst ser det ganska enkelt ut? Vill du se det verkligen fungera så har jag publicerat en film på MSDN TV via Channel9.

Har du någon person som du litar blint på, som du skulle följa vad han eller hon än sa?

Eller följer du en massa av människor som verkar veta hur en slipsten ska dras eller vart skåpet ska stå?

Eller är du en sådan person som alltid vill skapa dig en egen uppfattning för att verkligen kunna väga för- mot nackdelar innan beslut tas vilken väg du ska välja?

Jag tror att det säkert finns tillfällen där den ena “ståndpunkten“ är enklare att gå efter än det andra. Har du till exempel tillräckligt med tid för att sätta dig in i den allra senaste tekniken, hela tiden, för att själv kunna bestämma om det är teknik X eller teknik Y som är rätt för dig att använda. Eller har du så oerhört mycket redan nu att lägga din tid på, att rekommendationer uppskattas och kanske till och med förväntas att levereras från marknaden.

Själv har jag några personer i mitt liv som jag lyssnar betydligt mer på än andra, kanske till och med mer än på mig själv i vissa avseenden, helt enkelt baserat på att jag känner att dessa personer har betydligt mer erfarenhet och kompetens att göra kvalitativa val än vad jag har, och jag är helt bekväm med det.

Men oftast vill jag själv testa mig fram för att verkligen kunna övertyga mig om att det ena är bättre än det andra, det gör också att jag spenderar en hel del tid på att testa ny teknik, labba, koda, läsa och helt enkelt fundera över hur det aktuella ämnet kan användas och nyttjas i förhållande till andra alternativ.

Det som jag som evangelist sedan kan anse vara mitt uppdrag är att berätta “VAD”, “VARFÖR” och “NÄR” en viss teknik kan och bör användas, men vad jag däremot dessvärre inte riktigt har tid med är att förklara alla detaljer i “HUR” det verkligen ska gå till. Det lämnar jag också gärna över till de som är experter i områdena, till exempel bland våra svenska kursföretag eller partners finns massvis med spetskompetens som både arbetar praktiskt med teknikerna och har betydligt längre erfarenhet.

Men om du ändå lyssnar på vad jag har att tycka och tänka så är det här några av mina absoluta rekommendationer på områden som jag anser att alla utvecklare på Microsofts plattform ska snegla på och omedelbart (“NU”) ska anamma:

Windows Communication Foundation (“VAD”) eftersom det är den gemensamma programmeringsmodellen för all distribuerad kommunikation på Microsofts plattform och integreras i varenda produkt som jag känner till framöver, fortsätt alltså inte med ASMX, utan ta steget nu!

Deklarativ programmering, med exempelvis XAML (“VAD”) för WPF och/eller Silverlight, eller Workflow Foundation för affärsprocesser. Med hjälp av den tekniken kan du höja abstraktionsnivån och låta ramverket och plattformen göra det mest banala åt dig (“VARFÖR”).

Om du ända skriver kod: Parallellism (“VAD”). Det går så oerhört fort med hårdvara idag och allt fler kärnor och processorer finns på datorerna som säljs och installeras, så om din applikation är enkeltrådad så kommer du att ha utmaningar med att förklara varför datorn inte används fullt ut (“VARFÖR”). Det gäller inte bara multitrådat utan precis lika viktigt är asynkron programmering och meddelandebaserad arkitektur.

Är det här ett bra inlägg, håller du med eller vill du skapa dig din egen uppfattning?

Satt imorse och tog en fika med mina kollegor André och Anders som primärt jobbar mot Sveriges ISV’er och då myntades ett uttryck som jag gillade skarpt:

.NET 3.51

Får DU några associationer kanske?

Jag vill varmt rekommendera ett whitepaper som publicerats av SAFECode.org och som jag nyligen läst igenom. Det är korta och formella rekommendationer för hur vi alla kan bli bättre på att skriva säkrare kod, och innehåller en massvis bra referenser till mer information, böcker, länkar och andra publikationer.

Det tar ungefär 15-30 minuter att läsa igenom vilket är väl investerad tid om du vill få en förståelse för några av de saker som du bör tänka på i ditt nuvarande eller kommande projekt. Reflektera också på om du har gjort dig skyldig till något av detta i dina tidigare projekt.

Ladda hem whitepaper här!

Den 25-27 november är det dags för nästa omgång av MSDN Live. Den här gången kommer vi fokusera på helt på webbteknik i form av nyheter i ASP.NET och Internet Explorer 8. MSDN Live gästas den här gången av en riktig expert inom området: Pelle Johansson, MVP inom ASP.NET och grundare av Pellesoft, följer med Robert Folkesson för att berätta om alla spännande nyheter.

Agendan ser ut så här:

Nyheterna i ASP.NET 3.5 och ASP.NET MVC
I den här presentationen går vi igenom nyheterna i ASP.NET 3.5 samt Visual Studio 2008. Vi tittar på den nya designytan i Visual Studio och hanteringen av CSS-stilar samt Javascript. Vi visar de nya ASP.NET-kontrollerna och stödet för LINQ . Vi undersöker ASP.NET Dynamic Data, tittar på funktionalitet som tillkommit i ASP.NET 3.5 i och med ServicePack 1. Vi avslutar med en genomgång av det nya ASP.NET MVC (Model, View, Controller) ramverket som snabbt blivit mycket populärt bland utvecklare, mycket tackvare det förbättrade stödet för testning av olika slag.

Internet Explorer 8 för webbutvecklare
Internet Explorer 8 innehåller fler nyheter som du som webbutvecklare kan dra nytta av till exempel Web Slices gör det möjligt att hålla användaren uppdaterad via RSS för en viss del av en webbsida. Accelerators är en annan spännande möjlighet där leverantörer av webbtjänster kan integrera sina tjänster direkt i Internet Explorers gränssnitt och göra dem enkelt åtkomliga för användaren. I den här delen visas även de nya Developer Tools verktygen samt hur du hanterar den nya ”Standards mode” som finns i Internet Explorer 8 och hur du anpassar dina befintliga webbplatser för besökare som kör Internet Explorer 8.

Här anmäler du dig till respektive ort:

Stockholm
Tisdag 25 november
Park Inn Solna
Hotellgatan 11, Solna
Anmäl dig

Malmö
Onsdag 26 november
Elite Hotel Savoy
N. Vallgatan 62, Malmö
Anmäl dig

Göteborg
Torsdag 27 november
Radisson SAS Scandinavia Hotel
Södra Hamngatan 59-65, Göteborg
Anmäl dig

Tid: 13.00 - 16.00
Registrering från 12.30
Kostnad:
Seminariet är kostnadsfritt. Vi bjuder på kaffe/te och smörgås.

Glöm inte att du även har möjlighet att gå på ALM Live på förmiddagen, där Mathias Olausson kommer att tala om kvalitetssäkring och kontinerligt integration med Visual Studio Team System. Här kan du läsa mer om ALM Live.

Om du är som jag och tycker det är oerhört roligt att utmana dig själv under pressade situationer så kan jag tänka mig att tävlingar är precis rätt sätt att få adrenalinet att strömma till även för dig. Om du sedan också tycker att mobila enheter är roliga att jobba mot och antingen är C++-utvecklare alternativt HTML-designer så kan följande tävlingskategori i Sony Ericsson Content Awards 2008 vara något för dig.

“Creating XPERIA panels”
I den här kategorin utmanas du att skapa XPERIA paneler för Sony Ericssons senaste telefon X1, förslagsvis genom att använda Visual Studio 2008 och Sony Ericssons SDK med medföljande dokumentation. Paneler visas direkt på första sidan i Windows Mobile på XPERIA och kan utvecklas antingen som C++ eller HTML-lösning. Fantasin sätter gränserna och priset går verkligen inte av för hackor. Istället för pengar eller materiella ting så är första priset i respektive kategori i Sony Ericsson Content Awards 2008 ett deltagande i en workshop där partnerskap och gemensamma affärer skapas för framtiden.

Glöm dock inte att sista anmälningsdag är redan den 30:e november, men SDK’t är bara några få megabyte och innehåller alltså både exempel och tutorials i PDF format, så det finns inga ursäkter att inte prova din kreativitet, ja det skulle väl vara brist av tid kanske :)

Ladda hem SDK härifrån!

Läs mer och anmäl dig här!

Det borde inte komma som någon överraskning att de senaste årens attacker på internet har flyttats uppåt i applikationslagren, allt eftersom operativsystemen har blivit säkrare. Som ett resultat av det skiftet så märks också tydligare önskemål och krav från kunder att lösningar som utvecklas eller införskaffas har byggt och programmerats med högre krav på säkerhet än tidigare, och att utvecklare generellt bör skaffa sig en större förståelse för säkerhetstekniker och säker utveckling.

Kände du till att under sitt första år på marknaden så har Windows Vista innehållit (identifierade) 66 sårbarheter i förhållande till 119 som hittades i Windows XP under dess första år. Det är en minskning med 45 procent. När det gäller Internet Explorer så har minskningen där varit 35 procent i totala sårbarheter och en minskning med hela 63 procent om vi bara räknar sårbarheter med hög risk. Det kanske mest intressanta är att Microsofts andel av marknadens totala antal sårbarheter har minskat från 4,2 procent under första halvan av 2007 till 2,7 procent under första halvan av 2008, vilket placerar Microsoft på tredje plats från att ha varit på första plats tidigare (det är inte bättre att vara högt på prispallen direkt i det här fallet), och vi har inte direkt släppt mindre mjukvara den senaste tiden vågar jag nog påstå.

Det finns ett direkt skäl till den här förbättringen och det är vår egen implementation av SDL.

Microsofts Security Development Lifecycle (SDL) process har märkbart förbättrat våra egna lösningar under åren som har gått och till och med lett till att Microsoft ses av många på marknaden som ledande inom området. Detta har i sin tur också lett till att vi har dokumenterat och delat med oss av våra erfarenheter under en längre period och nu kommer några relevanta och intressanta uppdateringar:

1) SDL Optimization Model
En modell för att ge utvecklare en möjlighet att inventera sin process och sina interna resurser för att lättare och tydligare kunna ge rekommendationer för hur organisationen ska kunna införa SDL, kostnadseffektivt och konsekvent.

2) SDL Pro Network
Ett nätverk av organisationer som guidar och stöttar utvecklare vid implementationen av SDL i sin egen miljö och process. För närvarande är nio organisationer delaktiga under inledningsfasen av nätverket.

3) En beta av Microsoft SDL Threat Modeling Tool
Ett verktyg som för närvarande är under utveckling och som har som mål att erbjuda en tidig och strukturerad analys och proaktivt skydd mot potentiella säkerhetsutmaningar i nya och befintliga applikationer. Med hjälp av verktyget kan organisationen skapa diagram över hotbilder samt integrera processen med buggrapportering och tydlig rapportering. Ambitionen är att få aktiviteten av hotbildsmodellering att kunna genomföras effektivt av vilken mjukvaruarkitekt som helst utan expertkompetens i området.

SDL är ett av de initiativ som jag själv anser vara mest till gagn för communityn av utvecklare på marknaden från Microsoft och som samtidigt är enklast att vara stolt över internt, baserat på Microsofts historia runt säkerhet och i synnerhet på hur oerhört mycket bättre det har blivit på senare år.

Vill du lära dig mer om SDL och hur din egen organisation kan ta del av resurserna, besök www.microsoft.com/sdl

More Posts Next page »
 
Page view tracker