Welcome to MSDN Blogs Sign in | Join | Help

Silverlight dag i Cinemaxx i Århus og København - downloads + det løse

Howdy howdy :o)

I sidste uge fik vi jo afholdt vores Silverlight introduktionsdag i hhv. Århus (om tirsdagen), og i København (om torsdagen), og det var Martin Eiler (Valtech), Niels Hartvig (Umbraco) havde æren af at holde mikrofonen (eller rettere... Det er sådan en ståltrådsdimmer man skal snurre rundt om hovedet, så den på yderst irreterende vis kommer op at slås med ens brillestænger),

Vi havde delt dagen op i 4 bidder (3 om Silverlight 1.0, og 1 om Silverlight 1.1), og vi viste lidt forskellige eksempler undervejs. Eksemplerne mv. bliver lagt op på MSDN inden for rimelig tid (forhåbentlig i løbet af ugen), men indtil da kan mine egne bidrag hentes her:

Powerpoint-præsentationen for første og fjerde session.
Silverlight 1.0 demo'er.
Silverlight 1.1 demo'er.

Og bare sådan lige for god ro og ordens skyld, så kan du selvfølgelig bruge det som du har lyst til - både slides og demo'er :o)

Jeg viste også et par af de eksempler der er lagt til download på Silverlight udviklersiden, og der ligger mange andre du kan bruge som inspiration, hvis du vil igang med lege lidt med Silverlight.
Silverlight 1.0 eksempler.
Silverlight 1.1 eksempler.

Som jeg fortalte har vi planer om at lave en 2-3 TectTalks omkring Silverlight, hvor vi går lidt mere i dybden med specifikke dele af teknologien. Jeg har allerede fået et par forslag ind som kunne være relevante at tage fat på, men hvis der er forhold du godt kunne ønske dig blev behandlet, synes jeg du skal lægge en kommentar om det her, så de kan komme med i puljen.

Mange tak til Martin og Niels for jeres indsats - det var superfedt at i kunne (og ville) afse tid til at komme og fortælle om jeres erfaringer med Silverlight, og jeg håber vi snart ses igen :o)

Og til alle jer der deltog... Det var fedt i kom - det havde bestemt ikke været det samme uden jer ;o)

Og så var der lige en sidste ting... Som vanligt når vi holder den slags arrangementer var det Seelite der stod for teknikken, og om torsdagen havde de sågar hanket op i en harddisk recorder - så vi burde modtage et dump af lyd og billede en af de nærmeste dage, og jeg håber vi kan finde et par highlights imellem (som f.eks. Niels der forklarer hvad sådan et Powerpoint fjernbetjenings device i virkeligheden hedder ;o)... Jeg skal nok lægge et par teasere ud her, hvis kvaliteten på pladerne er til det :o)

Mvh
Jeppe 

Posted by jepper | 1 Comments

Quiz : ViewState - Trin2

Nu skrev Nicolai jo ganske rigtig, at der ikke renderes noget til __VIEWSTATE i eksemplerne skrevet i trin1 af denne ViewState quiz, men det er jo en smule sært er det ikke?!?

Hvis vi kigger på implementeringen af .Text på en TextBox, ser den sådan her ud:

public virtual void set_Text(string value) { this.ViewState["Text"] = value; }

ViewState er altså backend for bemeldte property, hvilket vil sige, at .Text ALTID skrives til ViewState, men det renderes IKKE til __VIEWSTATE - Hva' fa'en er nu det for noget kludder?!?

Well... hele idéen med denne quiz er sådan set, at vi skal have afkludret det, og finde ud af hvad det er der foregår, og hvad det kan være rart at være bekendt når man arbejder med diverse ASP.NET kontroller.

At TextBox'ens indhold kan findes i ens formscollection (som Nicolai skrev) er selvfølgelig helt korrekt, men det medfører ikke at det er uinteressant at gemme indholdet af .Text i __VIEWSTATE, for hele pointen er, at det der ligger i __VIEWSTATE er det der viser hvordan verden så ud da siden blev renderet, og ikke hvordan verden ser ud når siden rammer serveren igen (hvor indholdet jo kan læses direkte i input-felterne) - og hvornår er det overhovedet interessant... Altså både at kende initialværdien (fra __VIEWSTATE->ViewState), og den nuværende værdi (fra formscollection)?

