Monday, December 21, 2009

Skapa egna element i web.config

Har idag suttit och gjort så att vi kan läsa in en konfiguration för vilka lager som ska ligga som grund till en overlay. Eftersom vi skulle beskriva flera lager och flera bredder per typ på varje lager så fungerade det inte att lägg ai appConfig som ett namn värde par utan vi var tvungna att lägga det som egna element. Att skapa ett eget element var ganska enkelt en bra beskrivning finns här: http://msdn.microsoft.com/en-us/library/2tw134k3.aspx men i vanlig ordning så beskriver artikeln i msdn inte allt, så var det svårt att se hur man skulle få det att fungera med Collections, men till sist hittade en bra beskrivning här:
http://viswaug.wordpress.com/2007/09/19/using-custom-names-for-the-configurationelementcollection-entries/ Detta gjorde att vi enkelt kunde beskriva inställningarna:
<configuration> <configSections> <sectionGroup name="ArealsavdragGroup"> <section type="WebConfigSection.ArealsavdragsSection,WebConfigSection" name="Arealsavdrag"/> </sectionGroup> </configSections> <ArealsavdragGroup> <Arealsavdrag> <ArealsavdragsLagerCollection> <ArealsavdragsLager ArcImsLagerNamn="Test" ArcImsTypFalt="test" EgetExternt="1"> <ArealsavdragsBufferCollection> <Buffer Kod="Kod1" Bredd="10" /> <Buffer Kod="Kod2" Bredd="20" /> </ArealsavdragsBufferCollection> </ArealsavdragsLager> <ArealsavdragsLager ArcImsLagerNamn="Test2" ArcImsTypFalt="test2" EgetExternt="2"> <ArealsavdragsBufferCollection> <Buffer Kod="Kod3" Bredd="30" /> <Buffer Kod="Kod4" Bredd="40" /> </ArealsavdragsBufferCollection> </ArealsavdragsLager> </ArealsavdragsLagerCollection> </Arealsavdrag> </ArealsavdragGroup></configuration>

Sunday, December 13, 2009

Silverlight 4 och ESRI ArcGIS Server Silverlight API.

Såg denna intressanta video http://www.eriknyberg.net/post/2009/11/28/Silverlight-4-and-ArcGIS-Server-e28093-Drag-and-drop-files.aspx som visar hur man kan lägga in shapefiler i Silverlight 4 mha Drag and drop. Hur coolt som helst :)

Saturday, December 05, 2009

Esri har släppt ArcGIS API for Microsoft Silverlight™/WPF™ version 1.1

I november släppte ESRI en ny version av sina Silverlight/WPF API:er http://resources.esri.com/arcgisserver/apis/silverlight/ Man bygger nu på Silverlight 3.0 http://resources.esri.com/help/9.3/arcgisserver/apis/silverlight/help/Whats_New.htm

Bing Maps Silverlight API V1.0 är släppt.

Missat det här men Microsoft har i november släppt BingMaps API:erna i version 1.0. http://www.bing.com/community/blogs/maps/archive/2009/11/09/bing-maps-silverlight-control-1-0-released.aspx Man bygger på Silverlight 3.0 och token-hanteringen är utbytt till ett appid. Microsoft verkar ha lite olika prismodeller som finns beskrivna här: http://www.microsoft.com/maps/product/licensing.aspx Det är gratis för oss utvecklare när vi håller på att utvecka och så länge man inte publicerat lösningen ut mot internet.

Thursday, December 03, 2009

Bing Maps Beta har Streetview

Intressant att se att Microsoft lagt in Streetview i Bingmaps Beta.
I vanlig ordning så hittade jag inget data över Sverige men helt klart intressant ändå, om man vill hoppa in och titta hur det ser ut i USA :).

Friday, November 20, 2009

Silverlight 4 Beta släppt på PDC.

Såg att Microsoft släppt Silverlight 4 Beta på PDC, här finns en beskrivning av vad som är nytt: http://silverlight.net/getstarted/silverlight-4-beta/#whatsnew Intressant att se att det kommer stöd för utskrifter.

Thursday, November 19, 2009

Spara "sessionsvariabler" i WCF.

