Michells Mesterværk

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:

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:

Element til Element binding på tværs af UserControls (Silverlight)

by Daniel 10. July 2009 12:22

Jeg skrev en post for noget tid siden, ang. Element 2 Element binding i Silverlight 3. Eksemplet var meget simpelt men viste klart hvad muligheden er. Nu er jeg blevet udfordret en smule mere.

Ingredienser:

1 stk. usercontrol med 1 texbox.
1 stk. page med 1 textbox.

Følgende løsning viser hvordan man kan gøre det, men jeg er slet ikke sikker på, om det er den mest optimale løsning.

<UserControl
    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" 
    x:Class="SilverlightApplication4.MainPage" 
    xmlns:y="clr-namespace:SilverlightApplication4"
    Width="400" Height="300" mc:Ignorable="d">
    <Grid x:Name="LayoutRoot" Background="White">
        <StackPanel x:Name="controls" />
        <TextBox x:Name="TextBoxA" 
                 TextChanged="A_TextChanged" 
                 Width="200" 
                 Margin="68,77,132,0" 
                 VerticalAlignment="Top" 
                 d:LayoutOverrides="Height" />
    </Grid>
</UserControl>

Jeg loader min usercontrol ind dynamisk via et stackpanel…

public partial class MainPage : UserControl {
    private Sister sis = new Sister();

    public MainPage() {
        InitializeComponent();

        controls.Children.Add( sis );
    }

    private void A_TextChanged( object sender, TextChangedEventArgs e ) {
        sis.TextBoxB.Text = TextBoxA.Text;
    }
}

…og tilgår min textbox på min usercontrol via OnTextChanged eventen.

Det er en løsning, men det ville have været federe hvis jeg kunne lave en binding direkte på min textbox.

Har i andre forslag ?

Tags:

Find alle PlaceHolders i en MasterPage (WebForms)

by Daniel 9. July 2009 13:51

Svar til http://www.eksperten.dk/spm/879173

Ved hjælp af en lille rekursiv metode, kan du meget nemt finde lige præcis den eller de kontroller du måtte have brug for. Også selvom de ligger i en masterpage.

Her er et udsnit af vores masterpage:

<form id="form1" runat="server">
<div>
    <asp:PlaceHolder runat="server" ID="ph1" />
    <asp:PlaceHolder runat="server" ID="ph2" />

    <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
        
    </asp:ContentPlaceHolder>
    
    <asp:PlaceHolder runat="server" ID="ph3" />
</div>
</form>

Lad os forsøge at finde alle de placeholders der findes i den masterpage.

Vi kan enten tilgå vores masterpage fra dens egen code-behind til eller evt. gøre det fra en side der arver fra den pågældende masterpage. I dette tilfælde gør vi det med sidstnævnte metode hvilket kræver at du kalder nedenstående kode fra din WebForms page og ikke dine WebForms masterpage.

public partial class WebForm1 : System.Web.UI.Page {
    protected void Page_Load( object sender, EventArgs e ) {
        FindPlaceHolders( Master.Controls );

        foreach ( var item in _placeHolders ) {
            Response.Write( item.ID );
        }
    }

    private IList<PlaceHolder> _placeHolders = new List<PlaceHolder>();

    private void FindPlaceHolders( ControlCollection controls ) {
        foreach ( Control item in controls ) {
            if ( item is PlaceHolder ) {
                _placeHolders.Add( (PlaceHolder)item );
            }
            if ( item.HasControls() ) {
                FindPlaceHolders( item.Controls );
            }
        }
    }
}

Ease peasy

Tags:

Knap i en GridView (WebForms)

by Daniel 9. July 2009 13:14

Svar til http://www.eksperten.dk/spm/879845

Du kan lave en knap i en GridView ved enten, at lave en ButtonField eller en TemplateField.

Sidstnævnte er helt klart min favorit selvom, at GridView kontrollen minder mig om det russiske atom kræftværk Chernobyl, der nedsmeltede i 1986.

Hvis du skal lave en knap med en TemplateField er det sådan set lige ud a landevejen (husk at der er Tour de France i denne tid)

<asp:GridView OnRowCommand="GridView1_RowCommand" ID="GridView1" runat="server" AutoGenerateColumns="False"
    CellPadding="4" DataKeyNames="Name" DataSourceID="SqlDataSource1" ForeColor="#333333"
    GridLines="None">
    <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Button runat="server" CommandName="IDButton" Text="ID" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "Name") %>' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="Name" HeaderText="Name" ReadOnly="True" SortExpression="Name" />
    </Columns>