Det kan det være i flere situationer, så her kommer en udvidelse af de tidligere viste eksempler som vil vise én af dem.

1)
Følgende markup:

<asp:TextBox ID="t0" runat="server" Text="En masse tekst" OnTextChanged="t0_TextChanged"></asp:TextBox>

2)
Følgende markup:

<asp:TextBox ID="t1" runat="server"></asp:TextBox>

Og følgende kode:

protected void Page_Load(object sender, EventArgs e) { t1.Text = "En masse tekst"; t1.TextChanged += new EventHandler(t1_TextChanged);' }

3)

Følgende kode: 

protected void Page_Load(object sender, EventArgs e) { t2.Text = "En masse tekst"; } protected override void OnInit(EventArgs e) { base.OnInit(e); t2 = new TextBox(); t2.ID = "t2"; t2.TextChanged += new EventHandler(t2_TextChanged); form1.Controls.Add(t2); }

4)
Følgende kode:

protected void Page_Load(object sender, EventArgs e) { TextBox t3 = new TextBox(); t3.ID = "t3"; t3.Text = "En masse tekst"; t3.TextChanged += new EventHandler(t3_TextChanged); form1.Controls.Add(t3); }

5)
Følgende kode:

protected void Page_Load(object sender, EventArgs e) { TextBox t4 = new TextBox(); t4.ID = "t4"; form1.Controls.Add(t4); t4.TextChanged += new EventHandler(t4_TextChanged); t4.Text = "En masse tekst"; }

Et eller andet sted giver det en vis grad af mening, at det at man abbonnerer på hændelsen at indholdet i en TextBox ændrer sig, medfører et rimeligt behov for at kende både initialtilstanden, og den nuværende tilstand. Hvis der ikke abbonneres på hændelsen, er der faktisk ingen grund til nogensinde at gemme initialtilstanden i __VIEWSTATE - kun den aktuelle værdi er interessant, og det er noget som TextBox'en selv står for.

Som der blev skrevet om i "sidste afsnit" kalder frameworket SaveViewState på kontrollerne i kontroltræet inden siden renderes. SaveViewState er en virtuel metode på Control-klassen, og en TextBox har sin egen implementering som følger:

protected override object SaveViewState() { if (!this.SaveTextViewState) { // implementeringen her kommer vi til senere } kald til basen } private bool SaveTextViewState { get { if (this.TextMode == TextBoxMode.Password) { return false; } if (((base.Events[EventTextChanged] == null) && base.IsEnabled) && ((this.Visible && !this.ReadOnly) && (base.GetType() == typeof(TextBox)))) { return false; } return true; } }

Læg mærke til at der bl.a. spørges på
base.Events[EventTextChanged] == null
Hvilket vil være tilfældet hvis der ikke er abbonneret på TextBox'en TextChanged-event, hvilket så altså resulterer i at .Text ikke skrives til __VIEWSTATE.

Men nu et par spørgsmål til :o)

1)
Når nu vi på alle TextBox'e har abbonneret på TextChanged... Vil de så alle få renderet .Text til __VIEWSTATE?
Og hvis ikke - hvilke vil så IKKE ske for?

2)
Hvis teksten ændres i alle TextBox'e, og der sker et postback, vil det så ændre hvilke TextBoxe der får renderet .Text til __VIEWSTATE?

3)
Vil 4 og 5 opføre sig forskelligt? Og i givet fald - hvorfor?

Mvh
Jeppe

Posted by jepper | 0 Comments
Filed under: ,

Quiz : ViewState - hvordan var det nu lige det var med det?!?

Se... Nu rammer vi jo så en lille utrilstrækkelighed ved quiz'er på nettet :o)
Det er nemlig en forudsætning for at deltage i quiz'en, at du IKKE prøver nedenstående af, men blot giver dit bedste bud på hvad du regner med der sker.

Vi starter med 5 X Indsættelse af en TextBox, og spørgsmålet til alle 5 er:
Når siden vises i browseren, hvilke data er så blevet renderet til det skjulte felt __VIEWSTATE, og hvorfor?

Og husk - ikke noget med at prøve det af inden du svarer ;o)

1)
Følgende markup:

<asp:TextBox ID="t0" runat="server" Text="En masse tekst"></asp:TextBox>

