I det här inlägget vill jag dela med mig några korta erfarenheter av att arbeta med "Application Designer" i Microsoft Visual Studio 2005, Beta 2. Observera att detta inte är en färdig produkt, vilket innebär att saker kan ha ändrats tills den verkligen släpps.
Nedan ser ni ett helt system, Lexia, beskrivet med hjälp av "Application Designer". Detta är ett system som jag håller på att bygga för att testa ett flertal SOA-lösningar i. Systemet är en internetbokhandel.
Som ni ser kan det snabbt bli lite oöverskådligt, speciellt när man jobbar på mindre skärmar. Tyvärr blir inte utskriften något bättre. Det går i dagsläget att endast skriva ut på ett sätt, vilket innebär att hela den här skissen kommer ut på ett flera sidor, som man sedan får klistra ihop.
Nedan kommer en detaljbild ifrån hela skissen.
Det är mycket lätt att börja skissa, vilket är viktigt. Jag tycker också, personligen, att skissen blir rätt snygg, speciellt de tonade boxarna med rundande hörn.
En sak som jag dock irriterade mig över när det gäller boxarna, är att både en Webbapplikation och en Webbtjänst ritas ut på exakt likadant sätt. Se Bookshop och OrderProcessService i exemplet. (Jag vet att det är samma tekniska lösning för båda typerna, men jag skulle ändå vilja kunna se skillnaden.)
När vi ändå pratar webbtjänster, så tycker jag att man skall kunna rita ut tjänster utan att behöva binda dem till en teknisk implementation, i det är fallet en webbtjänst. Teorin med DSL tycker jag om, men jag skulle nog vilja kunna vara snäppet mer abstrakt när jag skisserar systemet.
Att skapa "end points", alltså de påhängda figurerna på boxarna, är mycket enkelt. Det är också enkelt att sedan koppla ihop olika end points med varandra. Utritningen av kopplingarna sker relativt väl, men det kan ibland bli väl många "broar".
För WebServiceEndpoint kan man sedan definiera metoder och parametrar på ett enkelt sätt. Tyvärr har jag haft problem att definiera parametrar som inte är någon av de grundläggande typerna. Jag använder mig nämligen av dokumentorienterade parametrar, vilket innebär att jag har en avancerad typ, som en parameter, vilket sänder alla information. (Men jag kanske bara inte förstår hur man skall göra?)
Jag skulle också vilja ha möjligheten att rita in andra saker i skissen. Jag skulle vilja kunna ritar linjer och boxar, skriva text. Tyvärr går detta ännu inte att göra.
En spännande funktion är att man kan implementera systemet och dess tjänster genom att välja "Implement All Applications". Det gör att det skapas stubbar för alla delarna. Tyvärr verkar det inte sedan som skissen och applikationerna är synkroniserade, även om de är i samma solution. Jag kan, exempelvis inte, lägga till en metod till en webbtjänst och sedan se att den metoden har kommit upp i skissens end point. (Nu vet jag inte om det skall fungera överhuvudtaget?)
Sammanfattning
Jag kommer säkert att använda mig av det här sättet att skissera ett system. Det går fort. Tyvärr saknas vissa bitar för att göra det fullständigt. Vi får se vad som kommer att finnas i den slutgiltiga produkten.
Det verkar som att du har ritat i Beta 2. Jag saknar själv ett tydligare gränssnitt mellan webapp och webservices. i Beta 1 fanns även fler generella serverar och intranätverks ikoner där man kunde implementera bl.a. iis serverar.
För övrigt är ditt schema väldigt trevligt ritat.
Posted by: robbie | 2005-04-27 at 10.49