Michells Mesterværk

Windows Azure – roadmap

by Daniel 25. May 2009 13:47

AzureRoadmap

Tags:

Windows Azure med Nikolaj Winnes

by Daniel 25. May 2009 09:42

I mit forsøg på at fortælle lidt om Windows Azure har jeg fået indirekte “hjælp” af Nikolaj Winnes.

Nikolaj er gæst hos Søren i ANUGCast, nr. 35 hvor han netop snakker om Windows Azure.

God fornøjelse :)

Tags:

Windows Azure – udviklingsoplevelsen!

by Administrator 19. May 2009 09:32

Hvis du ikke har læst min første blog post om Windows Azure, burde du, inden du går videre her, lige sætte dig ind hvad Windows Azure dækker over.

Når du har fået dine adgangskoder og nøgler til netop Windows Azure, og har installeret Cloud Services templaten til Visual Studio samt Windows Azure SDK’et så kan du nu oprette et Windows Azure projekt.

Du vil ligge mærke til at der er ændret et par ting i forhold til at oprettet “normalt” projekt. Der er et par nye termer der skal afmystificeres men når det er sagt, så er det faktisk ikke så slemt.

AzureProject 

Når man udvikler med Windows Azure er tingene delt op i forskellige “roles”. Pt. har vi 2 roles; en worker-role og en web-role.

En worker-role er en process der køre i baggrunden af enten en eller flere andre processer. Det er en slags service som hele tiden køre, og som du kan få til at holde øje med andre ting. Når du udvikler Windows Azure lokalt har du adgang til din worker-role via en form for “console” vindue, men på selve Windows Azure kan du ikke tilgå den rent visueen lt.

En web-role er i realiteten et web projekt hvori du kan gøre stort set de samme ting som i et normalt webprojekt med Visual Studio. I Windows Azure er der også undstøttelse for Full Trust, FastCGI og native kode, så du behøver ikke at udvikle ASP.NET men kan også bruge f.eks PHP. (nedenstående er et “Web and Worker Cloud Service” projekt”.)

 

AzureSolution

Lad os starte med at åbne code behind filen til Default.aspx. Den ligger i vores web-role. Lav en Response.Write(DateTime.Now); og debug din løsning. Nu vil du se, at ligsom der plejer, åbnes et browser vindue og ud kommer vores dato. Det er der ikke meget nyt i.

Development Fabric

Når man har installeret Windows Azure SDK’et kommer der bla. et lille program med som hedder “development fabric”. Dette lille program er faktisk din lokale instans af Windows Azure – jeps – intet mindre!

Prøv at lav en “Set as StartUp Project” på det øverste af projekterne (MyFirstApp på billedet). Genstart Visual Studio som Administrator (hvis du ikke allerede er det) og kør en debug på løsningen.

Hvis din development fabric ikke starter så se efter om den ligger i din system tray til højre for din task bar.

DevFabric

Som du kan se i developer fabric er der både en WebRole og en WorkerRole, og når du debugger din løsning lokalt vil din applikations forskellige roles være at finde her.

Hvis vi kigger på vores WorkerRole i developerment fabric’en, og samtidig prøver at åbne vores WorkerRole.cs fil fra vores WorkerRole projekt, kan vi se at der bliver skrevet til en log.

public class WorkerRole : RoleEntryPoint
{
    public override void Start()
    {
        // This is a sample worker implementation. Replace with your logic.
        RoleManager.WriteToLog("Information", "Worker Process entry point called");

        while (true)
        {
            Thread.Sleep(10000);
            RoleManager.WriteToLog("Information", "Working");
        }
    }

    public override RoleStatus GetHealthStatus()
    {
        // This is a sample worker implementation. Replace with your logic.
        return RoleStatus.Healthy;
    }
}

Du kan se hvordan WorkerRolen’s log bliver udskrevet under development fabric’en. Du skal forstå dette som, at din WorkerRole hele tiden køre og, at den i modsætning til din WebRole aldrig har noget med brugerens interaktion at gøre.

workerRole

Kør PHP og ASP igennem Windows Azure.

Med FastCGI kan du køre PHP på Windows Azure, og ærlig talt så er det ikke ret meget det kræver at sætte ens WebRole op til at kunne klare den opgave.