I vår loggninglösning så sparas SessionsID och Användarnamn och propageras mellan tjänster så att man kan hålla ihop anrop från en klient till underliggande tjänster. Dessa sparas som sessionsvariabler i ASP.Net och som static variabler i windows applikationer.

I ASP.Net så är det lätt att spara undan variabler i en session genom att spara i den collection som finns t.ex i Page objektet:
page.Session["SessionID"] = session.ToString();

Men i WCF är det inte lika lätt att se hur man sparar undan variabler. Detta beror till stor del på att WCF är gjort för att vara mer generellt och klara olika typer av underliggande tekniker. Man får läsa på en del innan man förstår hur det hänger ihop, här finns en bra beskrivning av InstanceContextMode:
http://msdn.microsoft.com/en-us/magazine/cc163590.aspx

Lösningen på problemet fann jag här: http://blogs.msdn.com/drnick/archive/2007/02/15/stashing-data-in-extensible-objects.aspx genom att skapa ett ExtensionObjekt som lagras på InstanceContext så uppnådde jag samma funktionalitet som tidigare i ASP.Net, dvs sessionsvariablen lever under anropets tid.

if (OperationContext.Current.InstanceContext.Extensions.Find() == null)
{
OperationContext.Current.InstanceContext.Extensions.Add(new SessionMessageInstanceContext());
}
OperationContext.Current.InstanceContext.Extensions.Find().ServiceCallCounter++;

Monday, October 26, 2009

IntelliTrace i VS2010

Lyssnade på en presentation där dom nämnde att det skulle gå att titta på variabler så som dom såg ut vid exekveringen, dvs kunna backa tillbaka i callstacken och se hur variablerna så ut vid ett anrop. Har gogglat lite och hittat lite material om detta Historical Debugging eller IntelliTrace som det heter nu i o med VS2010 Beta2. Här finns en bra genom gång av detta http://blogs.msdn.com/habibh/archive/2009/09/21/coverage-of-the-visual-studio-2010-historical-debugger.aspx Lite synd är att det bara verkar fungera att spara information i från en applikation som startas med VS eller med MS Test applikationer, Jag skulle vilja bygga in detta i min egen applikation så man kan spåra dom fel som inte går att fånga i debuggern. Ska kolla mer på detta senare...

Wednesday, October 21, 2009

Se vilka filer som är utcheckade i TFS.

När man ska merga från utvecklings-grenen i TFS till release-grenen, så är det viktigt att filerna är inchekade. TFS verkar sakna möjligheten att kontrollera vilka som har filer utcheckade/förändrade. Lite gogglade på Internet gav dock detta blogginlägg http://blog.markjordan.org/archive/2008/03/13/64.aspx

Så om ni är som jag lite utav VSS och TFS-polis och gärna vill att saker ska vara incheckade kolla era projekt med:
C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\tf.exe status $/myProject /user:* /recursive /login:myDomain\myUsername,password

Tuesday, October 13, 2009

RT90 som SWEREF99 via ArcIMS

Vi hade ett litet problem med ett kartlager som inte fungerade i produktionsmiljön efter våran konverteringen av alla kartlager till SWEREF99. För att få det att fungera så blev vi tvungna att ta till on-the-fly projicering via ArcGIS och ArcIMS. Via ArcIMS gick det att sätta upp ett FeatureCoordsys i konfigurationen http://www.esri.com/news/arcuser/0205/files/georef_arcims.pdf http://webhelp.esri.com/arcims/9.3/General/mergedProjects/ArcXMLGuide/elements/featurecoordsys.htm lite lurigt var att datum projiceringen bara fungerar till WGS_1984, men som tur är så är det i SWEREF i princip samma. Efter att ha prövat ett gäng med RT90 till WGS_1984 så hittade vi en transformation som fungerade 8195 http://webhelp.esri.com/arcims/9.3/General/mergedProjects/ArcXMLGuide/elements/dattrans_alpha.htm. That saves the day!

Saturday, October 10, 2009

Introduktion till .Net 4.0

Oj, oj nu blev det tätt mellan blogginläggen men jag har även kollat på denna presentation som jag tycker var bra: http://www.msdev.com/Directory/Description.aspx?eventId=1271

Installation
Side-by-side, fungerar med tidigare versioner.

Dynamiska språk

