Thursday, March 30, 2006

Så lige at ScottGu har lavet en 18 minutters video der viser hvordan man fra et tomt projekt bygger et ASP.NET2-site der benytter den seneste version af ATLAS. Kender du ikke til ATLAS/AJAX - lav en kop kaffe, benene op på bordet og klik her.

posted on Thursday, March 30, 2006 9:36:30 PM (Romance Standard Time, UTC+01:00)  #    Comments [0]
 Tuesday, March 28, 2006

I morgen kl. 13:30 er jeg på IT Universitetet (Rued Langgaards Vej 7) i København med en 3 timers ASP.NET2-præsentation for SAM-DATA. Jeg har ikke fået oplysninger om hvor mange tilmeldte der er - men jeg håber på mange mennesker.

Slides, links med videre kan findes på et tidligere indlæg:

22. marts 2006 SAM-DATA foredrag i Aalborg om ASP.NET 2

Jeg tror jeg i morgen vil bruge et Northwind-framework (DAL/BLL) som jeg ikke brugte i Aalborg. Det er et SourceForge-projekt som jeg har omtalt tidligere

8. marts 2006 Northwind - lagopdelt applikation

Hvis der dukker spørgsmål op som kræver en uddybning eller jeg kommer på andre links eller lignende så opdaterer jeg dette indlæg.

OPDATERING:

Følgende links lovede jeg at smide op:

posted on Tuesday, March 28, 2006 10:10:31 PM (Romance Standard Time, UTC+01:00)  #    Comments [0]
 Friday, March 24, 2006

Et af de spørgsmål som altid dukker op når jeg er ude og tale om VSTO er "Hvordan kan jeg lave mine egne funktioner i .NET som kan tilgås i Excel på samme måde som almindelige Excel-funktioner".

Der er flere måder at løse problemet på i VSTO, men der er faktisk en anden og meget simpel måde - nemlig udvikling af en Automation Add-In. Det er så simpelt at man næste får tårer i øjnene. Se blogindlæg fra Eric Carter på

http://blogs.msdn.com/eric_carter/archive/2004/12/01/273127.aspx

Det er lige ud af landevejen.

Hans indlæg bruger C# - hvis du er VB.NET-udvikler har jeg oversat koden:

Imports System
Imports System.Runtime.InteropServices
Imports Microsoft.Win32

<ClassInterface(ClassInterfaceType.AutoDual), ComVisible(True)> Public Class MyFunctions

Public Sub New()
End Sub

Public Function Mintest1(ByVal x As Object, ByVal y As Object) As Double
Return CDbl(x) + CDbl(y)
End Function

<ComRegisterFunctionAttribute()> Public Shared Sub RegisterFunction(ByVal type As System.Type)
Registry.ClassesRoot.CreateSubKey(GetSubKeyName(type))
End Sub

<ComUnregisterFunctionAttribute()> Public Shared Sub UnregisterFunction(ByVal type As System.Type)
Registry.ClassesRoot.DeleteSubKey(GetSubKeyName(type), False)
End Sub

Private Shared Function GetSubKeyName(ByVal type As System.Type) As String
Return "CLSID\{" & type.GUID.ToString().ToUpper() & "}\Programmable"
End Function

End Class

posted on Friday, March 24, 2006 3:07:25 PM (Romance Standard Time, UTC+01:00)  #    Comments [1]
 Wednesday, March 22, 2006

I morgen er jeg i Aalborg med SAM-DATA for at holde en længere (3 timers) ASP.NET2-præsentation. Du kan læse mere om præsentationen hos SAM-DATA.

Der bliver en masse mere eller mindre improviserede demoer i morgen, men de slides der er (13) kan findes her

samdataasp.net2mar2006.zip (169,14 KB)

Mere vigtigt er nogle af de ressource vi kommer ind på i morgen. Her er en liste over "must see" links:

Hvis der dukker noget op i morgen jeg ikke har nævnt på listen så opdaterer jeg dette indlæg.

Nu er der jo ikke første gang jeg holder en ASP.NET2-præsentation, så der findes en del indlæg her som også kan indeholde interessant information. Her er link til nogle af dem:

posted on Wednesday, March 22, 2006 11:29:59 PM (Romance Standard Time, UTC+01:00)  #    Comments [0]
 Tuesday, March 21, 2006