1. Installer PHP på din maskine (følg disse steps: http://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis-70/).
2. Tilføj en web.roleConfig (xml fil) fil til dit WebRole projekt.
3. Tilføj dette kode til din web.roleConfig fil:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.webServer>
    <fastCgi>
      <application fullPath="%RoleRoot%\php\php-cgi.exe"/>
    </fastCgi>
  </system.webServer>
</configuration>

4. Åben ServiceDefinition.csdef i dit Cloud Service projekt og tilføj følgende kode:

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="MyFirstApp" 
xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"> <WebRole name="WebRole" enableNativeCodeExecution="true"> <InputEndpoints> <!-- Must use port 80 for http and port 443 for https when running in the cloud --> <InputEndpoint name="HttpIn" protocol="http" port="80" /> </InputEndpoints> </WebRole> <WorkerRole name="WorkerRole"> </WorkerRole> </ServiceDefinition>

5. Åben en “Administrator” command prompt fra roden af dit WebRole projekt og lav en xcopy af PHP ud til din webrole:

xcopy /s \php php (tryk D når den spørger)

6. Tilføj en handler til PHP filer i din WebRole web.config fil:

<add name="PHPCgiModule" path="*.php" verb="*" modules="FastCgiModule" 
scriptProcessor="%RoleRoot%\php\php-cgi.exe" resourceType="Unspecified" />

7. Tilføj en php fil med følgende kode: <?php phpinfo();?> ,til din WebRole og debug din løsning!

phpAzure

Vil du køre ASP tilføjer du bare en fil til din WebRole, det er allerede konfigureret til at virke :).

Er det bare hosting ?

Ovenstående eksempler er sådan set bare hosting. Dog uden at have adgang til serveren på nogen måde – heller ikke med FTP. Og nej, vi har jo ikke engang set på hvordan vi rent faktisk kan ligge det op i Windows Azure endnu. Det kommer vi naturligvis til.

Dog er der et par ting hvor Azure skiller sig ud for at være en ordinær og ret kedelig hosting løsning. En af tingene har vi allerede været en lille smule indover, nemlig den her WorkerRole. Vi kommer til at se mere til vores WorkerRole i nogle af de næste blogposts.

En ting som vi slet ikke har kigget på er vores konfigurationsfil der ligger i selve Cloud Service projektet. Filen hedder ServiceConfiguration.cscfg og åbner du den kan du se, at der pr. default er skrevet noget om “Instances”. Som jeg nævne i den forrige post er der bygget skalering direkte ind i Windows Azure, og det er netop lige her man bla. kan konfigurer dette. Hvor mange instanser ønsker du at køre af henholdsvis din WorkerRole og din WebRole. Instanser = kørende kopier af samme software.

Du kan teste det lokalt med det samme. Prøv at ændre Count til 10 på din WorkerRole’s konfiguration og debug; <Instances count="10"/>. Hvis du åbner din development fabric nu kan du se 10 instanser af din WorkerRole og det må være tegn nok til at det virker efter hensigten. Rent teknisk ligger der en loadbalancer foran din løsning nu, og den finder selv ud af hvor det enkelte request skal peges hen.

At kunne skalre sin løsning ved kun at ændre en konfiguration, og i fremtiden automatisk, åbner helt nye døre for både udvikleren og forretningen. Kan du skalere din løsning til 1.000.000 hits om dagen på så kort tid lige nu ? Uanset hvad du svare, så tror jeg næppe du har et lignende fleksibelt miljø som dette.

Opsamling

I denne blogpost har vi set lidt på hvad WebRole og WorkerRole begreberne betyder og hvordan de virker lokalt. Vi så på hvad Windows Azure development fabric er for noget, og hvordan man i sammenspil med den, kan se hvad ens WorkerRole laver. Til sidst har set hvordan vi kunne få afviklet PHP via FastCGI og hvordan man kan skalere sin løsning ved hjælp af ganske enkel XML konfiguration.

Tags:

VS2010

Hvad kommer der i .NET 4.0 og Visual Studio 2010

by Administrator 18. May 2009 15:53

De er lige på trapperne, ihvertfald i beta udgave, og derfor synes jeg lige vi skal have opsummeret, hvad der egentlig kommer med den næste version af .NET frameworket og Visual Studio tyve-ti, som vi kalder den indenfor firewallen. (jeg har ikke listet alt).

.NET 4.0