IronPython, IronRuby, Nytt i .Net 4.0 är Dynamic Language Runtime, Ligger som ett lager ovan på CLR

C#

Named parameters

  • Lägga parametrar i olika ordning
  • Default värde
  • Optional parameters

VB.Net

Multi-line Lambda

F#

Nytt språk, som kommer. Funktionellt språk som innebär att man beskriver vad man ska gör i större grad än hur man vill att datorn ska exekvera. Ett steg längre ifrån hårdvaran.

MEF
Plug-In ramverk för Applikationer

  • Attribut för Import, Export
  • CompositionContainer, Catalog
  • System.System.CompositionModel.Composition för Hosting

Threads

  • CountDown Events
  • Barriers
  • Ger möjlighet att vänta in delprocesser

CodeContract

Assert i all ära men här kommer det som chefen vill att man ska göra, dvs beskriva vad gränssnitten stöder och på så sätt få bättre kvalité på koden.

  • System.Diagnostics.contracts
  • PreConditions
  • PostConditions
  • Invariants

.Net 4.0 och Visual Studio 2010.

Sprang på en presentation som Scott Guthrie http://channel9.msdn.com/posts/matthijs/Scott-Guthrie-Visual-Studio-2010-and-NET-Framework-40/ gjort om .Net 4.0 och VS2010. Intressant en och halvtimmes genomgång av "vissa delar" som kommer i VS2010. Några grejer som fastnade...
Fokus på att läsa och hitta i kod:
  • Markerar parametrar, så "highlightas" parametrarna i koden.
  • intellisence, sökbar med regexp, behöver inte vara objekt namn eller metod namn... Sök på en del av ett metodnamn så kommer namnen som matchas upp. Fungerar även med camelCase,dvs heter metoden GetParameterValue så går det att söka på GPV.
  • Ctrl - Shift - I, snabb sökning. Visar alla ställen i koden då
  • Call Hirarchy. Visar varifrån en metod anropas.

Debug History

  • Möjlighet att gå tillbaka och se värden på variabler mm.
  • Göra en dump av debug history i felhanteringen, och på så sätt få tillbaka läget som kunden eller testaren hade vid fel tillfället! Detta borde vara alla utvecklares våta dröm :)

web platform installer

IIS SEO Toolkit

  • Produkt för att kolla upp felaktigheter i dina siter som gör att du hamnar lågt i sökmotorerna sökningar.
  • http://www.iis.net/extensions/SEOToolkit
  • Installeras på en klient så man bheöver inte skräpa ned servern.
  • Fungerade både mot IIS6 och IIS7.

Customized config

VS2010 skapar som standardmässigt två anpassade configfiler Debug och Release (Ifall man valt att skapa projekt för 4.0). dessa innehåller kod för förändringar som krävs av web.config till Debug resp Release så har man conscction parametrar mm i web configen så får man ett ställ där man kan byta ut dessa. Tidigare han man varit tvungen att hacka detta i msbuild eller ha olika configfiler som länkats med i bygget.

Wednesday, September 30, 2009

IronPython

Tittar lite på dynamiska språk, verkar som att Python kommer bli standarden i ESRIs produkter i framtiden, åtminsone pekar man på avsikterna i detta dokument http://downloads2.esri.com/support/TechArticles/ArcGIS_931_and__94_Deprecation_Plan.pdf Sprang på ett bra genomgång av vad som är nytt i VS2010 http://www.msdev.com/Directory/Description.aspx?eventId=1271 där man bla berättade om dom dynamiska språken IronPython och IronRuby som .Net stödjer via DLR Dynamic Language Runtime som ligger som en smet över CLR. Testade att installera och köra lite IronPython. Installationen hittar man här http://ironpython.codeplex.com/ en bra tutorial finns här http://docs.python.org/tutorial/ om man vill lära sig att använda språket. Obesrvera att man kommer åt alla klassbibliotek i .Net från IronPython vilket innebär att man inte är begränsad på något sätt när man använder dom dynamiska språken.

Thursday, September 17, 2009

F# funktionellt språk från Microsoft.

