Blog de Julien Dollon (MVP)

Project Manager / Architecte / Formateur

Julien Dollon

Architecte et formateur pour I'FORM/Exakis et Full Professor SUPINFO.

Responsable de la communauté Dotnet-France, Scrum Master pour le projet AHEAD ainsi que nommé Most Valuable Professional, je participe activement à la communauté Microsoft.


 

Mon CV de Consultant/Formateur .NET

Mon Transcript de Formateur .NET

J'interviens en consulting et formation sur les technologies .NET, ALM/TFS, Agilité/Scrum, SharePoint et SQL Server





 
 
 
 
Official INETA Logo
 
IForm


[Silverlight] Les nouveautés de Silverlight 3 et Blend 3

Introduction

sv3beta

A l’occasion du MIX 09 à Las Vegas, Microsoft à mis en ligne le 18 Mars 2009 la nouvelle version en bêta de Silverlight.

Cette nouvelle version de Silverlight n’est pas un renouveau comme le passage de Silverlight 1 (code JavaScript) à Silverlight 2 (Code behind) mais un ajout de composants & fonctionnalités.

Actuellement la version est la Bêta 1 et le produit n’est pas sous licence Go-Live ce qui ne vous permet pas de distribuer d’applications.

Télécharger les outils

Avant de commencer ce tutorial il vous faut vous munir des différents SDK, Framework ou logiciel pour Silverlight 3.

A noter que l’installation des tools Silverlight 3 pour Visual Studio vous désinstallera les outils pour Silverlight 2.

· Le plug in pour le navigateur (noter que le plug in est plus léger que SL2 malgré les nouveautés)

· Les tools pour visual studio

· Blend 3 preview

· Le .NET RIA Services

· La mise à jour du Silverlight Toolkit

· Le SDK Silverlight en CHM

sv3beta2

Silverlight 3

De nouveaux contrôles & mises à jour du toolkit

La première chose que l’on remarque est l’ajout de contrôle à notre Toolbox. Microsoft nous met à disposition plusieurs petits nouveaux, la plupart étant des contrôles du Silverlight Toolkit.

Voici les principaux contrôles que j’ai décidé de présenter :

· Gestion d’erreurs

· SaveFileDialog

· ListBox multiselection

· DataGrid

· ToggleButton

· DockPanel et WrapPanel

· Label

· ViewBow

· AutoCompleteBox

· TreeView

· Expander

· DataForm

· DataPager

· Frame et Page

· Accordion

· ChildWindow

· …

sv3beta3

Gestion d’erreurs

Nous souhaitons créer un formulaire pouvant se binder à classe Product pour enregistrer un nouveau produit.

Nous allons vérifier que chaque champ correspond à ce qu’on attend.

La classe de base :

public class Product

{

private string nomProduit;

public string NomProduit

{

get { return nomProduit; }

set

{

if(String.IsNullOrEmpty(value)) 

throw new Exception("Nom de produit vide");

nomProduit = value;

}

}

}

Puis le code de notre IHM :

        <StackPanel>
            <TextBox Margin="10" VerticalAlignment="Center" Width="200"
            Text="{Binding NomProduit,
		Mode=TwoWay,
		ValidatesOnExceptions=True}" />
            <Button Height="74" Margin="223,0,231,0" Content="Button"/>
            
        </StackPanel>

Et le code-behind :

	public MainControl()
		{
			// Required to initialize variables
			InitializeComponent();
                  Product monProduct = new Product();
		      monProduct.NomProduit = "Test";
		      LayoutRoot.DataContext = monProduct;
		}

Ce qui nous permet d’avoir un message d’alerte dès que la textbox est vide :

sv3beta4

Il existe également le composant ErrorSummary qui vous permet de regrouper toutes les erreurs. Pour cela rajouter la balise NotifyOnValidationError=true

 

<Grid x:Name="LayoutRoot" Background="White">
        <StackPanel>
            <TextBox Margin="10" VerticalAlignment="Center" Width="200"
            Text="{Binding NomProduit,Mode=TwoWay,ValidatesOnExceptions=True, NotifyOnValidationError=true}" />
            <Button Height="74" Margin="223,0,231,0" Content="Button"/>
            
        </StackPanel>
        <dataControls:ErrorSummary VerticalAlignment="Top" Width="205" Height="124" HorizontalAlignment="Left" Margin="8,8,0,0" ></dataControls:ErrorSummary>
    </Grid>