</asp:GridView>

Det er der jo ingen ben i (selvom det ikke er særlig pænt). Det eneste du skal sørge for at angive på din knap er et CommandName og skal du have en parameter med når der trykkes på knappen, skal du angive en CommandArgument.

Yderligere skal du hooke dig ind på den RowCommand event der bliver kaldt når fra den pågældende GridViewRow. Det gøres via vores OnRowCommand attribut på selve GridViewet.

I vores code-behind fil kan vi fange eventen og se på vores GridViewCommandEventArgs.

protected void GridView1_RowCommand( object sender, GridViewCommandEventArgs e ) {
    //Her kan vi manipulere med vores CommandArgument. Kald bare e.CommandArgument 
}

Så nemt kan det gøres :)

Tags:

SQL Azure og prismodel

by Daniel 9. July 2009 09:50

SQL delen af Azure har fået et helt nyt navn. Nu hedder det SQL Azure! Udviklingen og mulighederne omkring SQL Azure vil ikke ændre sig hvilket betyder, at vi stadig kan vente os en relationel database i skysovsen. Azure ventes at blive lanceret senere på året men pris modellen kommer allerede i næste uge, nemlig i forbindelse med Microsoft Worldwide Partner Conference i New Orleans.

SQL-Azure_rgb_thumb

Hvis du ikke kender til Windows Azure kan du læse mine blog post om emnet.

Tags:

Google Chrome OS – kampen om klienten er startet

by Daniel 8. July 2009 13:58

Jeg kan ikke lade være med, at kigge et par dage tilbage, da jeg skrev min post omkring IE8 og FireFox. I den post gav jeg netop udtryk for, at vi ikke bare står overfor midt i en browser krig, men vi står i en krig om hvem der skal dominere klient markedet i den kommende era. Jeg kan heller ikke lade være med, at tænke tilbage på den tid hvor jeg havde en idé om at lave en blog serie om “Næste version af Windows klienten” set med mine egne øjne. Den kom aldrig ud, af politiske årsager, men nu er jeg altså gået igang med den alligevel og den skal nok blive offentliggjort senere på efteråret.

Igår eftermiddags besøgte jeg ZYB, som jeg ofte gør, og havde en time lang snak med Kenneth Auchenberg omkring netop browsere, markedsandele og hvad fremtiden kan bringe. Rent teknisk synes jeg ikke browsere er specielt interessante, men det synes jeg derimod de er, når man snakker om forretnings aspektet i dem. Kenneth havde gode pointer i forhold til det tekniske, og Mads kom med indspark set fra et højere og mere konsumer rettet niveau. Vi var dog alle enige om, at browseren er den nye klient. Altså,  browseren er der hvor man i fremtiden vil bruge det meste af sin tid på en computer – period! Sådan er det allerede for rigtige mange mennesker idag, men det kan og vil blive meget mere “normalt” i fremtiden. En ny era!

Jeg glæder mig at se hvad Google har fundet på med deres Chrome OS, men til jer der ikke allerede vidste det, så har Chrome hele tiden været et slags OS. Det har aldrig kun været en browser til at vise sider i, men ligeså meget Google’s platform til deres Gears framework. Et framework der vidst aldrig er kommet helt ud over rampen.

Lad os se på hvad Google skriver på deres egen blog omkring deres nye såkaldte OS.

It's been an exciting nine months since we launched the Google Chrome browser. Already, over 30 million people use it regularly. We designed Google Chrome for people who live on the web — searching for information, checking email, catching up on the news, shopping or just staying in touch with friends. However, the operating systems that browsers run on were designed in an era where there was no web. So today, we're announcing a new project that's a natural extension of Google Chrome — the Google Chrome Operating System. It's our attempt to re-think what operating systems should be.

Her forklares der lidt om hvad en browser er og hvordan brugeren benytter den til idag. Ydermere synes jeg, at det føles som der bliver trukket et gennemsigtigt tæppe væk fra en tom scene, i og med, at de annoncere en “Openration System extension” til deres browser Chrome men undlader at fortælle mere om hvad det indebærer. Det er tyndt synes jeg, men det er deres kendetegn i alt hvad de laver udover deres søgning!

