Michells Mesterværk

Miracle holder Developer Aftenskole v. 2.0

by Administrator 31. August 2009 14:34

Fordi Developer Aftenskole v. 1.0 blev sådan en stor success har teamet bag intiativet valgt at afholde endnu en omgang.

Jakob Tikjøb Andersen som bla. har holdt en del præsentationer i både TechTalk og ‘NUG regi er bla. en af underviserne. Af en som kender Jakob’s tekniske evner, må det siges at være rigtig godt.

Emnerne på aftenskolen er som følger:

Object Relational Mapping (10-09-2009) /Jakob Tikjøb Andersen
Designing for extensibility (17-09-2009) /Jakob Tikjøb Andersen og Mikkel Hempel
Mocking (1-10-2009) /Jakob Tikjøb Andersen
Søgning (08-10-2009) /Anders Lybecker
Acceptance testing (22-10-2009) / Jakob Tikjøb Andersen

Du kan læse meget mere og tilmelde dig her.

Tags:

Hvad sker der i September 2009.

by Administrator 27. August 2009 08:52

Kalender must-haves

ramos_fall6

d. 8 – Mød Hank Janssen (http://danielfrost.dk/post/Mc3b8d-manden-bag-Microsofte28099s-engagement-i-og-udvikling-til-Open-Source-community.aspx)
d. 9 – WinDbg med MVP Brian Rasmussen i ONUG (http://onug.dk)
d. 10 – SPBG Deployment i Sharepoint (http://sharepointbrugergruppe.dk/Lists/Mder/DispForm.aspx?ID=13)
d. 11 – IronPython med Harry Pierson (http://www.microsoft.com/danmark/mdcc/news/ironpython.mspx)
d. 16 – Silverlight 3 TechTalk med Thomas Martinsen (http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032423679&Culture=da-DK)
d. 16 – AANUG AJAX (i Umbraco) med Jonas E. Høiby (http://aanug.dk/aanug/Events.aspx)
d. 17 – Dev days (http://devdays.dk)
d. 18 – ANUG fredagsbar (http://anug.dk)
d. 24 – CNUG Compilerkonstruktion med Irony (http://cnug.dk/kommende-moeder.aspx)
d. 24 – SharePoint dinner (http://sharepointbrugergruppe.dk/Lists/Mder/DispForm.aspx?ID=15)
d. 30 – Entity Framework 4.0 TechTalk (info kommer)
d. XX - .NetWorkingDinner (http://www.facebook.com/home.php#/group.php?gid=12979876617&ref=ts)

En godt pakket September måned.

Vi ses derude :)

Tags:

Udvikleren.dk

Mød manden bag Microsoft’s engagement i og udvikling til Open Source community.

by Administrator 25. August 2009 12:15

Hank Janssen er leder af Microsoft Open Source Technology Center og står bag de seneste kode-bidrag til Linux-kernen og samspillet mellem PHP og Windows platformen.

Hank har arbejdet med Unix og senere Linux i over 20 år inden han kom til Microsoft for 2½ år siden. Kom og hør Hank fortælle om sit arbejde og om de muligheder interoperabilitet mellem Microsoft og Open Source giver dig som udvikler.

open_source

Tid: Tirsdag den 8. September kl 15-17
Sted: Symbion, Fruebjergvej 3, 2100 København Ø

Mere om Hank Janssen: http://www.microsoft.com/opensource/heroes/hank.mspx

Tags:

Resx i Silverlight 3.0

by Administrator 25. August 2009 10:47

Jeg fik et spørgsmål af min kollega Martin Pamdeth den anden dag, et spørgsmål han havde taget med hjem fra en kunde der skulle lave nogle prototyper i Silverlight. Spørgsmålet gik noget ala “Kan man understøtte flere sprog i en Silverlight applikation, og kan man gøre dette uden at indblande udviklere ?”. Det korte svar er ja, men det er ikke specielt effektivt. Den mest effektive måde ville være at lave en applikation med X antal sprog resourcer, men det vil selvfølgelig kræve en udvikler at sætte dette op.

Hvis du ikke kender til resource filer i .NET så er dette et meget godt sted at starte.

Lad os tage den fra toppen :)

I mit Silverlight 3 projekt har jeg oprettet en mappe ved navn Resx. I den ligger de resourcer filer jeg har tænkt mig at tage udgangspunkt i.

Resx

Første trick er at vi skal have sat vores resx filer til generere noget “public” kode for os.

1tip

Dernæst skal vi sørge for at den kode har en public constructor.

 codebehind public

Så er vi faktisk klar til at bruge vores resourcer i vores applikation. Det kan gøre via XAML eller i kode. I dette eksempel gør vi det i XAML koden da det er en betyderligt sjovere øvelse.

Åben din App.xaml fil og få den til at se nogenlunde således ud:

<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:y="clr-namespace:Localization.Resx"
             x:Class="Localization.App">
    <Application.Resources>
        <y:Names x:Key="LocalNames" />
    </Application.Resources>
</Application>

Det som sker er, at vi har tilføjet den resource klasse som er blevet genereret for os, i toppen af dokumentet.

Nu kan vi bruge de resourcer der ligger i Localization.Resx namespacet overalt i vores applikation, men for at kunne gøre dette, er vi nødt til at lave en nøgle til dem igennem vores App.xaml.

Åben MainPage.xaml og få den til at se nogenlunde således ud:

<UserControl x:Class="Localization.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">
  <Grid x:Name="LayoutRoot">
        <Button Content="{Binding Path=Name, Source={StaticResource LocalNames}}" />
  </Grid>
</UserControl>

Her kan du at se at vi ikke engang har en reference til vores resourcer men blot kan kalde dem. I dette eksempel med databinding på en knap.

Path er navnet på selve nøglen i resource filen og StaticResource peger på vores resource nøgle fra App.xaml.

Hvis vi F5 nu vil vi se en knap med den værdi der står i Names.resx filen. Men hvad gør hvis vi gerne vil have mulighed for at skifte sprog ? Et par ting.

Først skal vi finde den fil der hedder DitSilverlightProjekt.csproj og åbne den med din favorit tekst editor. I den fil er der et tag ved navn SupportedCultures.

support

Jeg har såmænd bare specificeret 1 sprog (dansk) men man kan tilføje flere med , eller ; (da-DK;en-US;en-GB).

Det næste vi skal gøre er at ændre vores web.config fil.

<globalization uiCulture="auto" />

Og sidst men ikke mindst vores object tag i selve siden der hoster Silverlight xap filen.

<param name="uiculture" value="<%=System.Threading.Thread.CurrentThread.CurrentUICulture %>" />

Du kan naturligvis også sætte dette dynamisk i koden, f.eks i App.xaml.cs:

public App() {
    this.Startup += this.Application_Startup;
    this.Exit += this.Application_Exit;
    this.UnhandledException += this.Application_UnhandledException;

    System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo( "da-DK" );
    System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo( "da-DK" );

    InitializeComponent();
}

Hvis du vil teste om det virker kan du download kildekoden her.

Tags:

VS2010

OutputCache ændring i ASP.NET 4.0

by Administrator 24. August 2009 08:29

ASP.NET output caching tillader ikke caching af en side i browseren med mindre en obskur og knap så intuitiv metode bliver kaldt.

Der var en bug i ASP.NET 1.0 hvor output cachede sider, som specifikt brugte <@OutputCache Location="ServerAndClient" > ved en fejl blev tildelt en “Vary:*” HTTP header. Det havde den effekt, at browseren aldrig cachede siden lokalt.

I ASP.NET 1.1 blev der lavet et fix til netop dette issue og der blev derfor tilføjet en ny metode (System.Web.HttpCachePolicy.SetOmitVaryStar) som udviklere kunne bruge for at modarbejde den tidligere bug. Microsoft slog ikke buggen ihjel da teamet mente det ville skabe “a breaking change” så derfor lavede de dette fix.

I ASP.NET 4.0 kunne teamet dog godt tænke sig at fix roden på problemet ved simpelthen at eliminere den omstridte “Vary:*” header.

Hvis nogle af jer bruger System.Web.HttpCachePolicy.SetOmitVaryStar så bliver i ikke negativ berørt. Kaldet til SetOmitVaryStar vil ganske simpelt ikke betyde noget “behind the scenes”.

Dog skal man være opmærksom på, at man ikke længere kan stole på “Vary:*” når altså <@OutputCache Location="ServerAndClient"> optræder på en side. Til jer som gerne vil bruge “Vary:*” headeren, i kan tilføje den ved at kalde HttpResponse.AddHeader.

Tags:

VS2010

En “rigtig” SQL database i Azure

by Administrator 20. August 2009 08:34

Igår gik SQL Azure i CTP og det har min kollega René Løhde naturligvis blogget om. SQL Azure er basal set en SQL express database som du kender den bortset fra den bliver hostet i skyen.

Du kan læse Renés gode blogpost her og dernæst lidt om hvad det koster af have databasen kørende på Azure.

Tags:

Mit F# eventyr i Visual Studio 2010.

by Administrator 19. August 2009 13:38

Jeg har fået skidt på fingrene, simpelthen. Jeg har åbnet mit allerførste F# projekt i Visual Studio 2010 for at se hvor nemt det egentligt er, at lave integration imellem de to CLR sprog; F# og C#.

For at få F# til at virke med C# er man ligsom nødt til, at have et C# projekt også. Så det har jeg oprettet i samme solution som F# projektet.

Fsharp

Min F# kode er såre simpel. Jeg har kun en enkelt variabel som returnere en streng.

   1:  #light
   2:  open System
   3:   
   4:  let MinString = "Hej Daniel"

 

Jeg har lavet en reference til mit F# projekt fra mit C# projekt og kan nu kalde min F# streng fra C#. Simpelt er det, men det viser hvor nemt det nu er blevet at bruge et domæne-specifikt sprog i sit fortruke sprog.

   1:  namespace FSharpIntegration {
   2:      class Program {
   3:          static void Main( string[] args ) {
   4:              Console.WriteLine( Module1.MinString );
   5:              Console.ReadLine();
   6:          }
   7:      }
   8:  }

 

Læg mærke til at min F# streng er static på typen (selvom jeg aldrig har defineret en type) Module1. Module1 er navnet på F# filen og den bliver automatisk lavet til en CLR klasse når der compiles.

hej

Tags:

VS2010

Ejer du en lille virksomhed ? Så få mega billig software.

by Administrator 19. August 2009 10:57

BizSpark hedder det program som jeg her vil gøre lidt reklame for. Det koster kun 100USD at signe up men til gengæld for du også alt det software du har brug for, for at kunne udvikle og hoste din virksomheds produkt(er).

“BizSpark is an innovative global program designed to unite Startups and resources to support them into a single community. BizSpark is uniquely designed to help Startups engaged in software development, by offering Software, Support and Visibility”.

BizSpark_Tile

Noget af det software programmet inkludere er bla. Visual Studio 2008, Windows Server 2008, SQL Server 2008, Office SharePoint Server 2007 og Windows 7.

I læser mere om programmet og regler her og finder websitet her.

Tags:

Kom til Dev Days i Århus d. 17/9

by Administrator 18. August 2009 13:24

Manden bag ANUG, Søren Spelling Lund, har stablet en lille konference på benene i September måned i Århus. Emnet på hele dagen er arkitektur og der vil bla. være indlæg fra DBA. E-conomic, ZYB og Vertica. Jeg tror det bliver uhyre spændende og ser frem til at blive meget klogere på hvilke arkitektur-former der fungere bedst i praktis.

n118093856935_285

Arrangementet er helt gratis og du kan tilmeldes via Facebook.

Vel mødt!

Tags:

Optionelle parametre i C# 4.0

by Administrator 18. August 2009 09:56

En af de nye ting med C# 4.0 og Visual Studio 2010 er, at du kan lave kode med optionelle parametre. Jeg er ikke sikker på, at jeg bryder mig om muligheden men nu er den der ihvertfald :)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace OptionalParameters {
    class Program {
        static void Main( string[] args ) {
            Add( 1 );
            Add( 1, 10 );
        }

        static void Add( int p1, int p2 = 2 ) {
            Console.WriteLine( p1 + p2 );
            Console.ReadLine();
        }
    }
}

Tags:

VS2010

Windows 7 Training kit til Udviklere

by Administrator 17. August 2009 13:17

Windows 7 Training Kit for udviklere inkludere præsentationer, hands-on labs og demoer der er designet til at hjælpe dig med at bygge applikationer som er kompatible med Windows 7.

Du finder trænings kitet her:

http://www.microsoft.com/downloads/details.aspx?familyid=1C333F06-FADB-4D93-9C80-402621C600E7&displaylang=en

Er du samtidig nysgerrig om hvad der sker i Redmond omkring Windows 7 så kan du løbende tjekke vores nye Channel9 windows site.

http://channel9.msdn.com/windows/

God fornøjelse.

Tags:

VS2010

Windows Azure applikationen - #4 (afslutningen)

by Administrator 17. August 2009 09:19

Forrige entries.

Windows Azure!
Windows Azure – udviklingsoplevelsen!
Windows Azure applikationen - #1
Windows Azure applikationen - #2 (Table storage)
Windows Azure applikationen - #3 (Blob storage)

Nu da vi har set på de mest vitale dele af den Azure applikation jeg udviklede for et par måneder siden, vil jeg dele den færdige kode med jer. Der kunne måske godt tilføjes et par “try catches” hist og her, men som udgangspunkt så virker applikationen glimrende og det er en god mulighed for dig, at komme igang med både hosting delen af Windows Azure og den underliggende platform.

For at få applikationen til at virke efter hensigten skal du følge disse simple steps:

1. F5 på web_role’n

azureKickStart

2. Mens du debugger web_role’n skal du debugge FileUploader

fileuploader

3. Vælg en video fil fra FileUploader (tryk på Button)

Pickfile

FileUploader bruger en WCF service som led i at gemme filen i Azure. WCF og Azure er i skrivende stund noget som man skal vænne sig til, læs hvorfor af René Løhde.

Nu kan du hoppe tilbage til punkt 1 og refreshe siden, så skulle et nyt link gerne dukke op.

For at du kan åbne og debugge koden i Visual Studio skal du hente de både SDK og templates. Dem finder du ved at læse Windows Azure – udviklingsoplevelsen!

Koden findes her.

God fornøjelse.

Tags:

VS2010

Windows Azure applikationen - #3 (Blob storage)

by Administrator 17. August 2009 08:23

Forrige entries.

Windows Azure!
Windows Azure – udviklingsoplevelsen!
Windows Azure applikationen - #1
Windows Azure applikationen - #2 (Table storage)

Hvordan gemmer man data ?

Blob storage er noget der er blevet brugt i mange år og du kender det sikkert allerede. Ja, måske bruger du det endda. Blob står for “binary large object” og bliver ofte brugt til at gemme binar data med.

En af de muligheder du får når du opretter et hosted storage projekt på Windows Azure er netop blob storage. Og det er den nemmeste form for storage at arbejde med, ihvertfald hvis du spørger mig. På den anden side er det ikke så ofte man måske har brug for det.

Jeg antager at du har få oprettet et hosted storage projekt på Azure.com portalen og er klar til at lave din første blob storage løsning. Her er ingredienserne.

Du skal tilføje 2 referencer (ligsom med Table storage – se #2 i blog serien).

referencer

   1:  using System;
   2:  using Microsoft.ServiceHosting.ServiceRuntime;
   3:  using Microsoft.Samples.ServiceHosting.StorageClient;
   4:  using System.Collections.Specialized;
   5:  using System.Net;
   6:   
   7:  namespace CloudService1_WebRole {
   8:      public partial class _Default : System.Web.UI.Page {
   9:          protected void Page_Load( object sender, EventArgs e ) {
  10:              BlobStorage storage = BlobStorage.Create( StorageAccountInfo.GetDefaultBlobStorageAccountFromConfiguration() );
  11:   
  12:              BlobContainer container = storage.GetBlobContainer( "movies" );
  13:   
  14:              if ( !container.DoesContainerExist() ) {
  15:                  try {
  16:                      container.CreateContainer( new NameValueCollection(), ContainerAccessControl.Public );
  17:                  } catch {
  18:                      throw new WebException();
  19:                  }
  20:              }
  21:   
  22:              BlobProperties blobProps = new BlobProperties( "myBlob" );
  23:   
  24:              NameValueCollection blobMetadata = new NameValueCollection();
  25:              blobMetadata[ "title" ] = "Shogun assasin";
  26:              blobMetadata[ "producer" ] = "Huan sin paw";
  27:   
  28:              blobProps.Metadata = blobMetadata;
  29:   
  30:              try {
  31:                  container.CreateBlob( blobProps, new BlobContents( new Byte[ 10 ] ), false );
  32:              } catch {
  33:                  throw new WebException();
  34:              }
  35:          }
  36:      }
  37:  }

På kode linie 10 specificere vi, at det er BlobStorage vi gerne vil arbejde med. Den tager udgangspunkt i nogle konto oplysninger som den finder i .csfg filen for projektet.

config

På linie 12 forsøger vi at få fat i den blob container der hedder “movies”. Hvis den ikke findes opretter vi den ude i skyen.

Fra linie 22 og nedefter opretter både egenskaber og metadata for vores blob, derfor gemmer vi det via CreateBlob metoden. Der er kun dummy data der bliver gemt i dette tilfælde (Byte[10]).

Så nemt er det faktisk at gemme data i Azure blob storage. Og det er ligeså nemt at få data tilbage igen :)

Hvordan får man data tilbage igen ?

I dette lille eksempel vil jeg meget hurtigt demonstrerer hvordan man ved ganske lidt kode kan få fat i sit blob efter man har gemt det i skyen.

   1:  private Stream _blobStream;
   2:   
   3:  private void SetBlobContents() {
   4:      Stream stream = new MemoryStream();
   5:   
   6:      this.blobContents = new BlobContents( stream );
   7:  }
   8:   
   9:  private void SetBlobStream() {
  10:      _blobStream = this.blobContents.AsStream;
  11:  }
  12:   
  13:  public BlobProperties GetBlob() {
  14:      if ( this.blobContents == null ) {
  15:          this.SetBlobContents();
  16:      }
  17:   
  18:      try {
  19:          BlobProperties blob = _BlobContainerUtil.blobContainer.GetBlob( this.BlobName, this.blobContents, false );
  20:          
  21:          this.SetBlobStream();
  22:   
  23:          return blob;
  24:      } catch { 
  25:          //log
  26:      }
  27:   
  28:      return null;
  29:  }

Faktisk er noget af det der er rigtigt lækkert med Azure er, at du ikke selv skal sætte de mange bytes sammen selv, men får ganske simpelt den fil tilbage du har uploadet (hvis det altså er en fil du arbejder med).

I vil se hvordan jeg i den endelige applikation bruger noget denne funktionalitet i sammenspil med bla. en WCF service.

Tags:

VS2010

Embed en Silverlight player

by Daniel 14. August 2009 11:19

Jeg har lavet en Silverlight videoplayer som du frit og kvit kan embede på din egen blog/website/etc.

Du finder videoplayeren på: http://video.danielfrost.dk/danielfrostdk_embed.aspx?mediaUrl=DIN_MEDIA_FIL

Du kan så smække den ind i en Iframe såsom: <iframe frameborder="0" src="http://video.danielfrost.dk/danielfrostdk_embed.aspx?mediaUrl=http://msdncommunity.dk/media/158484/tablestorage.wmv" height="500" width="600"></iframe>

Koden til video playeren finder du her.

Tags:

Windows Azure applikationen - #2 (Table storage)

by Administrator 14. August 2009 11:12

Hvis du ikke har læst Windows Azure – udviklingsoplevelsen! så anbefaler jeg det før du går videre.

Inden du ser webcasten skal du være opmærksom på et par ting mht. tables og Azure. Table storage er ikke en normal SQL database, du har ikke adgang til den via noget interface / program, den kan tilgåes ved at REST og programmelt. Det vigtigste med en Tables er, at forstå RowKey og PartionKey. En RowKey er en unik nøgle som du selv skal sørge for at sættee og holde styr på. En PartionKey er noget du skal bruge når du har rigtigt meget data, så du kan dele dine data op og nemmere søge i det. Data med den samme PartionKey vil altid blive gemt samme sted. Du skal se disse to nøgler som indexes og det er derfor vigtigt du gør dig nogle tanker om hvordan du vil bruge dem.

Koden fra webcasten kan du finde her.

God fornøjelse.

 

Tags:

Windows Azure applikationen - #1

by Administrator 14. August 2009 11:11

I forbindelse med 2 arbejdsrelaterede udlandsture i Juni og Juli, udviklede jeg en applikation som bruger dele af Windows Azure (Windows Azure!, Windows Azure – udviklingsoplevelsen!). Nemlig Tables og Blobs, som er en del af Windows Azure kernen.

Sådan her ser applikationen ud på det whiteboard der står ved siden af min kontor plads. Ganske nydeligt, ik’ ? Ideen var at lave en applikation hvorigennem man både kan gemme videofiler og se dem igennem en Silverlight løsning.

IMG_3258

I praksis har jeg udviklet et par forskellige dele for at opfylde denne tegning. Det mest interessante i udviklingen, har nok været selve det API som taler med den storage model der ligger i Azure.

Lad mig starte med at redegøre for hvad storage er i Windows Azure kernen, for det er nemlig ikke helt den samme form for database som f.eks en SQL server eller anden form for RDBMS.

tables

En tabel i Azure storage modellen ligner meget en almindelig tabel, som den ser ud i databasen. Du har en tabel (Table 1) som har nogle rækker (Entity X), og hver række har nogle kolonner (Properties).

Det som er specielt ved disse tabeller er, at de kan rumme exceptionelt meget data (millareder af entiteter), de bliver replikeret mindst 3 gange som sikkerhed for at intet går tabt, dine data bliver automatisk skalerbare når trafikken øges, du har altid adgang til dine data og kan tilgå dem hvorfra du vil. Det var i store træk “the selling points”, men der er naturligvis også andre og mere tekniske dele af tables. Men det skal jeg nok komme til.

blobs

Blobs (binary large object) bliver ofte brugt til at gemme binær data. F.eks data fra en video fil eller et billede. Det samme gør sig gældende med blobs i Azure storage modellen. Når du opretter en Azure Storage konto så får du adgang til et sæt endpoints hvor bla. blobs kan tilgåes fra. Det samme gælder forøvrigt tables og den såkaldt tredje mulighed; queues.

Blobs bliver gemt i noget der kaldes containers som hænger sammen med den storage konto du gemmer den under. Med blobs kan du gemme meget store entiteter/objekter (op til 50gb), du kan hæfte metadata på hver af dem og samtidig også hæfte metadata på hver container du har. I modsætning til tables, har du ikke mulighed for selv at oprette specielle former for blobs – det er ganske enkelt bare en “data dumpster”.

account

For kort at opsumere, så kan du, når du har oprettet en storage konto på Azure websitet, kalde dine storage endpoints, som teknisk set er REST baseret og derfor muliggøre det at kalde med stort set hvilken teknologi du måtte have lyst til. Det ser vi på inden længe. Både tables og blobs tilgåes lettest (i skrivende stund) ved hjælp af det Azure SDK som kan downloades frit og kvit. I det SDK findes der er en række samples, deriblandt ligger en fil ved navn StorageClient.dll som vi kommer til at bruge over hele vores projekt.

Tags:

VS2010

POST data

by Daniel 12. August 2009 14:03

Indtil igår var jeg ikke klar over hvordan man opsamler data fra en automatisk HTTP POST. Det er noget man som udvikler gør dagligt, men ofte i forbindelse med en <form> eller et WebService kald. Jeg har nørdet lidt rundt med Azure storage modellen og der arbejder “vi” kun med REST, så derfor synes jeg det virkede oplagt og interessant at finde ud af hvordan man kan lave en POST fra sin kode. Det med at POST’e data fra en side til en anden er ikke specielt svært, men jeg synes ikke det var synligt hvordan man skulle opfange de POST’ede værdier.

Herfra laver jeg en POST.

using System;
using System.IO;
using System.Net;
using System.Text;
using System.Web.UI;

namespace WebApplication8 {
    public partial class WebForm1 : Page {
        protected void Page_Load( object sender, EventArgs e ) {
            HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create
( "http://localhost:1503/Default.aspx" ); webRequest.Method = "POST"; webRequest.Accept = "*/*"; webRequest.KeepAlive = true; String postData = "var1=value1&var2=value2"; Byte[] postBytes = Encoding.UTF8.GetBytes( postData ); webRequest.ContentType = "application/x-www-form-urlencoded"; webRequest.ContentLength = postBytes.Length; using ( Stream dataStream = webRequest.GetRequestStream() ) { dataStream.Write( postBytes, 0, postBytes.Length ); } } } }

Og her fanger jeg værdierne.

using System;
using System.Web.UI;
using System.IO;

namespace WebApplication8 {
    public partial class _Default : System.Web.UI.Page {
        protected void Page_Load( object sender, EventArgs e ) {
            StreamReader reader = new StreamReader( Request.InputStream );
            String r = reader.ReadToEnd();
            Response.Write( r );
        }
    }
}

Tags:

ASMX WebService fra ASP

by Daniel 11. August 2009 09:24

Det er rimlig gamle teknologier vi arbejder med i den her post, men tro det eller ej, de er stadig “in” hos mange mennesker.

Jeg tænke på hvorvidt det er muligt at lave en webservice kald fra et ASP script. Det var sørme ikke så svært :)

<%
Option Explicit

Dim strWebServiceAddress 
Dim objXML
Dim objXMLDocument
Dim Root
Dim i

strWebServiceAddress = "http://localhost/WebService.asmx/HelloWorld"

Set objXML = Server.CreateObject("Microsoft.XMLHTTP")
Call objXML.Open("GET", strWebServiceAddress, False)
objXML.Send

Set objXMLDocument = Server.CreateObject ("Msxml2.DOMDocument.3.0")  
objXMLDocument.async = false
objXMLDocument.loadXML (objXML.ResponseText)


Set Root = objXMLDocument.documentElement 
For i = 0 To (Root.childNodes.length - 1)
   Response.Write(Root.childNodes.item(i).text & "<br>") 
Next

%>

Det sværeste i den her øvelse var faktisk at finde noget dokumentation på XML Dommen, men det lykkedes.

Tags:

Tjek om Silverlight er installeret på klienten

by Administrator 10. August 2009 11:59

Det er et mindre indgreb der skal til for, at tjekke om Silverlight er installeret på klientens maskine. Det gøres simpelthen via den javascript fil der følger med i et Silverlight projekt – Silverlight.js.

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <script src="Silverlight.js" type="text/javascript"></script>
    <script type="text/javascript">
        function HelloSilverlight() {
            if (Silverlight.isInstalled) {
                alert('yup');
            }
        }
    </script>
    <title>Silverlight check</title>
</head>
<body onload="HelloSilverlight()">
    <div>
    
    </div>
</body>
</html>

Tags:

VS2010

Powered by BlogEngine.NET 1.6.0.0
Theme by Mads Kristensen