Parralel extensions (henrik har blogget lidt om det - Farvel Threads, goddag Tasks)
F# er blevet FCC (First Class Citizen) - (Video: http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV/TL11.wmv)
Managed Extensibility Framework (MEF) - (Video: http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV/TL33.wmv)
Dublin (Video: http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV/BB18.wmv)
C# 4.0 (Video: http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV/TL16.wmv)
VB 10 (Video: http://dotnetforum.dk/blogs/guidmaster/archive/2008/10/29/nye-features-i-vb10.aspx)
ASP.NET 4.0 (Video: http://channel9.msdn.com/shows/10-4/10-4-Episode-3-ASPNET-WebForms-40/)
Entity Framework 4.0

Visual Studio Tyve Ti

WPF baseret editor
Multi skærm support
Extension Manager
Kode fokuseret udviklings oplevelse (lyder sejt)
Snippets i HTML (endelig)
Designer til Silverlight (juhiii)
Historisk debugging (VSTS)
Project server integration (VSTS)
UML designer (VSTS)

Jason Zander har skrevet et par rigtigt gode blogpost omkring Tyve Ti : http://blogs.msdn.com/jasonz/default.aspx
En MSDN artikel der giver et overblik over Tyve Ti - Hold System.

Tags:

VS2010

Windows Azure!

by Daniel 18. May 2009 09:26

Jeg har netop afholdt en offline præsentation omkring storage modellen i Windows Azure. Præsentationen var i CNUG.

Jeg synes selv det gik fint og jeg håber selvfølgelig alle fremmødte fik noget ud af, at høre på mig.

I de næste par blogposts vil jeg forsøge at redegøre for:

  1. hvad windows azure er
  2. hvorfor man skal vælge windows azure fremfor andre
  3. hvordan man kan bruge windows azure i sine løsninger
  4. hvornår man skal bruge windows azure i sine løsninger

Hvad er Windows Azure ?

I oktober 2008 gik en Microsoft’s CSA, Ray Ozzie på scenen til PDC og meddelte at Microsoft’s nyeste operativ system ville blive kaldt Windows Azure. Tidligere kendt som projekt Red Dog!

Mange var begejstret, og hos de fleste kom det nok som en ret stor overraskelse. Absolut ingen havde hørt om Windows Azure og kun få vidste hvad Red Dog var. Selvom jeg er en af de farvede, var f.eks ikke klar over annonceringen på PDC.

Nu er der gået over et langt over et halvt år siden PDC og Windows Azure blev offentliggjort, og jeg synes nu, at det er på tide at få spredt budskabet om hvad det nye operativ system egentlig er.

Siden Amazon lancerede deres EC2 platform tidligt i 2006 har “skyen” været på manges læber. Flere er kommet til, og bla. SalesForce, Google og Zoho forsøger at tilbyde sine kunder en fleksibel, hodlbar og billig cloud platform. Vi har med Windows Azure fortalt omverdenen og kokurrenterne, at vi mener det seriøst og vil være med i kampen om skyen.

Mange mener, at cloud computing ikke er et nyt fænomen, og jeg er tilbøjelig til at give dem ret et stykke af vejen. De største trends omkring skyen de sidste par år har været:

  • Infrastructure as a Service (IaaS)
  • Platform as a Service (PaaS)
  • Software as a Service (SaaS)

IaaS gør det muligt at købe sig ind på en leverandørs infrastruktur. Som kunde vil du typisk få adgang til en eller flere instanser af udbyderens virtuelle servere og bruge dem som dine servere. Ved at gøre dette spare du penge på at skulle købe hardware, hoste dine egne servere, dyre software licenser til operativ system samt database systemer. IaaS er den nemmeste, men også den dyreste form for cloud computing.

Med PaaS køber du dig ind på udbyderens egen platform, uden reelt set at få adgang til den fysiske/virtuelle server. Med Windows Azure har du pt. gode muligheder for at tilgå bla. en servicebus, sql data services, asp.net hosting, service hosting etc. En af de største fordele ved PaaS og Windows Azure er de åbne arkitektur-standarder såsom REST og som .NET udvikler skal du ikke tilegne dig yderligere tekniske kompetencer. Nogle frygter det såkaldte “vendor-lockin” med PaaS, idet bindingen imellem udbyder og kunde bliver ret hård. Man kan ikke bare flytte fra en cloud udbyder til en anden når man har købt sig ind på PaaS, og det kan være en ulempe.

SaaS er nok en af tidens største software trends. SaaS går i store træk ud på at leje sig ind på noget på software istedet for at skulle af med dyre licenskroner up-front. Personligt vil jeg sige, at SaaS ikke er et nyt fænomen, man har haft dette lej-en-løsning i mange år. Men der er flere store software virksomheder der har valgt at gå i denne retning da forretningsmodellen ofte er bedre for både udbyderen og kunden. I Danmark har vi en rigtig SaaS leverandør ved navn E-conomic. E-conomic lever af at leje et light-weight regnskabsprogram over internettet og de har haft forrygende success med det.

Windows Azure er en fuld sky platform som idag gør det muligt at “hooke” sig ind på både PaaS og SaaS. I nærmeste fremtid også være mulighed for IaaS, altså virtualliserede servere i Microsoft datacentre.

I bunden af “PaaS versionen” af Windows Azure ligger der i virkligheden en “skimmed down, custom build” windows 2008 server med en en ligeså fintunet IIS 7. Tag dog ikke fejl af denne opsætning; Windows Azure er bygget til at køre ovenpå mange tusinde servere og skalere imellem mange forskellige datacentre i hele verden. Som bruger af Windows Azure får du et administrations interface med mulighed for at oprettet forskellige typer af projekter og services, alt sammen noget som vil blive hostet i vores datacentre i USA (kommer naturligvis også i EU). Et eksempel på en hostet applikation kunne være et ASP.NET website. Windows Azure muliggør det også at køre bla. PHP igennem FastCGI.

Ovenpå denne Windows Azure server opsætning er der stillet en god håndfuld services til rådighed. Services som det er meningen man kan bruge i sine egne løsninger. Man behøver ikke hoste hele sin løsning i Windows Azure, men kan sagtens have noget af sin løsning stående “on-premise”, det er som altid op til en selv.

Herunder er nogle af de services man allerede idag kan benytte sig af. Senere vil det også være muligt at købe sig ind på Sharepoint, CRM og Exchange services. Jeg vil i fremtidige posts vise demoer af dem alle sammen, så fortvivl ikke.

access_control_icon 
Access control

Ved hjælp af ACS (Access Controller Service) på Windows Azure kan du kontroller hvem og til hvad brugere og roller, har adgang til i din applikation. ACS er baseret på en “claims in claims out” arkitektur. Man spørger ganske simpelt ACS servicen i Azure om den pågældende bruger har adgang til en metode ved at sende et sæt claims op og får et nyt sæt claims retur.

service_bus_icon
Service bus

Windows Azure Service Bus er reelt set en måde hvorpå du kan registere applikationer der skal kunne snakke med hinanden. Du kan registrere en applikation som en “service” som har et endpoint hvor en klient kan få fat i den. Det super fede er at service bus’en benytter sig af “router tunneling” hvilket betyder at din “service” og/eller din klient kan hostes hvor som helst – også bag en firewall – beskeden kommer frem uanset hvad. Det er smart!

workflow_icon
Workflow

Med Workflow servicen på Windows Azure får du mulighed for deklarativt, at styre flows direkte i én applikaion, men også imellem applikation(er) som enten befinder sig i “skyen” eller “on-premise”. med Workflow services kan man også nemt have interaktion imellem bla. Windows Azure service bus’en og Access control servicen.

sql
SQL services

SQL services har tidligere været designet udfra en ACE arkitektur; Authority, Container, Entity. I det store hele det samme som man kan opnå med “tables” under Azure kernen (A=database, C=tabel, E=rækker). Men vi har, efter stort ønske af partnere, valgt at gøre SQL services til en “rigtig” database hvor man vil have muligheder som vi kender det fra idags SQL server databaser; tabler, stored procedures, triggers etc. Det vil som vi har lovet, stadig være muligt at skalere som man har lyst og “pay as you grow”.

live
Live services

Under Live services er der et ret stort subset af services, tools og andet godt. Jeg vil forsøge at udpensle det i sin egen blog serie, så vend tilbage snarest.

SharePoint og CRM services

Begge vil være en del af den endelige version af Windows Azure og gøre det muligt bla. at bruge CRM og SharePoint funktionalitet i sin egen løsning.

Azure kernen

Bunden af Windows Azure består som tidligere nævnt af mange mange tusinde fysiske servere. Disse servere står pt. i forskellige datacentre i Nordamerika, og der planlægges yderligere opførelse af et par håndfulde ekstra, bla. i Europa . I sidste ende har du adgang til flere hundrede tusinde fysiske maskiner, og har du penge nok kan kan du bruge så mange af dem du vil :0)

Ovenpå styresystemet i Windows Azure ligger der nogle helt klare muligheder som er: hosting, data lagring, regnekraft og nem skalering af en applikation. Det kommer vi selvfølgelig alt sammen til at se nærmere på.

For at kunne arbejde med Azure er der et par ting vi først skal have på plads. Følgende skal du gøre for at kunne komme igang med selve Windows Azure:

Følg instruktionerne på følgende side: http://www.microsoft.com/azure/register.mspx; nu er du faktisk klar til at udvikle din første Azure applikation.

Life online, in the hands of others, strangers even is here to stay. We are all plugged in and reliance on the machine though crippling, cannot be avoided.

Tags:

Vind 2 billetter til Umbraco Code Garden 2009

by Daniel 17. May 2009 13:13

Du kan nu vinde 2 billetter til en værdi af 800 euro, til Umbraco’s helt egen konference i København.

Men først skal du hjælpe mig lidt….

D. 28 maj afholder jeg Community Day 09 i København. I den forbindelse skal der afholdes en et par forskellige kode konkurrencer, hvor 2 personer skal konkurrerer om hvem:

  1. Der er hurtigst
  2. Der har den bedste kode stil
  3. Hvem der er mest kreativ

Der vil til samtlige af disse kode konkurrencer blive stillet en opgave til rådighed. F.eks: "programmér en funktion der gør XXX. Vedkommende vil af publikum blive målt på ovenstående kriterier.

Det er nu op til dig at sende  mig de 4 bedste opgaver til denne konkurrence.

Regler:

  1. Det skal være en funktion man kan udvikles på mellem 10-15 minutter
  2. Funktionen skal være nem at forklare til en tredje person
  3. Der skal være mulighed for at være kreativ

Du har indtil Torsdag d. 21/5  kl. 12:00

Go go go!!!

Tags:

Temporary Post Used For Theme Detection (ce636d6e-6c9b-468d-8f71-87c38564257f - 3bfe001a-32de-4114-a6b4-4005b770f6d7)

by Daniel 17. May 2009 12:57

This is a temporary post that was not deleted. Please delete this manually. (742aac64-4149-4224-8e17-0bb086bf564b - 3bfe001a-32de-4114-a6b4-4005b770f6d7)

Tags:

Silverlight 3 – bind elementer til andre elementer

by Daniel 12. May 2009 10:27

Med Silverlight 3 kan du binde en værdi fra en kontrol til en anden. Det er super simpelt og meget nyttigt i mange situationer.

F.eks kan man nu styre volumen på et MediaElement via denne nye funktionalitet. Se selv :)