sv3beta5

SaveFileDialog

Le SaveFileDialog manquait à Silverlight 2, Ce composant vous permet d’ouvrir une boite de dialogue vous invitant à sauvegarder un fichier :

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            SaveFileDialog sf = new SaveFileDialog();

            sf.DefaultExt = "txt";
            sf.Filter = "Text files (*.txt)|*.txt";

            if (sf.ShowDialog().Value)
            {
                Stream stream = sf.OpenFile();
                StreamWriter textWriter = new StreamWriter(stream);
                textWriter.WriteLine("Hello Word");
                textWriter.Close();
                stream.Close();
            }
        }

sv3beta6

ListBox multiselection

De base dans Silverlight 2 la listbox ne supporte pas de multi sélection.

<ListBox SelectionMode="Multiple">
            <TextBlock>test</TextBlock>
            <TextBlock>test</TextBlock>
            <TextBlock>test</TextBlock>
            <TextBlock>test</TextBlock>
</ListBox>

sv3beta7

DataGrid

Le DataGrid existe sous Silverlight 2 grâce au Toolkit de Microsoft. Il est désormais intégré de base dans Silverlight 3.

 

   <data:DataGrid AutoGenerateColumns="False" HeadersVisibility="All" x:Name="dtg" ColumnWidth="85" RowHeight="30"CanUserResizeColumns="True"
Width="Auto" Height="Auto" BorderBrush="{x:Null}" VerticalGridLinesBrush="{x:Null}" RenderTransformOrigin="0,-0.002" Background="{x:Null}" IsEnabled="True" Visibility="Visible" Margin="0,21,0,8">
            <data:DataGrid.Columns>
       
                    <data:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <ComboBox Height="20" Width="70"/>
                        </DataTemplate>
                    </data:DataGridTemplateColumn.CellTemplate>

                </data:DataGridTemplateColumn>
                <data:DataGridTextColumn Header="Name" Binding="{Binding    Path=Nom}" Width="Auto" />
            </data:DataGrid.Columns> 
        </data:DataGrid>

sv3beta8

ToggleButton

Le ToggleButton est un bouton pouvant rester enfoncé après clic :

<ToggleButton Content="Mon bouton"></ToggleButton>

sv3beta9 sv3beta10

DockPanel et WrapPanel

Ces deux panels sont disponibles depuis .NET 3.0 dans le WPF. Le WrapPanel est un StackPanel qui revient automatiquement à la ligne lorsqu’on dépasse la taille allouée :

       <controls:WrapPanel Background="Blue" Height="100" Width="100">
            <TextBlock>test</TextBlock>
           <TextBlock>test</TextBlock>
           <TextBlock>test</TextBlock>
           <TextBlock>test</TextBlock>
           <TextBlock>test</TextBlock>
       </controls:WrapPanel>

sv3beta11

Le DockPanel vous permet de séparer en plusieurs parties votre IHM (gauche, droite, haut, bas) :

<controls:DockPanel Height="100" Width="100" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" LastChildFill="False" Margin="0,0,31,23" Grid.Row="0">
    		<Button controls:DockPanel.Dock="Left">Gauche</Button>
            <TextBlock>Le reste</TextBlock>
</controls:DockPanel>

sv3beta12

Label

Le label on ne vous le présente plus, il vous permet de contenir du texte comme un Texblock mais ne gère pas la multi police, les sauts de lignes etc…

<controls:Label Content="Test"></controls:Label>
ViewBox

La viewbox (disponible en WPF) permet d’automatiquement redimensionner son contenu.

		<controls:Viewbox Height="56" HorizontalAlignment="Left" 			Margin="173,103,0,0" VerticalAlignment="Top" Width="61" 			Content="Viewbox" Stretch="Fill">
			<Image Height="Auto" Width="Auto" Source="adUsers.png" 			Stretch="Fill"/>
		</controls:Viewbox>

sv3beta13

AutoCompleteBox

L’AutoCompleteBox est une textbox à laquelle une collection vient se binder pour afficher des propositions de saisie.

    <UserControl.Resources>
        <SilverlightApplication1:Dico x:Key="Dico"/>
    </UserControl.Resources>
    <Grid x:Name="LayoutRoot" Background="White">
        <input:AutoCompleteBox 
                            IsTextCompletionEnabled="False" 
                            Grid.Row="0" Margin="190,26,184,0"
                            ItemsSource="{StaticResource Dico}
	                      Height="28" VerticalAlignment="Top" 
                            d:LayoutOverrides="GridBox"
                        />
    </Grid>