2)

Følgende markup:

 

<asp:TextBox ID="t1" runat="server"></asp:TextBox>

 

Og følgende kode:

protected void Page_Load(object sender, EventArgs e) { t1.Text = "En masse tekst"; }

 

3)

Følgende kode:

 

protected void Page_Load(object sender, EventArgs e) { t2.Text = "En masse tekst"; } protected override void OnInit(EventArgs e) { base.OnInit(e); t2 = new TextBox(); t2.ID = "t2"; form1.Controls.Add(t2); }

 

4)
Følgende kode:

 

protected void Page_Load(object sender, EventArgs e) { TextBox t3 = new TextBox(); t3.ID = "t3"; t3.Text = "En masse tekst"; form1.Controls.Add(t3); }

 

5)
Følgende kode:

 

protected void Page_Load(object sender, EventArgs e) { TextBox t4 = new TextBox(); t4.ID = "t4"; form1.Controls.Add(t4); t4.Text = "En masse tekst"; }

 

Kom med et par bud på ovenstående, og så må vi se hvad denne quiz kan udvikle sig til (der er jo andet i ASP.NET end tekstbokse ;o).

Og en sidste ting... Der er igen mulighed for sådan et sæt her:

Mvh
Jeppe

Posted by jepper | 7 Comments
Filed under: ,

Quiz for de kaffeinteresserede : Er der nogle der kan regne den her ud ?

- Og denne gang er der noget på højkant!

Vi må ta' et lille kig på dynamisk indsatte UserControl's, så lad os få kridtet banen op :o)

I forbindelse med en lille løsning du sidder og hygger dig med, har du lavet en mindre UserControl:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ExtraOptions.ascx.cs" Inherits="ExtraOptions" %> <!-- Diverse kontroller her -->

Med nedenstående kode:

public partial class ExtraOptions : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { // En masse kode der læser data, manipulerer kontroltræer og ændrer verden. } public void SetDefaultChoice(string choiceText) { // En eller anden implementering } }

Og du skynder dig at gå igang med at bruge den.

Nu hedder kontrollen jo ExtraOptions og skal være en tilføjelse på forskellige sider, i forskellige situationer, og du vælger en løsning, hvor den indsættes dynamisk, baseret på en parameter i QueryString, og laver på én af dine sider noget i denne stil:

public bool ShowExtraOptions { get { bool extraOptions = false; bool.TryParse(Request.QueryString["ExtraOptions"], out extraOptions); return extraOptions; } } protected void Page_Load(object sender, EventArgs e) { if (ShowExtraOptions) { // du loader kontrollen Control extraOptions = LoadControl("ExtraOptions.ascx"); // typecaster og kalder noget kontrolspecifikt ((ExtraOptions)extraOptions).SetDefaultChoice("Choice2"); // og tilføjen kontrollen til en placeholder UxDynamicControlContainer.Controls.Add(extraOptions); } }

Du fortsætter nu med andre ting, og er slet ikke opmærksom på at du netop har skrevet et stykke risikabelt kode, og samtidig påpeget en væsentlig uhendsigtmæssighed i ASP.NET!

Nu er spørgsmålet jo så:

Hvad er det du har gjort der ikke er godt nok, og hvad er det for en uhendsigtsmæssighed jeg snakker om?

Og som skrevet er der er denne gang en præmie at vinde, nemlig sådan en kop her:

"Uhh buhh - en tiger - den har vi da set før!!!"

Jahh - det har i jo sikkert, men den bliver naturligvis fyldt med nogle kaffebønner der er lidt ud over det sædvanlige, så nu har du muligheden for at smage kaffen du aldrig ville købe selv ;o)


Mvh

Posted by jepper | 17 Comments
Filed under: ,

Første møde i den århusianske .NET brugergruppe - en klar succes!

Jeg var ligesom 14(!) andre til møde i den nu opstartede Århus .NET Usergroup i onsdags, og det var en rigtig fed aften!

Søren havde fundet den gule førertrøje frem fra skabet, og med den på sikrede han at vi kom igennem alle punkter på den foreslåede agenda - og det endda i rigtig go' stil!

Der blev landet nogle glimrende aftaler for gruppens fremtidige virke, og én af de vigtigere jeg kan nævne er, at gruppen vil afholde møde den sidste onsdag i hver måned - så bare sæt kryds i kalendere, og duk op næste gang :o)

Efter mødet smuttede vi (nogle af os ad omveje) ned på Café Svej, og sluttede mødet af over et par fadøl - superhyggeligt!

       

Da Morten og jeg selv tilsyneladende havde fået nogle ringere fadøl end de andre, og deraf havde vanskeligere ved at få tømt glassene, endte vi med at være de sidste der sad tilbage, og Morten fik lejlighed til at demonstrere sine færdigheder ud i vejvisning og tværkulturel kommunikation, da 3 nordmænd (alle i et ualmindeligt godt humør) måtte ty til hans hjælp for at finde den rigtige bar... Og lad mig bare afsløre, at det nok ikke var deres plan at tage hverken deres mødre eller koner med derhen ;o).

