Michael Niethammers Blog

13.10.2009

Silerlight RIA Services

Abgelegt unter: Silverlight, WCF — admin @ 08:24

Derzeit bin ich daran mir die RIA Services für Silverlight mal etwas genauer anzusehen. Grundsätzlich ist der Ansatz sowohl von der Architektur als auch vom Komfort der Genertoren sehr vielversprechend.

Ich habe mir also das RIA Toolkit runtergeladen und gemäß der beschreibung mal ein Beispielprojekt angelegt. Funktionierte alles prima bis auf die Tatsache, daß sich das Projekt nicht kompilieren lässt!:

Warning    1    The "CreateRiaClientFilesTask" task failed unexpectedly.
System.Security.SecurityException: Request for the permission of type ‘System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089′ failed.
   at System.Reflection.Assembly._GetExportedTypes()
   at System.Reflection.Assembly.GetExportedTypes()
   at System.Web.DomainServices.Tools.AssemblyUtilities.GetExportedTypes(Assembly assembly, ILogger logger)
   at System.Web.DomainServices.Tools.DomainServiceCatalog.AddDomainServiceDescriptions()
   at System.Web.DomainServices.Tools.DomainServiceCatalog..ctor(IEnumerable`1 assemblies, IEnumerable`1 references, ILogger logger)
   at System.Web.DomainServices.Tools.ClientProxyGenerator..ctor(String language, IEnumerable`1 assemblies, IEnumerable`1 references, ILogger logger)
   at System.Web.DomainServices.Tools.CreateRiaClientFilesTask.GenerateClientProxies()
   at System.Web.DomainServices.Tools.CreateRiaClientFilesTask.Execute()
   at Microsoft.Build.Framework.ITask.Execute()
   at Microsoft.Build.BuildEngine.TaskEngine.ExecuteInstantiatedTask(EngineProxy engineProxy, ItemBucket bucket, TaskExecutionMode howToExecuteTask, ITask task, Boolean& taskResult)

Nach viel Sucherei habe ich den Fhler inzwischen auch gefunden: Wenn mans weiß ist es wie immer ganz einfach. Sobald man solche Projekte auf einem gemappten Laufwerk eines anderen PCs laufen lässt kommt es zu dieser Meldung. Entweder muss man dann die Berechtigungen entsprechend anpassen oder das Projekt verlegen.

Demnächst gibts hier mehr Infos zu diesem Thema.

7.10.2009

Databinding und Stringformatierung seit SP1 – das ist an mir vorbei gegangen

Abgelegt unter: Silverlight, Visual Studio — admin @ 13:58

Wenn man in WPF oder Silverlight Daten an ein Control bindet kann man die Daten püber einfach zu erstellende Konverter
Klassen konvertieren bevor sie angezeigt werden bzw. bevor sie zurückgeschrieben werden. Das war bisher so.

Seit dem ServicePack1 von Visual Studio 2008 kan man – zumindest bei den alltäglichen Konvertierungen – eine stark vereinfachte
Syntax verwenden:

<TextBlock>

        <TextBlock.Text>

                <Binding ElementName=”myComboBox” Path=”SelectedItem.Content” StringFormat=”{}{0:C}”/>

        </TextBlock.Text>

</TextBlock>

 

<GridViewColumn Header=”Price” DisplayMemberBinding=”{Binding Path=Price, StringFormat=C}”/>

<TextBlock>

        <TextBlock.Text>

            <MultiBinding StringFormat=”Item1 cost: {0}, Item2 cost: {1}”>

                <Binding ElementName=”myComboBox” Path=”SelectedItem.Content”/>

                <Binding ElementName=”myComboBox2″ Path=”SelectedItem.Content”/>

            </MultiBinding>

        </TextBlock.Text>

</TextBlock>

Die Angabe des Stringformats gibt uns die Möglichkeit zumindest einfach Konertierungen ohne eigene Klasse vorzunehmen. Hierbei kann
man d für kurze Datumsangaben, D für lange Datumsangaben, c für Währung und P für Prozentangaben.

Alternativ gibt es auch noch das Contentstringformat mit dem man komplexere Konvertierungen vornehmen kann:

<Label ContentStringFormat=”dddd – d - MMMM”>

    <sys:DateTime>2004/3/4 13:6:55</sys:DateTime>

</Label>

 

<Button ContentStringFormat=”{}{0:MM/dd/yyyy}”>

        <sys:DateTime>2004/3/4 13:6:55</sys:DateTime>

</Button>

 

<ListBox Name=”lb1″ SelectedIndex=”1″ ItemStringFormat=”F1″>

        <sys:Double>3.14159</sys:Double>

        <sys:Double>2.71828</sys:Double>

</ListBox>

 

Diese Vereinfachung ist wirklich hilfreich und funktioniert erst ab ServicePack1 aber dieser dürfte ja inzwischen fast überall freigegeben worden
sein.

.

läuft stressfrei mit WordPress ( WordPress.de )