<Grid x:Name="LayoutRoot" Background="White">
  <Slider 
    x:Name="slProgress" 
    Maximum="1" 
    Margin="48,0,131,15" 
    VerticalAlignment="Bottom"/>
  
  <TextBlock x:Name="tbValue" 
         Height="25"
         Text="{Binding Value, ElementName=slProgress}"
         HorizontalAlignment="Right" 
         Margin="0,0,46,8" 
         VerticalAlignment="Bottom" 
         Width="58" 
         TextWrapping="Wrap"/>
  
  <MediaElement x:Name="movie" 
          Source="SLBitRate.wmv" 
          AutoPlay="True" 
          Volume="{Binding Value, ElementName=slProgress}" 
          Margin="31,48,63,54"  />
</Grid>

Ved hjælp af denne specielle binding kan man altså binde en værdi på en kontrol fra en anden.

Text="{Binding Value, ElementName=slProgress}"

Tags:

Silverlight code camp i Odense og København

by Daniel 6. May 2009 13:44

Jeg har i samarbejde med Tenteo, de eneste Silverlight eksperter i Danmark, arrangeret 2 code camps udover den vi også holder i ANUG regi på Lørdag.

Silverlight er i lige nu i version 3 beta 1, og da jeg forventer RTW kommer i slutningen af juni (hæng mig ikke op på det), så er det pludselig blevet tid til at lave nye og spændende RIA applikationer. Hvis du skal med på vognen så er det nu!