Hittade igår en bra show som jag kollat på http://channel9.msdn.com/pdc2008/TL11/ som beskriver hur man använder F# på riktigt. Om jag förstått det hela rätt så är grejen att man beskriver vad man vill göra istället för hur datorn ska utföra det man vill att den ska göra (Imperativt C#, VB.Net). Dvs man kan skala bort mycket av den logik som man t.ex. i C# använder för att beskriva flödet datat ska ta i en applikation for, if else... Istället beskriver man vad man vill göra med informationen. Detta är extremt bra när man vill exekvera saker parallellt och asynkront, annars krävs en väldigt stor mängd kod för att göra och kontrollera anropen så dom blir parallella och asynkrona. F# verkar ha tagit syntaxen från OCml och fått tillgång till .Net ramverkets klassbibliotek. Språket verkar extremt kraftfullt, största problemet blir nog att lära sig tänka rätt. http://msdn.microsoft.com/sv-se/fsharp/default(en-us).aspx

Tuesday, September 15, 2009

Anropa en konstruktor med parametrar via generics.

En kollega hade förra veckan problem med att få generics http://en.wikipedia.org/wiki/Generic_programming att fungera med konstruktorn i VB.Net. Det visade sig vara lite knivigt att kunna anropa en konstruktor med parametrar i en metod som utnyttjar generics. Lyckades dock tillslut hitta en bra beskrivning av vad hur man ska göra. Vart? jo i en blogg så klart! http://www.dalun.com/blogs/05.27.2007.htm I vårt fall så gick det bara att köra med reflection http://en.wikipedia.org/wiki/Reflection_(programming)) eftersom vi skulle bygga en proxy komponent för WCF konfiguration och vi kunde inte exponera vilka typerna är inkapslat i komponenten snarare än något som skickas in via komponenten. Lösningen med både generics och reflection känns en aning som överkill men den fungerar.

Sunday, September 13, 2009

Löpteknik

Jag har senaste veckorna suttit och läst på lite om diverse olika löptekniker. Känns som att det finns en hel del som talar för att man tjänar på att inte sätta i hälen först. Sprang på en bra blogg http://gullfot.blogspot.com/2008/05/lpteknik.html som inspirerade mig att googla runt och läsa mer.

Chi Running http://www.chirunning.com som tar fasta på vad som är naturligt dvs hur springer du ifall du springer barfota, knappast med hälen först. Chi verkar iförsta hand vända sig till dom som springer längre än en mil. Här menar man att mid foot strike (MSF) är det enda vettiga eftersom det är mer ekonomiskt än att landa på balls of your feet (BOF), dessutom måste du bygga upp väldigt mycket benstyrka i vader mm, men varför skulle man vilja det när det finns är mindre slitsamt att landa med MSF?

Newton running http://www.newtonrunning.com tar fasta på dom fysikaliska lagarna, även här utgår man från hur man landar ifall man springer barfota. Dom har en väldigt talande beskrivning av skillnaden mellan mid/fore foot och heel isättning http://www.newtonrunning.com/run-better/optimal-running-form. Kroppen behöver mindre kompenserande rörelse i överkroppen för att löpa på främre delen av foten. Vilket gör att mindre energi behöver användas för varje steg. Känner igen det gungandet från löparspåren faktiskt.

Pose tekniken http://www.posetech.com/ har fått sitt namn från den posé som man gör vid växlingen mellan varje steg. Här fokuserar man på att landa på böjt ben och på BOF. http://www.posetech.com/pose_method/pose-method-of-running-technique.html

Många referenser går tillbaka till en bok "Running fast and injury free" som är skriven av Gordon Pirie http://wwww.gordonpirie.com/, och det löpsteg han beskriver är i mångt och mycket det som går igen i dom olika teknikerna jag hittat på nätet. Man ska INTE landa på hälen utan landa på fore foot och rulla över ned på hälen så att den hjälper till just i fasen då hela tyngden av kroppen paserar över benet. Gordon spyr galla över alla ortopediska skor som skofabrikanterna spottar ur sig och menar på att det är skor som tvingar folk att landa på hälen som rår för många skador inom löpningen.

Läst en massa för och emot på nätet om att löpa på främre delen av foten. Känslan är att det är lite som inom hästsporten en häst har olika gångarter beroende på fart där trav fungerar bra tills dom uppnår en viss fart där galopp tar vid eftersom det blir det minst energikrävande steget givet den högre farten. Så borde det även vara oss kan man tycka, när vi går sätter vi i hälen först men när vi löper så sätter vi i steget med främre delen av foten för att snabbare kunna sätta i nästa steg. Dvs springer man väldigt långsamt så kanske det är naturligare att landa på hälen, men jag tänker springa snabbt. :)

