Wednesday, December 02, 2009

Creating a Reference Project – Introduction

How do you try out new features in a framework or implement a design pattern you haven't tried before? Are you creating a very small and in no way realistic project? or are you implementing it on some codebase at work?

I must admit that I have done both and not always with a good result. What I have been missing is a realistic project that is complex enough to test this:

  • OR/Mappers. One-To-Many, Many-To-Many,  Self-Joined Tables, Component Mapping ….
  • None trivial object relations
  • UX – Master-Detail, Validation, MVVM …
  • Try out a new front-end like Silverlight
  • Try out a new ORM like Entity 4.0 (I am working with NH now)

I know that this is a very incomplete list, but it’s a start.

In the next post I will setup the database and then I will take it from there.

Thursday, November 26, 2009

Creating a Reference Project Part 1 - Setting Up the Database

This is a modified version of the (in)famous Northwind database.

The database has all kind of relationship that can be used to test various OR/Mappers like NHibernate and the Entity Framework

  • Many-To-Many
  • One-To-Many
  • Self join table (Employees)
  • Saving binary objects (photo on Employees)

It also give us the possibility of nested collections Employee->Orders->OrderLines

Northwind Diagram

Monday, November 03, 2008

Silverlight Themes

Inden vi går i gang så start her når du er færdig så tjek disse to links SILVERLIGHT IN STYLE og Toolkit release & Themes - er du færdig, så går vi i gang.

Efter at have læst de 3 blogs kan man se at man har 3 muligheder

  • Bruger en kontrol uden om ens layout grid
  • bruge en ressource uden om ens layout grid
  • Bruge Implicit Style Manger

Ingen af disse forslag tillader at man på en nem måde kan skinne sin applikation. Så det vi har brug for er en måde at gemme hvilken theme man ønsker og så loade det ved opstarten.  Et andet krav må være at koden til dette ikke skal ud i alle pages, men at det kan gøres vha. af arv eller ved at designe applikationen så alle pages bor i en rooth container som er themet

Page med standard theme

Alle silverlight kontroller har et standard theme som er pænt og meget neutralt. Og det skal det også være når man skal ramme alles smag.

image

Jeg har lavet en date picker usercontrol som jeg vil bruges som forsøgsdyr. XAML koden og layout kan sikkert gøres smartere. Men XAML er lidt af et bæst at komme i gang  med, men meget mere om det i kommende blogs.

XAML for DatePicker
<UserControl  x:Class="RamsiteSilverLight.BasePageThemeWithControl"
xmlns:basics="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="196" Height="228" >
<
Grid x:Name="LayoutRoot" Background="White" HorizontalAlignment="Center" VerticalAlignment="Center">
<
Grid Height="Auto" x:Name="InnerGrid" Width="Auto" HorizontalAlignment="Center"
VerticalAlignment="Center" Margin="2,2,2,2">
<
Grid.ColumnDefinitions>
<
ColumnDefinition Width="0.502*"/>
<
ColumnDefinition Width="0.498*"/>
</
Grid.ColumnDefinitions>
<
Grid.RowDefinitions>
<
RowDefinition Height="0.135*"/>
<
RowDefinition Height="0.748*"/>
<
RowDefinition Height="0.118*"/>
</
Grid.RowDefinitions>
<
TextBlock Grid.Row="0" VerticalAlignment="Center" Text="Select a Date"
TextWrapping="Wrap" Grid.Column="0" Grid.ColumnSpan="2" FontSize="16" HorizontalAlignment="Center"/>
<
basics:Calendar Grid.Row="1" Grid.ColumnSpan="2" HorizontalAlignment="Center"
VerticalAlignment="Center" Width="Auto" Grid.RowSpan="1"/>
<
Button x:Name="btnOK" Content="OK" Grid.Row="2" Grid.Column="0" Margin="2,2,2,2"/>
<
Button x:Name="btnCancel" Content="Cancel" Grid.Row="2" Grid.Column="1" Margin="2,2,2,2"/>
</
Grid>
</
Grid>
</
UserControl>


Themes med Theme Control


Lad os starte med det nemmeste. Det nye Silverlight toolkit indeholder en række kontroller som hvis de bruges som en container vil theme alle controller som de indeholder

image


Hvis man er glad for office's 2007 black theme eller det som bruges i blend så er dette lige sagen. Det skal siges at dette er ikke Dark versionen men Light version af blend temaet. XAML for DatePicker