Et la classe:

    public class Dico : ObservableCollection<string>
    {
        public Dico()
        {
            Add("Test");
            Add("Toto");
        }
    }

sv3beta14

TreeView

Contrôle représentant un arbre de données.

        <controls:TreeView>
            <controls:TreeView.Items>
                <controls:TreeViewItem Header="Test">
                    <controls:TreeViewItem Header="Test2"/>
                </controls:TreeViewItem>
            </controls:TreeView.Items>
        </controls:TreeView>

sv3beta15

Expander

L’expander est un HeaderedContentControl. De base il ne possède pas d’effets fade in/out mais il existe des styles sur le site du Silverlight Toolkit.

	<controls:Expander Margin="75,66,301,234" Header="Expander" IsExpanded="True">
    		<Button Height="81" Width="166" Content="Button"/>
      </controls:Expander>

sv3beta16

DataForm

Le composant DataForm vous permet de générer un formulaire par rapport à une instance afin de pouvoir la modifer.

Pour cela, ajouter les références :

· System.ComponentModel

· System.ComponentModel.DataAnnotations

· System.Windows.Controls.Data.DataForm

Le code XAML :

    <UserControl.Resources>
        <SilverlightApplication1:Person Lastname="Jul" Age="18" Comments="Helloword"  x:Key="Julien"/>
    </UserControl.Resources>
    <Grid x:Name="LayoutRoot" Background="White">
        <dataControls:DataForm CurrentItem="{StaticResource Julien}"/>
    </Grid>

Le code de la classe :

    public class Person 
    {
        private string lastname;
        private string age;
        private string comments;

        public string Lastname
        {
            get { return lastname; }
            set { lastname = value; }
        }

        public string Age
        {
            get { return age; }
            set { age = value; }
        }

        public string Comments
        {
            get { return comments; }
            set { comments = value; }
        }
    }

sv3beta17

A noter qu’il est possible de choisir les propriétés bindable ou non, rajouter des regularExpressions et divers validateurs.

DataPager

Le contrôle DataPager ajoute un champ vous permettant de scinder en plusieurs pages vos datagrid, listview et autres conteneurs.

Code XAML :

<Grid x:Name="LayoutRoot" Background="White">
        <ListBox ItemsSource="{Binding}" Grid.Row="2" Grid.Column="1" Margin="5">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="{Binding Lastname}"/>
                        <TextBlock Text=" - " />
                        <TextBlock Text="{Binding Age}" />
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

        <dataControls:DataPager Source="{Binding}">
            
        </dataControls:DataPager>
    </Grid>

Code Behind :

		public MainControl()
		{
			// Required to initialize variables
			InitializeComponent();
            	PagedCollectionView pcv = new PagedCollectionView(new    										ListPerson());
            	pcv.PageSize = 6;
            	DataContext = pcv;
		}

sv3beta18

Frame et Page

Silverlight 3 inclut le système de navigation par page comme le fait déjà son grand frère WPF.

<navigation:Frame Source="/Page2.xaml" x:Name="myFrame" Width="200" Height="120" />

Pour plus d’informations sur le système de page, référez-vous à celui de WPF.

Accordion

Les accordions séparent en plusieurs parties votre écran et s’ouvre sur le clic de l’utilisateur :

<layoutToolkit:AccordionItem Content="item 1" Header="A"  />
            <layoutToolkit:AccordionItem Content="item 2" Header="B – long 											header" />
            <System:String>regular string item 3</System:String>
</layoutToolkit:Accordion>

sv3beta19

ChildWindow

Jusqu’à présent pour faire des fenêtres modales il fallait créer un rectangle opaque qui couvre toute la surface de notre fenêtre puis dessiner un rectangle représentant une fenêtre fille.

Le composant ChildWindow vous simplifie cette tâche pour créer des fenêtres modales et déplaçable.

        <Controls:ChildWindow Width="200" Height="200" Title="Modal">
            <TextBlock Text="Hello"></TextBlock>
        </Controls:ChildWindow>

sv3beta20

Graphismes

Héritage de style