Google Chrome OS is an open source, lightweight operating system that will initially be targeted at netbooks. Later this year we will open-source its code, and netbooks running Google Chrome OS will be available for consumers in the second half of 2010. Because we're already talking to partners about the project, and we'll soon be working with the open source community, we wanted to share our vision now so everyone understands what we are trying to achieve.

Og Google vælger at fortsætte ud af samme spor, et spor de tilsyneladende ikke kan komme ud af. Udmeldingen om, at lave den “naturlige chrome extension” open source kan næppe komme som nogen overraskelse, da OS’et bygger på en Linux kernel.

Speed, simplicity and security are the key aspects of Google Chrome OS. We're designing the OS to be fast and lightweight, to start up and get you onto the web in a few seconds. The user interface is minimal to stay out of your way, and most of the user experience takes place on the web. And as we did for the Google Chrome browser, we are going back to the basics and completely redesigning the underlying security architecture of the OS so that users don't have to deal with viruses, malware and security updates. It should just work.

Ovenstående paragraf er jo heller ikke særligt revolutionerende. Alle ved, at Chrome er lynhurtig, letvægtig og med et skrabet interface. Og at bruger oplevelsen finder sted på webbet er vel næppe en overraskelse. At Google vil holde deres OS fri for malware og vira er utopi, men det lærer de nok hen ad vejen.

Google Chrome OS will run on both x86 as well as ARM chips and we are working with multiple OEMs to bring a number of netbooks to market next year. The software architecture is simple — Google Chrome running within a new windowing system on top of a Linux kernel. For application developers, the web is the platform. All web-based applications will automatically work and new applications can be written using your favorite web technologies. And of course, these apps will run not only on Google Chrome OS, but on any standards-based browser on Windows, Mac and Linux thereby giving developers the largest user base of any platform.

Så har Google i virkligheden udviklet et operativ system eller mangler de downloads til deres browser ? Man kan også køre alle varianter af web applikationer i alle andre browsere, men det har man da vidst kunnet i mange år. Hvad er nyheden ?

Google Chrome OS is a new project, separate from Android. Android was designed from the beginning to work across a variety of devices from phones to set-top boxes to netbooks. Google Chrome OS is being created for people who spend most of their time on the web, and is being designed to power computers ranging from small netbooks to full-size desktop systems. While there are areas where Google Chrome OS and Android overlap, we believe choice will drive innovation for the benefit of everyone, including Google.

Hvad er det Google siger her ?

We hear a lot from our users and their message is clear — computers need to get better. People want to get to their email instantly, without wasting time waiting for their computers to boot and browsers to start up. They want their computers to always run as fast as when they first bought them. They want their data to be accessible to them wherever they are and not have to worry about losing their computer or forgetting to back up files. Even more importantly, they don't want to spend hours configuring their computers to work with every new piece of hardware, or have to worry about constant software updates. And any time our users have a better computing experience, Google benefits as well by having happier users who are more likely to spend time on the Internet.
We have a lot of work to do, and we're definitely going to need a lot of help from the open source community to accomplish this vision. We're excited for what's to come and we hope you are too. Stay tuned for more updates in the fall and have a great summer.

Hvis Google Chome OS kan sørge for at få min maskine til at boote på kortere tid end min Windows7 installation, og samtidig sørge for, at min maskine køre som den gjorde da jeg fik den, så vil jeg da gerne bruge den. Glæder mig til at se hvordan Google vil løse hardware konfigurationen, som de her proklamere er noget af det vigtigste for deres brugere. Google har dog ret i, at der venter en masse arbejde foran jer :)

Jeg synes Google virker som en ret interessant virksomhed, men jeg synes godt nok der er langt imellem deres gode produkter, frameworks og de services de tilbyder. Det synes jeg denne nyhed beviser endnu engang.

Når det drejer sig om kampen om klienten synes jeg der er andre der virker langt mere faretruende end søgegiganten, og det kan du så tænke lidt over i din sommerferie.

Tags:

Expression og Silverlight 3 lancering på Fredag

by Daniel 7. July 2009 15:16

Fredag d. 10 juli vil Silverlight og Expression 3 blive lanceret på et virtuelt event.

Du kan følge med og se keynote + sessioner online via http://www.seethelight.com/

Jeg kommer også ind i Silverlight 3 kampen efter min sommerferie, og det kan i godt glæde jer til :)