Nå - men efter et par enkelte svinkeærinder (hvor vi f.eks. blev budt op til dans på ægte bonderøvsvis.. Altså "ska' vi slåz?" rutinen, fremsnøvlet af et par halvstive drønnerter) sluttede vi natten, ca. 4 timer før jeg skulle have toget igen, med lidt Silverlight og en kop kaffe... Alt i alt en forrygende aften :o)

Jeg tror der i Århus .NET brugergruppen er potentiale til en rigtig god og solid brugergruppe. Dels synes der er være stærke kræfter der vil arbejde på at få den på skinner, og dels virker det som om den sammensætning af udviklere der har ladet sig tiltrække af den, har meget at tilbyde hinanden.


Jeg er meget overbevist om at du trygt kan tilmelde dig i forvisning om at du kommer til at få rigtig meget godt ud af det.

Mvh

Opdatering af Ajax Control Toolkit

Nu har jeg nævnt projektet her nogle gange, og kommer nok til at gøre det igen ;o)

Jeg synes det er et supergodt projekt, og en meget væsentlig pakke for ASP.NET udviklere, der ønsker at udnytte Ajax (og det er jo naturligvis jer allesammen ;o)

Scott har selvfølgelig beskrevet highlights i opdateringen, og du kan læse om dem her. Selve toolkit'et kan hentes på CodePlex.

Hvis du ikke har prøvet toolkit'et endnu har du noget at glæde dig til - personligt synes jeg det har rigtig meget godt at byde på, og at det kontinuerligt bliver bedre er jo fedt :o)

Og... Skulle du gå i stå et eller andet sted i processen omkring at tage det i brug, er du meget velkommen til at smide en kommentar her, eller skrive til mig direkte - så skal jeg se hvad jeg kan gøre :o)

Mvh
Jeppe

Posted by jepper | 1 Comments
Filed under:

Ajax / Silverlight præsentationer og eksempler

Jeg har på det seneste talt en del om Ajax, og en smule om Silverlight. I den forbindelse har jeg benyttet lidt forskellige eksempler som kan downloades her.

Zip-filen indeholder 2 forskellige solution's. Den ene viser en række Ajax-eksempler, og den anden viser - på et par forskellige måder - hvordan man kan få et Silverlight objekt instantieret i browseren, og scripte imod det (JavaScript). Desuden er der et eksempel på en Silverligth Extender, der giver mulighed for at extende et Panel til en Silverligth-container.

Der ligger også en ppt-fil jeg nogle gange har vist lidt af, og i slutningen af den er der en række links - bl.a. til de værtøjer jeg har benyttet i forbindelse med præsentationerne (f.eks. Nikhil Kothari's Web Development Helper).

Jeg håber i kan bruge eksemplerne til noget, og i er meget velkomne til at kommentere her - eller skrive til mig direkte - hvis i savner noget i eksemplerne.

Mvh
Jeppe

ASP.NET Ajax i Cinemaxx, Århus - download eksempler

Så er dagen hvor Niels Hartvig og undertegnede var i Århus for at fortælle lidt om Ajax jo både kommet og gået, og jeg håber at alle jer der deltog fik noget ud af det :o)

Hvis du var med, eller bare godt kunne tænke dig at finde ud af hvad der foregik, kan du hente en zip'er her med repræsentative eksempler fra dagen.