Så er det ved at være tydeligt at vi nærmer os en frigivelse af Office 12 (Office 2007), og dermed også en ny version af VSTO. Se dette indlæg fra VSTO-teamet samt Visual Studio Futures. Nu har vi ellers lige fået nogenlunde styr på VSTO 2 :-)

Der sker en hel del i VSTOv3 - herunder muligheden for at benytte VSTO i en del flere værtsapplikationer. Se vedlagte dump fra VS 2005 med beta af v3 installeret.

posted on Tuesday, March 21, 2006 8:35:01 PM (Romance Standard Time, UTC+01:00)  #    Comments [0]

Jeg er retur fra en VSTO TechTalk i Hellerup og har et par opfølgende links:

Slutteligt er den viste kode til at bruge smarttags gennem VSTO som følger (bemærk - kræver reference til Microsoft Smart Tag Library (COM):

Imports System.Text.RegularExpressions
Imports Microsoft.Office.Tools.Word
Imports Microsoft.Office.Interop.SmartTag

Public Class MySmartTag
Inherits SmartTag

WithEvents OpenMessageBox As Action

Sub New()
MyBase.New("www.microsoft.com/VSTO#SmartTag", "SmartTag demo")

OpenMessageBox = New Action("Vis meddelelsesboks")
Actions = New Action() {OpenMessageBox}

' Led efter ID xxx (xxx=tal)
Expressions.Add(New Regex("ID\s\d{3}"))

' Led efter fast udtryk
'Terms.Add(udtryk der skal ledes efter)

End Sub

Private Sub OpenMessageBox_BeforeCaptionShow(ByVal sender As Object, ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) Handles OpenMessageBox.BeforeCaptionShow

End Sub

Private Sub OpenMessageBox_Click(ByVal sender As Object, ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) Handles OpenMessageBox.Click
MessageBox.Show("Kunde " & FindID(e.Text))
End Sub

Private Function FindID(ByVal tekst As String) As Integer
Return CInt(tekst.Substring(3, 3))
End Function

End Class

' Kode der placeres i StartUp
Me.VstoSmartTags.Add(New MySmartTag())

Yderligere har jeg undersøgt fremtiden for VSTO i Access idet jeg på et spørgsmål om netop det fik svaret at det nok ikke var en del af den kommende VSTO (v3). Det var forkert - sorry. Det tyder på at man i den kommende VSTO kan lave Add-ins til Access (og mange andre "nye" applikationer).

Det skulle være det hele - ellers giv mig et prej.

posted on Tuesday, March 21, 2006 7:37:11 PM (Romance Standard Time, UTC+01:00)  #    Comments [0]
 Monday, March 20, 2006

Jeg kører en TechTalk i morgen hos Microsoft / Hellerup omkring VSTO. Jeg har lavet slides en smule om så de kan findes her. Yderligere henvises til tidligere indlæg hvor links til ressourcer på nettet er nævnt:

Især den sidste består af en del interessante links.

Yderligere kan jeg tilføje et par ekstra links:

 

posted on Monday, March 20, 2006 9:52:59 PM (Romance Standard Time, UTC+01:00)  #    Comments [0]
 Thursday, March 16, 2006

Nyheder fra en verden fyldt med blogs:

(og det er jo både godt og skidt)

posted on Thursday, March 16, 2006 11:02:03 PM (Romance Standard Time, UTC+01:00)  #    Comments [0]

Viste du at man kan lave build events til VB.NET-projekter i VS 2005? Hvis ikke - så se denne korte (2 min) screencast:

Screencast: Build events i Visual Basic .NET

Nogen gange er det nemmere at vise og forklare noget i stedet for at skrive sig ud af det :-)

posted on Thursday, March 16, 2006 3:09:18 PM (Romance Standard Time, UTC+01:00)  #    Comments [1]

I går holdt jeg i København en 3-timers præsentation omkring VSTO for SAM-DATA. Vi kom godt rundt i krogene og jeg tror folk var tilfredse. Nu må vi se evalueringerne - det er altid udbytterigt at læse hvad folk konkret får ud af en præsentation.

I går prøvede jeg et nyt koncept - jeg kodede et samlet eksempel helt fra bunden. Det har jeg gjort mange gange før i mindre målestok, men igår var det et langt eksempel på ca 50 minutter. Ideen var at udvikle en komponent (DLL-fil) der taler med Northwind-databasen og som bruges i en Word/VSTO-applikation med i-mærker svarende til customerID fra Customers-tabellen:

vstoimrke.jpg

vstoimrke2.jpg

Her er i-mærkerne ANTON og BERGS (id på kunder). Når "Vis kunde" vælges kan man se lidt info i opgaveruden:

vstoopgaverunden.jpg

Når der klikkes på knappen (med det tåbelige navn - det gik lidt stærkt til sidst) indsættes navnet på kunden i dokumentet.

Hvis du vil prøve applikationen kan den findes her.

Samdata.Northwind.zip (411.78 KB)

Det er en VS 2005 solution med et par projekter i og kræver derfor en større version af VS end Express-versionerne. Yderligere kræver det at Northwind er installeret (det har jeg tidligere skrevet om her i bloggen). Du er velkommen til at lege lidt med det - men husk det er et eksempel kodet på kort tid, og der mangler en del fejlhåndtering, test, UI med videre.

Hvis du vil se slides fra præsentationen kan de findes her.

samdatavstomar06.zip (2.15 MB)

Nogle af de links der blev diskuteret kan findes her.

Giv mig et prej hvis jeg har glemt noget!

posted on Thursday, March 16, 2006 11:24:50 AM (Romance Standard Time, UTC+01:00)  #    Comments [0]
 Wednesday, March 15, 2006

Når jeg holder foredrag eller underviser på skoler og universiteter bliver jeg næsten altid spurgt hvad MSDN Academic Alliance Program (MSDN AA) er og hvem der har adgang og glæde af programmet. Jeg har derfor en gang for alle bedt Henrik Westergaard Hansen fra Microsoft om at besvare et par få spørgsmål:

Hvad er MSDN AA kort fortalt?

MSDN AA er en aftale som de enkelte uddannelsesinstitutioner indgår med Microsoft. Når aftalen er indgået, kan de studerende der, af institutionen, er blevet tildelt adgang downloade softwaren. MSDN AA koster 800$. Softwaren må installeres på private PC’er og skal ikke afinstalleres efter endt uddannelse.

Hvem har glæde af MSDN AA?

Studerende og undervisere kan downloade softwaren fra MSDN AA. Softwaren må ikke bruges kommercielt og må ikke indgå i den daglige drift.

Hvilken glæde har man af MSDN AA

Følgende produkter er meget populære på MSDN AA: Windows XP, Windows Server 2003, SQL Server 2005, Visual Studio 2005 Professionel, OneNote 2003, MS Project 2003, Project Server, Infopath, Visual Studio Tools for Office og MapPoint 2003. Applikationer som Office, Media Center og MBS produkterne ikke tilgængelige på MSDN AA.

Hvad skal man gøre for at få MSDN AA?

Det gøres online på

https://registermsdn.one.microsoft.com/msdnaa/aa/newstep1.aspx 

eller ved at kontakte Henrik Westergaard Hansen på henrikwh@microsoft.com eller 44 89 07 73.

Hvor kan jeg finde yderligere informationer om MSDN AA?

Se eksempelvis

 

 

posted on Wednesday, March 15, 2006 10:40:04 AM (Romance Standard Time, UTC+01:00)  #    Comments [0]
 Tuesday, March 14, 2006

I morgen holder jeg et par TechTalks i Odense.

Jeg har min "sædvanlige" præsentation om Visual Studio Tools For Office (VSTO). Du kan finde links og andre ressourcer her og her.

Yderligere har jeg (kun i morgen) overtaget ASP.NET2-præsentationen som Niels ellers plejer at holde idet han er blevet forhindret. Slides og demo er vedhæftet. Der er nogle links som er "must see":

Opdaterer dette indlæg med svar på spørgsmål eller hvis jeg kommer på flere væsentlige links.

Demo skal blot pakkes ud og åbnes i VS gennem "Open Web Site..." på File-menuen. Højreklik på filen Forside.aspx i Solution Explorer-vinduet og angiv at filen skal være "Start up", og klik herefter F5. Demo forudsætter at SQL Express er installeret.

posted on Tuesday, March 14, 2006 12:00:42 AM (Romance Standard Time, UTC+01:00)  #    Comments [0]
 Sunday, March 12, 2006

Så skulle vi være tæt på en frigivelse af VSTS - ser her. For yderligere info om VSTS se den officielle hjemmeside.

posted on Sunday, March 12, 2006 7:03:33 PM (Romance Standard Time, UTC+01:00)  #    Comments [0]
 Thursday, March 09, 2006