Tags:

IE8 vs. FireFox

by Daniel 6. July 2009 10:23

Det eI mit nye år (startede 1 juli for os MS’ere) er jeg blevet bedt om, at lave en del “compete” aktiviteter i forhold til teknologi, værktøjer etc. hvor der ikke står Microsoft på produktet. Det bliver sikkert meget sjovt at prøve, og jeg vil forsøge at gøre mit bedste for at være saglig, professionel og ærlig. Som jeg sagde til min manager: “jeg kan godt lide at provokere lidt”, så mon ikke jeg får nok at se til på det punkt :p)

Jeg vil lægge ud med noget af det, som jeg synes virker allermest betændt, både internt men også eksternt i markedet – Internet Explorer 8. Hvordan bære man sig så lige an med at gøre det på en saglig måde ;p)

Det er altid interessant at kommunikere med jer først, fordi i oftest er på forkant med hvad der er nyt, hvad der virker, hvordan tingene burde være etc. I hvertfald i forhold til teknologi (I skal ikke give mig tips til hverken mad eller kvinder), og i dette tilfælde en browser.

På den anden side udgør udviklere en så lille ubetydelig andel af internet brugere, at jeg ikke ville have svært ved at lade være med at skrifte mine betragniger og meninger, men jeg tror trods alt på, at det er udviklere der i dette tilfælde løfter nye trends op til resten af “konsumer” markedet.

I må ikke glemme hen ad vejen, at Internet Explorer stadigvæk ligger på rigtige mange PC’er overalt i verden og, at det billede højst sansynligt ikke vil ændre sig synderligt meget de næste par år.

Microsoft har i fortiden ikke gjort specielt meget ud af at udvikle sin internet browser i samme retning som man måske kunne have håbet på. Og nu da internettet for alvor er ved at være platformen til meget af det som man fortager sig på en computer, så ligger det et naturligt men meget stort pres på værktøjet man bruger til formålet. Uheldigvis for Microsoft og mig, så er der kommet et par super innoverende og hurtige alternativer til internet browsing, og de kan noget som vi stadig bare drømmer om.

Innovation er pragtfuld, især fordi den oftes sætter skub i nogle ting hos eventuelle modparter. Dette gør sig naturligtvis gældende hos Microsoft såvel som hos Google og i dette tilfælde også Mozilla. Med innovation og konkurrence får kunden ofte et bedre produkt, og kunden bør vel altid have ret til det bedste. Desværre har Microsoft ikke kunne leve op til sin rolle som innovativ software virksomhed når vi taler om IE8 og det synes jeg er yderst skuffende, især for alle vores brugere, kunder etc.

Til jer der kender Microsoft godt, så ved i også godt, at virksomheden oftes har formået, at rejse sig fra støvet og lave noget der er bedre end det vores konkurrenter har kunnet præsterer. Og det er jeg også sikker på sker med Internet Explorer. Eller sagt med andre ord – det skal også ske med Internet Explorer, ellers taber vi!

Hvad der bør udgøre en browser i mine øjne, er (i priorteret rækkefølge); brugervenlighed, performance, stabilitet, produktivitet og funktionalitet. Disse 5 ting er mest set med “konsumerens” briller, men alle 5 kan i princippet videreføres i forhold til udvikleren (dog ikke i samme priortet). Hvad der er vigtigst for en browser, set med en udviklers øjne, er innovation og udviklings-relaterede features. Bla. derfor er vores konkurrenter FireFox og Chrome så populære for tiden. FireFox er på flere punkter hurtigere end IE, har langt mere at byde på i forhold til udvikleren og sørger for at være innovativ hver gang en ny release udkommer. FireFox virker bare mere gennemført når man skal bruge browseren til udviklings-relaterede opgaver, og det vil være dumt af mig at sige andet.

På den anden side synes jeg virklig, at Microsoft har forsøgt at flytte sig med IE8. Ved at følge trop og implementere nogle af W3C’s standarder føler jeg, at Microsoft har taget ved lære, og lyttet til den kritik der har haglet ned over virksomheden for netop ikke, at overholde de mest basale standarder. Udover det synes browseren er blevet markant hurtigere end dens forgænger plus der er en række nye features (InPrivate og Accellerators bla.) som jeg mener er ret cool. Men nu er mit spørgsmål til dig; er det nok ? Er der sket tilstrækkeligt i IE8 til, at browseren kan blande sig i topstriden om første pladsen på browser markedet og kalde sig innoverende og bedst ?