Der var gang i lidt forskellige solutions undervejs, så hvis der er noget du mangler i det jeg har oploadet må du bare råbe op, så skal jeg nok eftersende det (min direkte @mail står i præsentationen, og på Default.aspx i den solution der ligger i zip-filen). Powerpoint præsentationen jeg brugte ligger der også. 

Og Niels - hvis uploadhastighed må være enormt meget hurtigere end min ;o)  - har også lagt sin løsning til download, og den kan du finde her.

Niels: Det var superfedt at du havde tid og lyst til at komme og snakke med, og jeg håber vi kan finde ud af noget en anden gang :o)

Mvh
Jeppe

Posted by jepper | 8 Comments

ASP.NET AJAX på det store lærred :o)

Hvis du synes du skylder at bruge lidt tid på at finde ud af hvad ASP.NET AJAX egentlig er, og hvad du kan bruge det til, så kommer der en god mulighed for det den 15/5-2007.

Jeg tager til Cinemaxx i Århus, og fortæller om lidt af hvert om AJAX / ASP.NET AJAX, og Niels Hartvig fra Umbraco runder dagen af med en præsentation af brugen af AJAX i et CMS som Umbraco.

Du kan se Dorthe's annoncering af arrangementet her, og tilmelding kan foregår her.

Kig forbi hvis du har tid, og hvis vi er stødt på hinanden tidligere (online eller offline), så kom ned på scenen og tag fat i mig... Jeg bliver i Århus til den 16, så vi kan sagtens smutte ud og finde en "kop kaffe" bagefter ;o)

Håber vi ses :o)

Mvh
Jeppe

Posted by jepper | 4 Comments

At the end of the tunnel there is ... SILVERLIGHT!!!

Kender du det der med at man sidder med alle de der fede idéer oppe i hovedet til hvordan ens nye - og alt for cool'e website - skal se ud...?

Man har de vildeste planer om den topsejge brugergrænseflade man skal lave, og når man så fyrer op under Visual Studio, og kaster et blik i toolbox'en ser man... Akja... f.eks. en DropDownList og en CheckBox - som jo altså ikke er noget der helt giver den der Wauw-oplevelse...?

Næh... Nogle gange kunne man ønske sig lidt mere lir i browseren, hvilket Silverlight er et glimrende værktøj til.


Silverlight - tidligere WPF/E - giver nogle fede muligheder for at vise lækker grafik og video i browsere. Helt grundlæggende er der tale om, at et subset af WPF bringes ud til klienten i form af et plug-in, hvorefter man har mulighed for at vise en brugerflade bekrevet i XAML.

Læs iøvrigt Bo's indlæg som Silverlight.

Lad os tage et hurtigt eksempel (koden kan hentes her):

Hvis vi tager udgangspunkt i følgende XAML-fil, (den slags kan laves i hånden, eller med et værktøj som Expression Blend):

<Canvas xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Loaded="javascript:onCanvasLoaded" > <Canvas.Background> <LinearGradientBrush> <GradientStop x:Name="start" Color="#ffffff" Offset="0.0" /> <GradientStop x:Name="end" Color="#000000" Offset="1.0" /> </LinearGradientBrush> </Canvas.Background> <Canvas.Triggers> <EventTrigger RoutedEvent="Canvas.Loaded"> <EventTrigger.Actions> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetName="r1" Storyboard.TargetProperty="Angle" From="0" To="360" Duration="0:0:5" AutoReverse="True" RepeatBehavior="Forever" /> <DoubleAnimation Storyboard.TargetName="r2" Storyboard.TargetProperty="Angle" From="360" To="0" Duration="0:0:5" AutoReverse="True" RepeatBehavior="Forever" /> <ColorAnimation Storyboard.TargetName="start" Storyboard.TargetProperty="Color" From="#000000" To="#ffffff" Duration="0:0:3.5" AutoReverse="True" RepeatBehavior="Forever" /> <ColorAnimation Storyboard.TargetName="end" Storyboard.TargetProperty="Color" From="#ffffff" To="#000000" Duration="0:0:5.5" AutoReverse="True" RepeatBehavior="Forever" /> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger> </Canvas.Triggers> <TextBlock x:Name="s1" Text="Silverlight" FontFamily="Arial" FontSize="60" FontWeight="Bold" Foreground="Silver"> <TextBlock.RenderTransform> <RotateTransform x:Name="r1" /> </TextBlock.RenderTransform> </TextBlock> <TextBlock x:Name="s2" Text="Silverlight" FontFamily="Arial" FontSize="60" FontWeight="Bold" Foreground="Silver"> <TextBlock.RenderTransform> <RotateTransform x:Name="r2" /> </TextBlock.RenderTransform> </TextBlock> </Canvas>