Jeg bruger VPC i et væk i forbindelse med test, præsentationer, udvikling med videre og er naturligvis optaget af hvordan man sætter et OS til at køre optimalt under VPC. Jeg faldt ved et tilfælde over denne artikel som giver et par ret gode pointere. Andrew Connel har i øvrigt også skrevet et par andre interessante artikler/blogpost - og han er derfor lige røget på min blogrool.

posted on Thursday, March 09, 2006 10:04:55 AM (Romance Standard Time, UTC+01:00)  #    Comments [0]

Hvis du laver web-applikationer og ikke har den store erfaring med ATLAS/AJAX så var det måske en ide at se omkring en times webcast fra Jonathan Hawkins (ATLAS PM) - slides og demoer. Der er nu noget specielt ved at høre om nye teknologier fra dem der reelt bygger dem ;-)

posted on Thursday, March 09, 2006 9:31:23 AM (Romance Standard Time, UTC+01:00)  #    Comments [0]
 Wednesday, March 08, 2006

Så et indlæg på Dino Esposito's blog omkring implementation af BLL og DAL lag i en applikation, og her henviser han til et SourceForge-projekt jeg ikke har hørt om før - NorthWind Starter Kit. Det er en samling 2005 (C#) projekter der viser et eksempel på en "rigtig" lagapplikation med mulighed fot at skifte mellem Access, SQL Server, og Hibernate. Der er ikke meget dokumentation, mem hvis du mangler lidt praktisk indsigt i opbygningen af en lagapp. (eller i NHibernate) er projektet meget interessant.

posted on Wednesday, March 08, 2006 9:45:54 AM (Romance Standard Time, UTC+01:00)  #    Comments [0]
 Monday, March 06, 2006

MS har arbejdet et stykke tid på at opdatere certificeringerne (inden for udvikling hed det før MCP, MCAD og MCSD). Nu er det kommet nye eksamener og titler, og man kan "blive" Technology Specialist, Professional Developer (MCPD) og Architect. Læs mere på

http://www.microsoft.com/learning/mcp/newgen/ 

hvor du også finder link til info om hvordan man kan opdatere en MCP/MCAD/MCSD.

Denne figur giver et billede af hvordan de nye certificeringer er sat sammen, men se på ovennævnte link og læs især FAQ.

posted on Monday, March 06, 2006 9:23:21 PM (Romance Standard Time, UTC+01:00)  #    Comments [4]
 Sunday, March 05, 2006

I Alt om DATA nr. 4/2006 handler kodekassen om en ASP.NET2-applikation der gør det nemt at oprette bilag til udgiftrefundering.


udgiftsrefundering.jpg


Se artiklen i bladet for information om hvordan applikationen er opbygget og kan installeres. Koden kan du finde her:

Udgiftsrefundering_website.zip (6,96 KB)

Applikationen er rimelig simpel, men skal man pille noget interessant ud er det opbygningen af et dataset med to tabeller og en indbyrdes relation. Dataset'et benyttes til at skabe tilstand mellem postbacks og gør det muligt at oprette, rette og slette bilag. Koden er som følger (find den også i zip-filen):

Public Shared Function OpretUdgiftsDatabase( _
ByVal filMedKonti As String) As DataSet

        Dim dt As DataTable
        Dim dc As DataColumn
        Dim ds As New DataSet("udgiftsdatabase")

        ' Ny tabel med felter
        dt = New DataTable("udgift")
        dc = New Data.DataColumn("Kontonummer", _
        GetType(System.String))
        dt.Columns.Add(dc)
        dc = New Data.DataColumn("Tekst", _
        GetType(System.String))
        dt.Columns.Add(dc)
        dc = New Data.DataColumn("Beløb", _
        GetType(System.Double))
        dt.Columns.Add(dc)
        ds.Tables.Add(dt)

        ' Ny tabel med felter
        dt = New Data.DataTable("konto")
        dc = New Data.DataColumn("Kontonummer", _
        GetType(System.String))
        dt.Columns.Add(dc)
        dc = New Data.DataColumn("Navn", _
        GetType(System.String))
        dt.Columns.Add(dc)
        dc = New Data.DataColumn("Default", _
        GetType(System.Boolean))
        dt.Columns.Add(dc)
        dc = New Data.DataColumn("Saldo", _
        GetType(System.Double))
        dc.DefaultValue = 0
        dt.Columns.Add(dc)

        ' opret poster fra XML-fil
        Dim doc As New System.Xml.XmlDocument
        doc.Load(filMedKonti)
        For Each n As System.Xml.XmlNode In _
                doc.SelectNodes("//konto")
                dt.Rows.Add(n.Attributes("kontonummer") _
                .InnerText, n.Attributes("navn").InnerText, _
                n.Attributes("default").InnerText)
        Next
        ds.Tables.Add(dt)

        ' Opret relation mellem de to tabeller
        Dim dr As New DataRelation("konto_udgift", _
        ds.Tables("konto").Columns("kontonummer"), _
        ds.Tables("udgift").Columns("kontonummer"))
        ds.Relations.Add(dr)

        Return ds