Monday, August 31, 2009

Arena 42

Xlent och Ivar Jacobsson finns på Arena42, kom och snacka Essup med Ivar! Mer info finns här:
http://kampanj.xlent.se/arena42/

Tuesday, August 18, 2009

Replikering av geodatabase i ArcSDE.

Har suttit och läst igenom hur man sätter upp och replikerar geodatabaser i ESRI ArcSDE. Mycket bra kapitel om detta finns här:
http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=Understanding_distributed_data
Verkar finnas några om och men som är viktiga att komma ihåg att man måste ha en ArcSDE som parent och child om det ska gå att sätta upp en en- och tvåvägs-replikering, annars så fungerar det bara att ha en checkout replikering. Sen trycker dom på att man ska ha koll på sitt senario gång på gång i texten, så jag antar att det kan bli struligt om man vill byta replikeringsmetod i efterhand.

Har även kollat upp hur man i ArcObjects kan trigga igång en synkronisering och det verkar vara busenkelt: http://resources.esri.com/help/9.3/ArcGISDesktop/dotnet/8280cca2-b4cf-4d37-8b28-4ee02aaf37e5.htm

Saturday, July 11, 2009

Hur mycket ansträngde sig FMV för klimatet vid sin upphandling?

En udda postning för att komma från mig men ibland kokar man över...
Det är intressant att se att Näringsministern vill att privatpersoner och företag ska anstränga sig mer i klimatfrågan. Samtidigt så väljer FMV inte att satsa på BAE Hägglunds SEP som är ett miljövänligare alternativ med sin hybriddrift som även är intressant ur civilt perspektiv. Hyckleri är det om man vill att andra ska ta kostnaden för att vara miljövänliga, samtidigt som staten själv inte tar ett miljöansvar i sina upphandlingar!

http://www.centerpartiet.se/Nyheter/Arkiv-2009/Kl-19-Maud-Olofssons-tal-i-Almedalen/

Friday, July 10, 2009

Windows 7

Har använt Windows 7 ett tag nu på hemma datorn och jag måste säga att jag gillar den, fick avsmak direkt när jag testade Vista men det känns som att Microsoft lärt sig av misstagen och gjort GUI:t betydligt trevligare. Inbillar mig inte att den kräver mindre resurser men det känns som att man i Windows 7 använder resurserna till rätt saker. :)

ArcGIS Silverlight API 1.0 är släppt.

Hade nästan missat detta men nu är version 1.0 av ESRIs Silverlight APIer är släppt. Kul att se för det innebär att man kan börja bygga saker på den plattformen.
http://resources.esri.com/arcgisserver/apis/silverlight/

Thursday, May 28, 2009

Visual Studio 2010.

Installerat Visual Studio 2010 Beta 1, så nu blir det till att testa, känns som att det är mycket nytt i den här versionen. Inte minst nya språket F#. http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx

Monday, May 11, 2009

Silverlight 3 Beta kan det vara något?

Tänker kolla in Betan på Silverlight 3 http://silverlight.net/getstarted/silverlight3/default.aspx känns om att det börjar bli en mogen plattform att bygga applikationer, vad sägs om över 60+ nya komponenter känns som att det börjar likna något :) Sen fungerar verkar det som Betan på Silverlight APIerna mot AGS http://forums.esri.com/Thread.asp?c=158&f=2455&t=280971 är betydligt mer stabila mot Silverlight ett skäl om något att testa version 3 :)

Friday, May 08, 2009

2 kg GIS och ett knippe GPS!

Äntligen har vi fått upp vårt GIS erbjudande på vår kampanj site! Kolla gärna in det och hör av er :)
http://kampanj.xlent.se/Ovik/2kg_gis_och_ett_knippe_gps.htm

Thursday, May 07, 2009

XLENT Technology först med Ivar Jacobsons nya utvecklingsmetodik