Så kræver der egentlig ikke så meget andet, end at man sørger for at instantiere Silverlight i browseren. Det er vanen tro forskelligt fra browser til browser hvordan den slags foregår. I IE er det et spørgsmål om et object-tag, og i FireFox og Safari et embed-tag.
Det kræver som nævnt et lille plug-in (ca. 2MB), hvilket der så skal henvises til, hvis det ikke er installeret, men alle den slags forhold, kan man heldigvis slippe for at bekymre sig om, da man kan benytte agHost.js som ligger i SDK'et. En lille JavaScript-fil, hvor bemeldte elementer er implementeret.

Benyttes den, skal man blot instantiere et agHost objekt, hvilket kan gøres reletivt let:

Først et panel der kan huse kontrollen:

<asp:Panel ID="agControlHost" runat="server" />

Og et script til at sørge for at man får vist sit Silverlight objekt (baseret på xaml-filen):

<script type="text/javascript"> new agHost( "agControlHost", // "agControl", "100px", "100px", "#000000", null, "SomeXaml.xaml" ); </script>


Hvilket så blot kræver at man sikrer at agHost.js kommer med ud til browseren:

<script type="text/javascript" src="aghost.js"></script>

Typisk vil det være interessant også at kunne skrive noget client-side kode mod sit Silverlight-objekt, hvilket selvfølgelig også er muligt.
I eksemplet kunne det f.eks. være hensigtmæssigt, at sikre sig at noget omkring størrelser, og de punkter der roteres om:

function onCanvasLoaded(sender, args) { var control = sender.getHost(); var containerWidth = control.ActualWidth; var containerHeight = control.ActualHeight; var canvas = sender; canvas.Width = containerWidth; canvas.Height = containerHeight; var s1 = control.findName("s1"); var s2 = control.findName("s2"); s1["FontSize"] = s2["FontSize"] = containerWidth/5; s1["Text"] = s2["Text"] = "Silverlight"; s1["Canvas.Left"] = s2["Canvas.Left"] = (containerWidth/2 - s1.ActualWidth/2)+"px"; s1["Canvas.Top"] = s2["Canvas.Top"] = (containerHeight/2 - s1.ActualHeight/2)+"px"; var r1 = control.findName("r1"); r1["CenterX"] = s1.ActualWidth/2 + "px"; r1["CenterY"] = s1.ActualHeight/2 + "px"; var r2 = control.findName("r2"); r2["CenterX"] = s2.ActualWidth/2 + "px"; r2["CenterY"] = s2.ActualHeight/2 + "px"; }


Bemærk forøvrigt navnet agHost, og i selve filen type="application/ag-plugin"... Silverlight (eller noget i samme stil) har været på tegnebrædtet i en rum tid ;o)

Nu er jeg jo ikke udpræget fortaler for at sylte ens sider ind i diverse JavaScript, og det er klart at det ville være at foretrække, hvis man blot kunne trække en Silverlight kontrol ind fra toolbox'en og angive hvilken xaml-fil der skulle bruges - og det er et supereksempel på en glimrende ajax-extender, baseret på modellen fra Ajax Control Toolkit.

Så kan man strikke en extender sammen, der giver muligheden for at "extende" et eksisterende Panel til en Silverlight container, og lade extenderen sørge for, at agHost.js bliver smidt med ud til klienten.

En rigtig elegant løsning som heldigvis allerede er lavet, og du kan hente et eksempel fra Davids Ansons blogindlæg. Et meget pædagogisk eksempel der viser hvordan det ser ud hhv. med og uden extender - og extenderen ligger der selvfølgelig også.

Mit eget lille eksempel (baseret på samme løsning) kan du hente her.

Men men men.... inden du går igang, er det en god idé at få fat i Silverlight fra produktsiden, hvor der også er en hel del andre ressourcer end lige msi'en.