Tags:

MIX essentials i Irland, Web agency event i Amsterdam, ferie og næste år.

by Daniel 26. June 2009 10:25

Jeg har været ude at rejse igen, desværre ikke på ferie selvom jeg snart skal sidde på det skaldede bjerg i Frankrig og se cykelløb. Jeg kan ikke vente til Touren starter, er der andre der har det på samme måde ?

Da jeg så min blogliste for Juni hertil morgen, blev jeg enig med mig selv om, at jeg heller måtte få holdt jer lidt opdateret om hvad der er sket de sidste par uger, og om hvad der kommer til at ske efter sommerferien.

I Onsdags var jeg i Irland for at tale til “Ireland MIX essentials 09”, som blev afholdt for et par hundrede mennesker i hjertet af Dublin. Jeg skulle snakke ASP.NET MVC og Azure storage. Min første præsentation (MVC) var bestemt ikke optimal, og jeg kan stadig ikke forstå hvorfor. Jeg havde forberedt mig i så lang tid. Every dog got it’s day.

Til gengæld synes jeg min Azure præsentation gik rigtig godt, og jeg tror mit publikum var godt tilfredse med min performance og kode.

På mit 3 dages besøg til Dublin mødte jeg som altid nogle ret interessante mennesker. Bla. Martha Rotter som besider min rolle i Irland men som tidligere har været en af de 6 første Silverlight udviklere i Redmond. Hun var mega sej! Udover hende mødte jeg også Ian Griffiths som er en del af det famøse Pluralsight. Ian har også skrevet flere bøger om WPF og var bestemt en cool fyr.

På Tirsdag går turen til Amsterdam, hvor jeg skal tale om stort set det samme som i Dublin, plus en session om Silverlight. Det bliver sjovt og jeg glæder mig til at møde mine hollandske kolleger.

Jeg ved ikke med jer, men jeg har snart brug for ferie, så i midten af Juli tager jeg en måned fri og slapper helt af. Uden telefon, internet og computer. Det bliver så rart!

Efter ferien vil jeg sørge for at lave noget mere omkring Windows Azure, Silverlight 3 og MVC. Jeg skal have fundet en masse TechTalk talere til næste kalender år, så hvis du har et emne du gerne vil præsentere om, så tag endelig fat i mig.

Nogle af de emner vi skal have belyst er .NET 4.0, VS2010, Silverlight 3, IE8, IronPython/IronRuby, ASP.NET, PHP på Windows, Surface, MEF, PEX, Windows Mobile og en masse andet. Hvis der er noget du gerne vil høre om så tag endelig fat i mig.

Udover vores TechTalks i løbet af året vil jeg også forsøge at lave flere forskellige Microsoft code-camps. Vores lille team i Hellerup har fået en hel bygning til rådighed i Vedbæk, med maskiner, xbox, surface etc. Vi har derfor mulighed for at samle folk sammen og danne rammen for nogle helt unikke oplevelser. Det bliver super cool at kunne bruge de faciliteter, og du har endda også selv mulighed for at leje stedet hvis du skal lave noget der kræver plads og hardware.

Indtil videre vil sig god sommerferie til jer allesammen og tak for kampen!

Tags:

En idé til markedsføring af Visual Studio 2010.

by Daniel 16. June 2009 13:28

Jeg ved ikke om det her er gå for meget over “det er ikke nørdet nok” stregen, men det er jeg vidst heller ikke kendt for.

For et par dage siden havde jeg fornøjelsen af være til en film præmerie, som ikke var en helt normal en af slagsen, men en skateboard film (jeg har skateboardet i mange år). Filmen var produceret af Nike SB, en division af Nike som står for deres skateboarding afdeling, og som i de seneste år har formået at komme ind på en scene der ellers har været domineret af mange andre store spillere. Nå, men nok om det.

Sagen er den, at Nike i forbindelse med deres lancering af denne nye film havde inviteret diverse distributioner og butikker over hele verden. De havde forinden filmens launch sendt en pakke ud til samtlige af disse distributioner og butikker med merchendise, tingel tangel osv. I pakken lå også en konvolut med en website url og et kodeord. Kl. 21 den pågældende dag kunne alle der havde modtaget pakken logge sig ind på dette website, og udover det, registere deres webcam. Så når man sad og så filmen, kunne man samtidig se alle andre der gjorde det samme og det var faktisk mega sejt!