Pressmeddelande om Essup är släppt:
Som den första och hittills enda partnern till Ivar Jacobson International, kan XLENT Technology nu erbjuda systemutveckling med Ivar Jacobssons nya arbetssätt: Essential Unified Process (EssUP). Det innebär snabbare och bättre resultat, samtidigt som kunderna kan kontrollera att IT-projektet träffar de affärsmässiga målen.
http://www.newsdesk.se/view/pressrelease/xlent-technology-foerst-med-ivar-jacobsons-nya-utvecklingsmetodik-292007

ArcGIS API for Microsoft Silverlight Public Beta

Har inte bloggat om det heller men ESRI har släppt en public beta på ArcGIS API for Microsoft Silverlight http://resources.esri.com/arcgisserver/apis/silverlight/ jämfört med Microsofts Silverlight APIer så känns ESRIs lite mer GIS-aktiga. Dvs det finns lite mer möjligheter att hantera geometrier, spatial referenser mm. lite videos om APIerna: http://www.youtube.com/watch?v=r-zsWoscmIM&feature=PlayList&p=31F5002CD84564B5&index=17 http://resources.esri.com/arcgisserver/apis/silverlight/index.cfm?fa=mediaGalleryDetails&mediaID=7C808417-1422-2418-A00D7D89843A08D9

Som bygger på ArcGIS Servers REST API, men som påpekats på forumet det finns inget som hidrar att man bygger egna WCF tjänster som man konsumerar i Silverlight.

Bör kanske även nämna att ESRIs komponenter även fungerar mot Virtual Earth Services...

Virtual Earth Silverlight Map Control

Har inte bloggat om det, men gör det nu, jag har testat Virtual Earth Silverlight Map Control CTP http://connect.microsoft.com/silverlightmapcontrolctp och den känns rätt bra för enklare kartvisning.

När använda SOAP eller REST?

Jag sprang på den här keynoten som David Chappell hade haft på ESRIs utvecklarkonferens. Det är en bra presentation om när man ska använda REST eller SOAP.
http://proceedings.esri.com/library/userconf/devsummit09/papers/keynote_chappell.pdf

Monday, April 27, 2009

Kampanj time

Vi har äntligen fått upp mer info på nätet om vilka vi är och vad vi gör i Örnsköldsvik läs mera om Essup, Tekniktjänster och vad man kan göra med DeepZoom, Silverlight mm på http://kampanj.xlent.se/ovik/ mera kommer innom kort så lägg upp en RSS feed vet ja!

Thursday, April 09, 2009

TFS 2005 gör inte get-latest vid check-out!

Värt att lägga på minnet så att man inte gör en blunder, är att TFS 2005 inte gör som VSS dvs get-latest när man gör check-out. Se beskrivning varför här Why doesn't Team Foundation get the latest version of a file on checkout? http://blogs.msdn.com/buckh/archive/2005/08/20/454140.aspx i TFS 2008 finns det möjlighet att ställa i source control insällningarna så att det fungerar som tidigare http://sushantp.wordpress.com/2009/02/26/tfs-2008-tips-and-tricks-enable-get-latest-on-check-out/, kanske kan vara ett skäl till uppgradering :)

Monday, March 16, 2009

ServiceHost directive could not be found.

Vi håller på att bygga nya tjänster med Service Factory och WCF, en kollega hade checkat in koden i TFS och när jag checkade ut koden så kunde jag inte lägga till en service referens till WCF tjänsten i mitt projekt. Testade även att köra webbläsaren mot tjänsten och fick ett fel tillbaka: "The type 'Service', provided as the Service attribute value in the ServiceHost directive could not be found." Efter många om och men hittade jag information på nätet och det visade sig att felet berodde på att sökvägen i svc filen inte kunde hitta tjänsten. Detta kunde sedan enkelt avhjälpas med att lägga in en projektreferens till implementationsprojektet.

Middagstips!

Jaha! Då har man fått stränga direktiv att man ska börja blogga eftersom chefen tycker att det verkar vara trendigt :)

Vad ska man skriva om då? Tja, problemlösning är min starka sida! Kommer hem på måndag efter jobbet hungrig, vad gör man? Tja, mat så klart! Koka potatis, riv några morötter, öppna en burk senapssill och så är middagen klar. Plussar på med lite mjölk och en smörgås förstås. Problem är till för att lösas även om dom är så enkla som att komma på vad man ska äta till middag.