D. 12 Juni har jeg lejet Ledernes Konferencecenter på Rugårdsvej 590 i DK-5210 Odense NV.

D. 23 Juni har jeg lejet Villa Wilders på Christianshavn i København.

Begge arrangementer er fra tidsrummet 10-16. Du skal have din egen bærbare computer med, og have installeret de bits det kræver at køre og udvikle Silverlight med Visual Studio.NET i forvejen.

På dagen vil Tenteo og jeg være til stede for, at give jer et par opgaver der skal løses med Silverlight, og forhåbentligt går du hjem med nok viden til, at kunne kode din egen Silverlight app!

Der er 20 pladser hvert sted, og du skal med garanti være hurtig.

Tilmeld dig her:

Code camp i Odense

Code camp i København

Tags:

Plastik operation, facelift, opstramning, fedtsugning…msdn.dk

by Daniel 6. May 2009 13:10

Det er meeeget bedre end det gamle site vi har haft, ihvertfald hvis du spørger mig og resten af det lokale DPE team.

MSDN.dk har fået helt nyt look, ja faktisk er det en helt ny platform der er blevet installeret på serveren. Det ser da super fedt ud, synes du ik ?

Når man tænker på, at vi lokalt, ikke kan ændre for meget i det vi bliver bedt om at implementere, så synes jeg stadig vi er sluppet rigtig godt ud af det. Ikke mindst fordi jeg har fået mit fjæs på forsiden af sitet!