WPF permet de créer des styles héritant d’autres styles. Silverlight 2 qui était privé de cette fonctionnalité l’intègre dans la version 3.

Par exemple je crée un style de base afin d’avoir un background rouge puis je crée un autre style me permettant d’avoir la police taille 12 :

    <StackPanel x:Name="LayoutRoot" Background="White">
        <StackPanel.Resources>
            <Style TargetType="Control" x:Key="myFirstStyle">
                <Setter Property="Background" Value="Red"></Setter>
            </Style>
            <Style TargetType="Control" x:Key="mySecondStyle" 							BasedOn="{StaticResource myFirstStyle}">
                <Setter Property="FontSize" Value="24" />
            </Style>
        </StackPanel.Resources>
        <Button Style="{StaticResource myFirstStyle}" Width="200" 							Height="50" Content="Mon bouton 1"/>
        <Button Style="{StaticResource mySecondStyle}" Width="200" 							Height="50" Content="Mon bouton 2"/>
    </StackPanel>

sv3beta21

« Easing animations »

Les animations voient apparaître une nouvelle DependencyProperty appelée EasingFunction qui contient une méthode Ease :

double Ease(double normalizedTime);

Le easing correspond à la vitesse à laquelle l'effet est appliqué, de base il est linéaire (même cadence du début jusqu’à la fin) mais vous pouvez lui affecter d’autres effets pour affiner votre animation.

sv3beta22

L’API Pixel Shader

Il est possible de faire des effets au même titre que WPF dans vos applications Silverlight 3 grâce à la propriété Effect des UIElements.

De base il existe l’effet BlurEffect et DropShadowEffect.

	<Button Height="142" Margin="142,87,190,0" VerticalAlignment="Top" 									Content="Button">
			<Button.Effect>
				<BlurEffect Radius="8"/>
			</Button.Effect>
		</Button>
		<Button Height="101" Margin="142,0,190,124" 							VerticalAlignment="Bottom" Content="Button">
			<Button.Effect>
				<DropShadowEffect Direction="312" ShadowDepth="9"/>
			</Button.Effect>
		</Button>

sv3beta23

Les projections (3D)

Il est désormais possible de créer des effets 3D en Silverlight 3 grâce aux projections.

Contrairement à WPF qui possède son propre moteur 3D avec tous les composants nécessaire, Silverlight lui est doté d’une seule classe abstraite nommée Projection qui va nous permettre de faire des effets 3D.

sv3beta24

 

sv3beta25

sv3beta26

sv3beta27

Application offline

Silverlight 3 permet de développer des applications qui sont en dehors du navigateur.

Vous pouvez désormais avoir une application riche sur le web et en client lourd sur votre machine. De plus le launcher gère automatiquement les updates à chaque ouverture.

· Création d’un projet Silverlight dans blend 3 ou Visual Studio 2008

asv1

· Création d’un fichier Manifest sous Visual Studio 2008 (Clic droit sur l’assembly, propriétés) et installation

asv2

Puis aller modifier ce fichier pour obtenir ça :

<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment"
	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
	<Deployment.Parts>
	</Deployment.Parts>
  <Deployment.ApplicationIdentity>
    <ApplicationIdentity
        ShortName="SilverlightApplication3"
        Title="SilverlightApplication3">
      <ApplicationIdentity.Blurb>SilverlightApplication3
</ApplicationIdentity.Blurb>
    </ApplicationIdentity>
  </Deployment.ApplicationIdentity>
</Deployment>

A noter qu’il est possible de paramétrer l’icône de l’application dans ce fichier manifest.

Vous pouvez maintenant exécuter votre projet et faire un clic droit dans le navigateur pour installer votre programme :

asv3

Vous avez la possibilité de l’installer dans le menu démarrer ou sur le bureau :

asv4

Puis votre application s’exécute.

Voici le raccourci sur le bureau que va créer cette action :

"C:\Program Files\Microsoft Silverlight\3.0.40307.0\sllauncher.exe" localhost.2

Vous souhaitez la désinstaller ? C’est très simple, il vous suffit de refaire un clic droit sur votre application web :

asv5

· Et niveau code-behind ?

Il est possible côté code-behind de savoir si vous êtes ou non dans un navigateur. Il est également possible de lancer l’installation sur le clic d’un bouton :