<UserControl x:Class="RamsiteSilverLight.ThemeWithControl"
xmlns:basics="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="196" Height="228" xmlns:expressionLight="clr-namespace:Microsoft.Windows.Controls.Theming;assembly=Microsoft.Windows.Controls.Theming.ExpressionLight">
<
Grid x:Name="LayoutRoot" Background="White" HorizontalAlignment="Center" VerticalAlignment="Center">
<
expressionLight:ExpressionLightTheme>
<
Grid Height="Auto" x:Name="InnerGrid" Width="Auto" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="2,2,2,2">
<
Grid.ColumnDefinitions>
<
ColumnDefinition Width="0.502*"/>
<
ColumnDefinition Width="0.498*"/>
</
Grid.ColumnDefinitions>
<
Grid.RowDefinitions>
<
RowDefinition Height="0.135*"/>
<
RowDefinition Height="0.748*"/>
<
RowDefinition Height="0.118*"/>
</
Grid.RowDefinitions>
<
TextBlock Grid.Row="0" VerticalAlignment="Center" Text="Select a Date" TextWrapping="Wrap" Grid.Column="0" Grid.ColumnSpan="2" FontSize="16" HorizontalAlignment="Center"/>
<
basics:Calendar Grid.Row="1" Grid.ColumnSpan="2" HorizontalAlignment="Center" VerticalAlignment="Center" Width="Auto" Grid.RowSpan="1"/>
<
Button x:Name="btnOK" Content="OK" Grid.Row="2" Grid.Column="0" Margin="2,2,2,2"/>
<
Button x:Name="btnCancel" Content="Cancel" Grid.Row="2" Grid.Column="1" Margin="2,2,2,2"/>
</
Grid>
</
expressionLight:ExpressionLightTheme>
</
Grid>
</
UserControl>

Download, download og mere download af Silverlight værktøjer

For at komme i gang skal der downloades en del. Start med at gå til det officelle Silverlight site og klik på Get Started.

Her er der en grundig trinvis vejledning til hvordan du kommer i gang. Et lille hint - spring ikke installationen af Expression Blend over, du får kraftigt brug for programmet.

Hvad så? ja så er vi i gang og du er sluppet af med 100 gig diskplads.

PS. hvis du har lyst til at se hvad fremtiden bringer for Silverlight herefter forkortet til SL, så gå til denne blog og læs om de mange videoer fra PDC08

Technorati Tags: ,,

Monday, July 16, 2007

SQL Server TSQL WITH VALUES

Hvis man opretter et felt med allow nulls og giver det en default værdi, er det kun de nye felter som får default værdien.
Hvis man har brug for at alle nuværende og fremtidige rækker får værdien, bruger man WITH VALUES

Eksemple:

alter table dbo.discounts
add RevisionDate datetime null CONSTRAINT defRevsionDate default Getdate() with values

Friday, April 07, 2006

SQL Server 2005 Reporting Services (SSRS)

Hej denne artikel er starten på en række artikler om SSRS.
Formålet med artiklerne er at dokumentere den viden jeg indsamler undervejs i processen, men også at gøre min læringsproces mere struktureret. Mit håb er at jeg kan hjælpe andre med at komme hurtigere i gang med SSRS.

Så begynder vi
Når man starter på noget nyt er det altid godt at danne sig et overblik over det man skal i gang med og det kan godt være lidt svært da Microsoft virkeligt har lavet et væld af kursus materiale til SQL Server 2005 og alle dens teknologier. Den første side man skal gå til er SSRS startside på denne vil jeg anbefale at man læser artiklen SQL Server 2005 Reporting Services (SSRS) som nok skal sætte hjernen i sving og få munvandet til at løbe. Derefter kan man se de 3 film som der er links til på startsiden til venstre. Når man har set dem, skulle man havde et godt indblik i hvad SSRS har at tilbyde og det er meget!!

Installation af SSRS
Følgende software skal installeres
  • IIS
  • Visual Studio 2005. Ikke nødvendigt men nice-to-have.
  • SQL Server 2005. Installere alt! også alle eksemplerne da der henvise intens til dem i online hjælpen.

Held og lykke, vi ses måske igen? den næste artikle vil indholde følgende

  • Opret en rapport
  • Tilføj parameter
  • Lav en subrapport til rapporten
  • Publish rapporten