Stor tak til hele teamet for at det kunne lade sig gøre, også håber jeg du allerede nu tjekker datoen for den næste TechTalk i Hellerup!

Tags:

DataService, DataContext og DataServiceContext, WCF Service, Web Service, god service ?

by Administrator 4. May 2009 08:58

Ovenstående typenavne og begreber har jeg det nødvendigvis ikke specielt svært med. Navnene er jo gode nok, men jeg synes dog de forvirrer mig og omverdenen når der skal gøre brug af dem.

Hvad er en DataService og hvad kan den ?

Med .NET 3.5 rammeværket kom der en ny ting i forbindelse med det alle har snakket om så længe. En REST service. ADO.NET Data Services er et fuldstændig hul-i-hovedet navn, men det er det trods alt blevet navngivet. En DataService og en ADO.NET Data Service er altså det samme, herfra kalder vi det en DataService. Og hvis jeg ikke vidste bedre, så ville jeg tro at min kollega, René Løhde havde opfundet begrebet REST, for det er virklig kommet ud af hans mund en del gange.

Det som en DataService skal bruges til er, at læse data. Data der kommer fra en vilkårlig kilde, om det er en database, en xml fil, en collection eller noget helt andet er fuldstændigt ligemeget. Man kan også godt begynde at gemme data igennem en DataService, men OB spiller heller ikke i jakkesæt vel ? Se på brugen af en DataService som et lag i en lagkage:

 

lagkage

Når du har lagt dit DataService lagkage lag ovenpå dit data lagekage lag, så kan du begynde at forspørge op imod de data, og det gøres ved hjælp af REST og…hold nu fast…en DataServiceContext.

DataServiceContext er til klienten

Hvis du gerne vil snakke med en DataService så har du mulighed for at gøre det ved hjælp af en DataServiceContext. Hvis du holder dig indenfor .NET rammeværket bør du sjældent selv implementere en DataServiceContext, men f.eks med Azure table storage er du nødt til det. Du tilføjer ganske simpelt bare en “service reference” indefra det strålende udviklingsværktøj ved navn Visual Studio og peger den på den DataService du gerne vil snakke med. Nu har du lige pludselig en fået et lag mere i din lagkage.

lagkage2

Det sexede ved både DataService og DataServiceContext typerne er at du ikke rigtig lægger mærke til dem med når du arbejder med dem, de gør bare det de skal. Som jeg nævnte tidligere så synes jeg kun en DataService skal bruges til at læse fra.

DataContext er hvad du får…

…når du arbejder med en af Microsofts OR/M’er. Så om du bruger LINQ 2 SQL eller Entity Frameworket, så ender altid ud med en DataContext i bunden.

 

 

Du kan pege din DataService på din REST enable din DataContext

http://msdn.microsoft.com/en-us/data/cc745957.aspx

Du kan pege din DataService på en collection af ikke-relationelle data

http://blogs.msdn.com/wriju/archive/2009/03/07/ado-net-data-services-non-relational-data.aspx

 

 

ADO.NET DataService skulle have været en binding i WCF stakken

Det er ikke alle der kender forskellen mellem en WCF service, ASMX service og nu en DataService, og derfor skulle istedet for at skabe mere forvirring med et nyt rammeværk, have lavet en DataService som en ny binding i WCF. Det samme gør sig gældende med ASMX webservices. Husk ligeledes at en DataService returnere specifikke ADO.NET typer.

Tags:

Powered by BlogEngine.NET 1.6.0.0
Theme by Mads Kristensen