void MainPage_Loaded(object sender, RoutedEventArgs e)
        {
            if (App.Current.RunningOffline)
            {
                //Offline
            }
            else
            {
                //Dans le navigateur
            }
  }
	private void Button_Click(object sender, RoutedEventArgs e)
        {
            bool allowed = App.Current.Detach();
            if (allowed)
            {
                //L’installation c’est bien lancée
            }
        }

        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            if (NetworkInterface.GetIsNetworkAvailable())
            {
                //Utilisation d’un web service
            }
            {
                //Utilisation de l’isolatedStorage
            }
   }

Un format HD pour la vidéo

Grâce à Expression Encoder, il vous sera possible d’insérer des médias de type H.264(HD) dans vos applications Silverlight ainsi que la technologie Smooth HD qui permet d’envoyer un flux vidéo suivant la bande passante du client.

asv6

Amélioration du Binding

Les développeurs Silverlight 2/WPF se sont peut être rendu compte que le binding entre éléments n’était pas disponible. Cette fonctionnalité indispensable est incorporée dans Silverlight 3.

asv7

<Button x:Name="button" Height="142" Margin="142,87,190,0" VerticalAlignment="Top" Content="Button"/>
<Slider Height="33" Margin="110,0,132,159" VerticalAlignment="Bottom" Value="{Binding ElementName=button, Mode=TwoWay, Path=Opacity, UpdateSourceTrigger=Default}" Maximum="1"/>

L’API LocalConnection

L’API LocalConnection vous permet de communiquer de façon asynchrone avec d’autres éléments le tout basé sur l’HTML Bridge.

Il vous est possible de faire communiquer deux applications silverlight sur la même page.

La mise en œuvre est simple, d’un côté l’envoi d’un signal de la première application :

LocalMessageSender msgSender = new LocalMessageSender("Header");
msgSender.SendAsync("message test");

et côté receveur :

	public MainControl()
	{
			// Required to initialize variables
			InitializeComponent();
            LocalMessageReceiver receiver = new 									LocalMessageReceiver("Header");
            receiver.MessageReceived += new 					EventHandler<MessageReceivedEventArgs>(receiver_MessageReceived);
            receiver.Listen();
	}

	private void receiver_MessageReceived(object sender, 							MessageReceivedEventArgs e)
      {
	        //e.Message = message test
      }

Utilitaire pour Web Service

Niveau Web Service, Silverlight 3 supporte la sérialisation xml binaire pour pouvoir communiquer avec WCF.

Un nouvel outil à vu le jour, il s’appelle slsvcutil.exe et il est utilisé lors de l’ajout de service référence pour générer vos proxys.

slsvcutil.exe http://myservice.com/myendpoint.svc?WSDL

Les Merged ResourceDictionaries

Les resourceDictionnaries vous permettent de stocker vos styles et templates d’application en application. Cependant vous êtes souvent amené à en avoir plusieurs (un pour les dégradés, un autre pour les templates de boutons etc…). Le Merged ResourceDictionnary vous permet de granuraliser vos différents dictionnaires :

	  <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/dico1.xaml" />
                <ResourceDictionary Source="/dico2.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>

Le cache

Il est possible de mettre en cache certains assemblies pour éviter de les télécharger à chaque ouverture de votre application Silverlight.

Par défaut cela n’est pas actif, pour cela rendez-vous dans le fichier Manifest :

    <Deployment.ExternalParts>
      <ExtensionPart Source="http://go.microsoft.com/fwlink/?LinkID=XXXXXX" />
   </Deployment.ExternalParts>

Autres

Il existe de nombreuses autres fonctionnalités implémentées dans Silverlight 3 comme :

· Le support du multi-touch

· Le smooth streaming

· Le Bitmap caching

· Les thèmes pour vos applications

· …

Je vous invite à lire ce lien pour de plus amples informations : http://silverlight.net/getstarted/silverlight3/default.aspx

Blend 3

Tout d’abord vous remarquerez que l’installeur a été légèrement amélioré ainsi que les animations de transitions dans le premier menu de blend.

L’interface globale a peu changé et reste dans le même esprit que le précédent.

La fonctionnalité la plus appréciée sera l’IntelliSense dans blend !

Il est possible en survolant vos conteneurs de les sectionner grâce à un clique :

aa1

De même, pas besoin d’un double clic sur votre conteneur pour insérer quelque chose dedans, le survole de la souris suffit.