Mulighederne med Silverlight er temmelig omfattende - tag f.eks. og kig lidt i Da Vinci's værker her...

Mvh
Jeppe

Posted by jepper | 0 Comments

Visual Studio "Orcas" og .NET 3.5 - nu i beta1 :o)

Nu begynder det jo at blive en smule spændende. Visual Studio "Orcas" er hoppet et stort skridt videre mod en endelig frigivelse - alt for lækkert :oP

Se lidt detaljer omkring det her.

Desuden er der en anden rigtig interessant nyhed - der ligger nu "Orcas" Express-versioner til download!!!

Posted by jepper | 0 Comments
Filed under: ,

Endnu en ASP.NET (+ det løse) Quiz :o)

Her kommer så en art folde-ud-quiz ;o)

Vi starter med et meget konkret spørgsmål - nemlig:
Hvad er det her for et format?

[{"Age":81,"Name":"Bent"},{"Age":22,"Name":"Ib"},{"Age":45,"Name":"Grete"},{"Age":45,"Name":"Grete"},{"Age":91,"Name":"Hanne"},{"Age":81,"Name":"Bent"},{"Age":22,"Name":"Ib"},{"Age":91,"Name":"Hanne"}]

Og et lidt mindre konkrert:
Hvorfor i alverden skulle det have relevans for en ASP.NET udvikler?

Mvh
Jeppe

Posted by jepper | 6 Comments
Filed under: ,

Quiz - En lidt eksotisk feature?

Vi må lige have en lille ASP.NET quiz til :o)

Du har sikkert bemærket at man i sin markup kan have noget som dette her:
ConnectionString="<%$ ConnectionStrings:SomeConnectionString %>"

Som sørger for at få fat i en connectionstring angivet i web.config
<
connectionStrings>
  <
add name="FomulaOneConnectionString1" connectionString="..." providerName="System.Data.SqlClient" />
</
connectionStrings>

Det er dejlig feature, der udvider mulighederne i mark-up'en, og giver en intuitiv (og ikke mindst kort) syntaks for adgang til en ofte anvendt ressource, og det er jo glimrende - måske endda forrygende - men;

1) Hvad er det lige for en feature vi har fat i her?

Og lad os nu antage, at jeg i min applikation har lavet mig et lille API der giver mig mulighed for at hente en vits:

public class Jokes
{
 
public static String GetJoke(int jokeId)
  {
   
// implementering
 
}
}

Og at jeg godt kunne tænke mig at være i stand til at skrive sådan noget som det her i min mark-up:
<asp:Label ID="lblJoke" runat="server" Text="<%$ Jokes:3 %>"></asp:Label>

2) Ville det så overhovedet være muligt, og hvad ville det i givet fald kræve af mig?

Håber du har et bud - og hvis ikke kan du jo altid skrive at du gerne vil høre nærmere :o)

Mvh
Jeppe

Posted by jepper | 3 Comments
Filed under: ,

Windows Live "In a box"

Hvis du har gået og grublet over hvad alt det der "Live" egentlig går ud på, og om det er noget du kan bruge til noget, så er der kommet en rigtig god mulighed for at sætte sig lidt ind i det.

Windows Live Dev er det ultimative startsted, og de har netop annonceret Windows Live "In a Box" som ser ud til at være et rigtig godt skub i den rigtige retning, hvis du gerne vil ordentligt ind i sagerne.

Det er en række eksempler, som giver et indblik i de muligheder man har med Windows Live platformen. Windows Live "In a Box" er et projekt på CodePlex, så der er ikke nogle "hemmelige bits" der, og du har selv mulighed for at give et bidrag ;o)

I "Box'en" kan du finde eksempler på følgende:

  • search APIs
  • map APIs
  • contact APIs
  • WPF/E
  • Messenger activity APIs
  • web gadgets 
  • God fornøjelse :o)

    Mvh
    Jeppe

    Posted by jepper | 0 Comments
    Filed under:

    Når udviklere ville vælge Vista....

    Akja - Visual Studio 2005 på en Vista har desværre ikke været en helt problemfri oplevelse, men tag et kig her - og se om ikke det hjælper på det ;o)

    Go get it!

    Mvh
    Jeppe

    Posted by jepper | 0 Comments
    More Posts Next page »
     
    Page view tracker