Jeg tænkte, at det må kunne overføres til min opgave mht. lanceringen af Visual Studio 2010. Lave en 60 min. lang “film” om alle de fedeste ting i den nyeste version af VS, klippe den lidt fedt sammen og få nogle forskellige vinklinger, fra nogle nøgle personer i det Danske community og promovere og vise den på samme måde som Nike havde formået.

Er det en helt skidt idé ?

Tags:

Gordon Ramsey i din udviklingsafdeling!

by Daniel 8. June 2009 13:51

Igår aftes så jeg et afsnit af Gordon Ramsey’s “Kitchen Nightmare” og jeg må ærligt indrømme, at jeg synes manden virker genial. Jeg elsker mennesker som Gordon. Fandenivoldsk, hudløs ærlig og lige på og hård…hver gang. Jeg kender ihvertfald de første 10-20 stykker der godt kunne lære lidt af ham. Mens jeg lå der på min diva og spiste vindruer, og slog mig på lårene af grin, fik jeg mig en meget simpel idé som ligger meget op ad det Gordon laver i flimmerkassen.

Husk det er min idé og jeg vil have royalties hvis nogen af jer stjæler den :)

gordon-ramsey(1)

Du skal samle et lille udviklings/projekt team (1-3) som alle har samme karistika som Gordon Ramsey, derpå opsøge udviklingsafdelinger som eftersigende ikke fungere optimalt, også sætte foden ned…en gang for alle. Fyr chefen, giv projektlederen 1 chance mere og vent på han dummer sig igen….også fyr ham. Fortæl udviklingschefen han er elendig, sluk for deres datacenter hvis de ikke laver daglig backup, råb og skrig, lav SQL injections på deres produkter osv. Kør dem helt i sænk og byg dem derefter op igen, på din måde selvfølgelig. Det hele skulle selvfølgelig dokumenteres og vises i fjerneren. Jeg er dog i tvivl om hvad showet skulle hedde. Forslag ?

Tags:

Community Day 2009 – sikke en success!!!!

by Daniel 1. June 2009 23:16

I Torsdags (d. 28) afholdte jeg første omgang af Community Day. En dag der var fyldt ud med tekniske sessioner, open spaces og masser af netværks muligheder.

Vi var ialt 94 mennesker og sikke en dag det endte ud med at blive. Jeg synes det var helt fantastisk at folk kom fra alle steder i Danmark og bakkede op omkring et nyt friskt tiltag som dette nu engang var.

Jeg vil gerne sige tusind tak til alle der deltog. Jeg mener seriøst at i var grunden til, at dagen blev så god og vellykket. Selv den skeptiske Brian “Kodehoved.dk” Rasmussen synes det var godt, så helt ved siden af kan det ikke have været.

Om nogle få dage vil der dumpe et evaluerings skema frem i jeres inbox, og vær rar at udfylde dem så jeg ved hvordan i synes det gik og hvad vi evt. skal gøre om næste år.

Tak for de pæne ord:

Tak for et super fedt arrangement! Hvor er det fedt, at der kom så mange! Godt gået.

Det var et super arrangement – fedt at se, at I formådede at få fat på en hel gruppe vi normalt ikke ser.

Det var sgu et mægtigt arrangement, du havde fået skruet sammen!

Tak til talerne:

Sven Pedersen (Drupal, Android)
Christian Dalager (ASP.NET MVC vs. Ruby on Rails)
Peter Mølgaard (Flex)
Thomas Martinsen (Silverlight)
Michael Friis (LINQ)
Casper Fabricius (OR/M i Ruby on Rails)
Niels Hartvig – han kunne ikke komme pga. af sit rockstjerne image og open source :0)

I har fået rigtig mange gode ord med på vejen, det vil jeg gerne understrege, og fantastisk i gad stille op! Godt gået folkens!!!

Tak til mit team for at klare alt det jeg ikke selv kunne finde ud af:

Dorthe Lund Kongsgaard
Hanne Breindal
Martin Esmann
René Løhde
Ole Kjeldsen
Martin Pamdeth
Eva Johannessen

Tags:

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!

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:

Powered by BlogEngine.NET 1.6.0.0
Theme by Mads Kristensen