La manipulation de gradient brush se fait plus facilement avec le nouvel outil (meilleure intégration avec la souris) :

aa2

La gestion des projections sur les UIElements :

aa3

La possibilité d’importer des fichiers adobe :

aa4

Blend 3 supporte également les projets sur TFS.

Il gère mieux l’ajout/suppression de données telles que les ObjectDataSource.

aa5

Il est possible de faire un drag ‘n’ drop de votre DataSource sur une DataGrid :

aa6

Vous pouvez rajouter un SampleDataSource qui vous générera une classe et des données de test.

aa7

Lors de la création d’une storyboard, vous pouvez modifier votre animation grâce au l’Easing :

aa8

La suite prochainement !

Posted: Mar 24 2009, 23:55 by juliend | Comments (12) RSS comment feed |
  • Currently 3.8/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: .NET | Général | WPF/Silverlight

Comments

christophen said:

Un format HD pour la vidéo

Grâce à Expression Encoder, il vous sera possible d’insérer des médias de type H.264(HD) dans vos applications Silverlight ainsi que la technologie Smooth HD qui permet d’envoyer un flux vidéo suivant la bande passante du client.


Plus que ça, l'api de silverlight 3 permet d'intégrer son propre codec, Moonlight 1.9 exploite déjà ce fillon, un codec OGG théora/vorbis est déjà implémenté et sera amélioré pour profiter de SIMD puis intégré à moonlight.

Bon article Julien.

# March 25 2009, 08:49

julienc said:

Excellent, il faut que je m'y mette ! Super article ;) Merci

# March 25 2009, 14:52

Soumow said:

J'adore!! super l'article merci Smile))

# April 10 2009, 16:36

nk said:

Laughing merci merci !

# May 18 2009, 11:02

Sam said:

Merci pour les infos. Cependant je ne vois nul part l'ajout d'un drag'n drop manager dans Silverlight. Je trouve ca aberrant pour un environnement RIA... Flex ou n'importe quel bon framework javascript en tous un !

J'ai une petite question par rapport au Validators. Si mes classes clientes sont generees par l'importateur de service WCF, comment est-ce que je fais pour ajouter la levee d'exceptions dans mes proprietes ? A chaque fois que je reference mon service, le code va etre remplace...

Merci !

# May 30 2009, 11:47

Julien Dollon said:

Bonjour Sam,
Silverlight est jeune est il a encore beaucoup de chemin à faire pour concurrencer flex !
Pour ton problème de génération avec le service WCF, normalement ton IHM ne doit pas être en contact direct avec cette classe (n-tiers, mvvm etc). Si tu souhaites malgré tout l'utiliser il te faudra jouer avec les classes partielles pour te faire des accesseurs pour Silverlight.
Bien à toi

# May 30 2009, 13:07

Boufous said:

C'est très intéressant...Merci

# June 09 2009, 12:49

nexdotnet.wordpress.com said:

Pingback from nexdotnet.wordpress.com

Silvelight 3… « Nexdotnet’s Blog

# June 10 2009, 14:54

micka39.info said:

Pingback from micka39.info

Silverlight 3 vient de sortir en version 3 ! | Micka39

# July 09 2009, 23:37

nk54 said:

pingback : j'ai bousiller tout mon environnement de dev ! Cry

j'ai installer silverlight 3. Le nouveau sdk, le nouveau msi-toolkit.

En relançant mes projets, déjà, blend me tape une exception des le lancement d'un nouveau projet ou du chargement d'un projet existant.

Visual web developer express ne reconnait même plus silverlight Cry

Certains ont t il eu ces problèmes ? Les ont ils résolus ? (pk microsoft pense que tout le monde a acheté visual studio standard Cry une bonne matiné de gâché ... Et l'aprèm va pas être mieux je sens ^^)

# July 10 2009, 13:27

Julien Dollon said:

Je regarde dès que je rentre de vacances !

# July 11 2009, 20:44

nk54 said:

J'ai enfin réussi à lancer mes projets. Pour cela, j'ai recréer un projet de type Silverlight Navigation Application. J'ai ajouter les pages au projet et tout à l'air de fonctionner.

Le nouveau skin de base de Navigation est plus à mon gout Smile

# July 13 2009, 15:47

Add comment




  Country flag

biuquote
  • Comment
  • Preview
Loading

captcha

*