in

ljusberg.se

Smöråkning

April 2006 - Posts

  • Gaahh!

    Bara ett litet tips.. Om någon på ditt företag får syn på den här artikeln och föreslår att ni ska börja använda tipsen man får där; spring! snabbt! Using the .NET Framework Class Library from Visual Basic 6

    Alltså, allvarligt talat.. Att vidareutveckla sina gamla VB6-applikationer till att börja utnyttja .NET istället för att helt enkelt ta steget till VB.NET måste ju vara total galenskap!

  • Adminklient till entitetstjänster

    Innan jag ens börjar måste jag först dra några små "disclaimers".

    1. Det jag skriver nedan bryter mot minst en av grundpelarna i SOA (fler än så om man är lite petig). Det bör alltså användas med stor försiktighet och med en god anledning.
    2. Detta må se ut som ett mönster, men är det absolut inte av den enkla anledningen att det inte är beprövat. Vi har förvisso gjort liknande saker sedan länge, men inte i en ren SOA-miljö.

    Sammanhang

    Du bygger en ren entitetstjänst som ska leverera information till en eller flera konsumenter. Du ska även bygga en administrationsklient till denna information. Klienten behöver inte tillgång till någon annan informationskälla än det som tjänsten levererar och varje förändring i tjänstens interna datastruktur/logik kommer obönhörligt leda till att även klienten måste förändras.

    Problem

    ADO.NET inkluderar en hel del enkel och trevlig funktionalitet för att läsa och skriva till en databaskälla (DataAdapters, DataSet i kombination med DataGrid etc, etc). För många applikationer är dessa på tok för simpla, men i just enkla administrativa klienter kan de vara mycket kraftfulla. I en rent serviceorienterad arkitektur kan de dock inte användas på något vettigt sätt eftersom de "by design" är väldigt kopplade till databasens struktur.

    Lösning

    Se den administrativa klienten som ytterligare en "endpoint" till tjänsten. På så vis kan du tillåta att den har kännedom om den interna datastrukturen (på samma sätt som implementationen av dina .asmx-filer har).

    Fördelar

     

    • Du slipper det extrajobb som det kan innebära att bygga och underhålla en eller flera endpoints som den bara en administrativ klient använder
    • Du kan använda dig av de inbyggda verktygen i Visual Studio 2005 för att enkelt koppla dig mot din databas

    Nackdelar

     

    • Du bryter mot SOAs grundpelare.
    • Varje gång du sjösätter en ny version av din tjänst så måste även den administrativa klienten uppdateras.

    Detta inlägg är ett "work in progress". Har du några kommentarer? Skriv!

  • Mockery

    How about this quote from my hero, Scott Adams:

    Mockery is an important social tool for squelching stupidity. At least that’s what I tell people after I mock them.
    Posted Apr 18 2006, 03:10 PM by anders with no comments
    Filed under:
  • Trött på engelska

    Nä, nu tror jag det får vara nog med bloggande på engelska.. Med lite tur så blir det lite lättare att blogga om jag slipper sitta och tänka ut rätt ord, stavning etc etc varje gång jag ska skriva en enkel mening. Känns väl dessutom som att den ganska begränsade publik jag har (dvs "folk som av misstag råkar hamna här") inte bryr sig så mycket om vilket språk siten är på.. :-)

    Jag har förresten börjat gå 2xSundblads utbildning till Certifierad .NET-arkitekt. Ännu så länge har jag tagit mig igenom två av fyra kurser, och jag måste säga att jag är mer eller mindre lyrisk. Det är helt enkelt fantastiskt roligt att lyssna på och snacka om arkitektur tre dagar i sträck!

    Saker jag tycker kan vara värda att blogga om (men som jag bara lär göra om någon ber mig..:-) )

    Serviceorienterad arkitektur

    • Kan en admin-klient till en tjänst räknas som gränssnitt till tjänsten, eller måste även den gå via det publika kontraktet?
    • Hur tar man ett befintligt system steg för steg mot SOA?

    Implementationsarkitektur

    • Beskrivning av hur vi internt implementerar tjänster och hur vi försöker förenkla kopplingen mellan dem.
    Posted Apr 07 2006, 09:32 AM by anders with no comments
    Filed under:
Powered by Community Server (Non-Commercial Edition), by Telligent Systems