End Function

For at prøve at afvikle applikationen selv kan du hente den (endnu) gratis Visual Web Developer Express fra http://msdn.microsoft.com/vs. Når Visual Studio er installeret opretter du et nyt tomt website, og filer og mapper fra zip-filen trækkes ind i Solution Explorer-vinduet. Højreklik på refundering.aspx og angiv at denne side er startside. Tryk herefter på F5 hvorefter den indbyggede web server og Internet Explorer starter op.

Applikationen er i øvrigt oplagt til at teste AJAX/ATLAS-teknologi hvis man har mod på det.

 

posted on Sunday, March 05, 2006 8:58:15 PM (Romance Standard Time, UTC+01:00)  #    Comments [0]
 Saturday, March 04, 2006

Som du måske har set er formatet på Alt om DATA ændret. Det indebærer blandt andet et anderledes design, opdateret indhold/fokus, og at det udkommer væsentligt flere gange om året. Det "nye" blad vil også fortsat indeholde Kodekassen som jeg har skrevet til i mange år.

Jeg har benyttet lejligheden til at tage livet af kodekassen.dk. Ikke forstået således at sitet med indhold fra de sidste mange år fjernes - det vil fortsat består men blot ikke blive opdateret. I stedet vil kode og links fra kommende kodekasser blive flyttet til denne blog. Det er væsentlig nemmere for mig at opdatere, og det giver mulighed for at abonnere på et RSS/ATOM/CDF feed.

Den nemmeste måde at finde indlæg relateret til Alt om DATA er at klikke på "Alt om DATA" i Categories på forsiden. Du kan eventuelt også benytte dette link.

posted on Saturday, March 04, 2006 2:38:34 PM (Romance Standard Time, UTC+01:00)  #    Comments [2]
 Friday, March 03, 2006

Det slår aldrig fejl - ved opstart af næste alle større projekter skal man altid igennem en lang og opslidende (og nødvendig) vurdering af hvilken (om nogen) ORM-produkt der skal bruges. Der findes et hav af produkter og det kan være svært at overskue, og da et valg samtidigt er rimelig vitalt for projektet (det er ikke nemt at skifte undervejs) skal man tænke sig godt om.

Bare det at finde produkter som kunne være interessante kan være en større sag, men her for nylig faldt jeg over en længere artikel på Code Projekt som lister størstedelen af ORM-produkterne. Samtidigt er artiklen en udmærket intro til ORM. Artiklen hedder "ORM, Code Generation and a bit about MDA" og er skrevet af Rajesh Sadashivan. Find den her.

posted on Friday, March 03, 2006 3:10:49 PM (Romance Standard Time, UTC+01:00)  #    Comments [0]
 Wednesday, March 01, 2006

Jeg har efterhånden set en del demoer af stemmegenkendelse i den kommende (sidst på året) Windows Vista, og jeg er lige imponeret hver gang. Hvis du ikke har set det - så se denne web cast. Det er altså vildt og jeg er sikker på at det i løbet af få år vil ændre måden vi arbejder med computeren på.

posted on Wednesday, March 01, 2006 11:38:54 PM (Romance Standard Time, UTC+01:00)  #    Comments [1]

gel.jpgAt lave sine egne Windows Forms kontroller er egentlig ikke så kompliceret som man umiddelbart skulle tro, men de kan også blive ret avancerede. Faldt lige over denne blogpost som viser hvordan man bygge en noget speciel (men ret fed) knap:

http://blogs.msdn.com/cjacks/archive/2006/03/01/541384.aspx

Bemærk - der er også en del 1

posted on Wednesday, March 01, 2006 9:41:26 PM (Romance Standard Time, UTC+01:00)  #    Comments [0]