by Brian Keating
Wed, March 24 2010 21:27
I'm really loving this declarative approach with silverlight and wpf... (ask me why and I can't tell you ! :-)
Anyway I've just stumbled across a way of managing RiaDataContexts Declaratively
I found it on the Telerik samples.... If you've not looked at these guys controls then check them out!!
<navigation:Page xmlns:dataFormToolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.DataForm.Toolkit" xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"
x:Class="SiteDocs.Loler"
xmlns="//schemas.microsoft.com/winfx/2006/xaml/presentation">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"
xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
xmlns:telerik="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.GridView"
xmlns:riaControls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Ria"
xmlns:e="clr-namespace:SiteDocs.Web.Services"
xmlns:riaData="clr-namespace:System.Windows.Data;assembly=System.Windows.Controls.Ria"
mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480"
Style="{StaticResource PageStyle}"
>
<Grid x:Name="LayoutRoot" >
<ScrollViewer x:Name="PageScrollViewer" Style="{StaticResource PageScrollViewerStyle}" >
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid x:Name="gridLolerLeft" >
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<riaControls:DomainDataSource x:Name="DomainDataSource1" AutoLoad="True" QueryName="GetLolers" PageSize="10">
<riaControls:DomainDataSource.DomainContext>
<e:LolerContext />
</riaControls:DomainDataSource.DomainContext>
<riaControls:DomainDataSource.FilterDescriptors>
<riaData:FilterDescriptorCollection LogicalOperator="Or" />
</riaControls:DomainDataSource.FilterDescriptors>
</riaControls:DomainDataSource>
<telerik:RadGridView x:Name="RadGridView1" ItemsSource="{Binding Data, ElementName=DomainDataSource1}"
Filtering="RadGridView1_Filtering" IsBusy="{Binding IsBusy, ElementName=DomainDataSource1}" />
<telerik:RadDataPager x:Name="RadDataPager1" Grid.Row="1" Source="{Binding Data, ElementName=DomainDataSource1}" DisplayMode="FirstLastPreviousNextNumeric, Text" IsTotalItemCountFixed="True"/>
</Grid>
</Grid>
</ScrollViewer>
</Grid>
</navigation:Page>
by Brian Keating
Tue, March 23 2010 22:57
A few people have asked me what's the easiest way of doing transitions on Silverlight.
One of the easiest ways has to be to use the VisualStateManager with Expression Blend, see screen show for sample logged in state.
If you don't know how to use this tool then start watching a few vids!
To change between states you can use this code..
if (WebContext.Current.User.IsAuthenticated)
{
VisualStateManager.GoToState(this, (WebContext.Current.Authentication is WindowsAuthentication) ? "windowsAuth" : "LoggedIn", true);
}
else
{
VisualStateManager.GoToState(this, "LoggedOut", true);
}

by Brian Keating
Tue, March 23 2010 21:18
If you wish to prevent clients accessing your data
[RequiresAuthentication]
[EnableClientAccess()]
public class LolerService : LinqToSqlDomainService<LolerModelDataContext>
by Brian Keating
Wed, March 17 2010 17:14
Here is come code to show a popup in wpf, i've nothing in the popup at the moment, just a gradient background and border.
<Popup Name="popup1"
Width="{Binding ElementName=bdrCalendar, Path=ActualWidth, Converter={StaticResource MarginValueConverter}}"
Height="150"
Placement="Center"
PopupAnimation="Scroll"
AllowsTransparency="True"
PlacementTarget="{Binding ElementName=bdrCalendar}"
MouseDown="popup1_MouseDown" >
<ctrls:PopupContent />
</Popup>


8e6c93ee-a598-48bc-9a43-85556bb1a6d1|0|.0
Tags:
WPF
by Brian Keating
Mon, March 15 2010 11:15
Over the w/end I was helping a mate with his Data-driven Silverlight app.
I was gobsmacked that his developer spent days and weeks writing plumbing code, hand coding infrastructure code and even worse my friend had to pay for it.
Being able to focus on the business needs is important so having a development platform that better enables that focus and increased productivity is an absolute must.
The solution to this problem is codenamed Alexandria i.e. .NET RIA Services, this technology provides a set of server components and ASP.NET extensions that ease the n-tier development process, making your applications almost as easy to develop as if they were running on a single tier, In addition, services such as authentication, roles and profile management are provided. The combination of client and server enhancements to Silverlight 3 and ASP.NET along with the addition of .NET RIA Services, streamline the end-to-end experience of developing data-driven Web applications also known as Rich Internet Applications, or RIAs.
I’m not going to show you how to do it as there are many-many training resources available but a good place to start is here: http://silverlight.net/getstarted/riaservices/
So if you find yourself writing needless plumbing code for a DAL in Silverlight, then spend some time figuring RIA services out!
(Spend some get some diesel for that digger and opposed to grabbing a shovel and diving in!!)
by Brian Keating
Sat, March 06 2010 18:23
Ever want to filter data in Silverlight? here's a simple example that uses a lambda expression to search on name (case sensitive)
ComboBox cbx = ((ComboBox)sender);
ICollectionView dataView =
CollectionViewSource.GetDefaultView(this.DataContext);
if (!string.IsNullOrEmpty(cbx.Text))
dataView.Filter = f => ((Job)f).Name.Contains(cbx.Text);
else
dataView.Filter = null;
by Brian Keating
Wed, March 03 2010 20:53
Tonight I've stumbled across an interesting Blog on cimgf.
http://www.cimgf.com/2010/02/12/accessing-the-cloud-from-cocoa-touch/#more-909
It's been many years since I wrote PHP, so I'd naturally use asp.net serverside (or if i had a pc powerfull enough I'd use the new REST capabilities of Sharepoint 2010 server).
I've been dying to have a play with Azures for sometime now but I'm always either snowed under with work or playing with some other technology, I remember reading that Azures (storage at least) has a REST API, and with the launch of the iPhone on the Vodafone network at the end of this month I've been looking into what's involved in writing objective C (and some mono stuff) so it seems I may finally get to have a play :-)
6348aec6-16a4-4397-a333-dfd3ba20ad18|0|.0
Tags:
iPhone | REST
by Brian Keating
Wed, March 03 2010 15:32
If you've got a data driven application, databinding is the infrastructure of choice that makes the link between data and your UX
Silverlight 4 has a few improvments that brings it closer to WPF
- TargetNullValue - lets you specify the what to display in the target when the source value is null
e.g. {Binding Path=Name, TargetNullValue=NoName}
- StringFormat - specify how a strnig should be formatted
e.g. {Binding Path=Salary, StringFormat=C}
- FallbackValue - I love this one, comes in pretty handy when dealing with polymorphic classes where a you know in advance what properties specialized classes have and want to display them... or display a fallback value if they don't exist.
e.g. {Binding Path=LastLoggedOn, FallbackValue=Never}
by Brian Keating
Tue, March 02 2010 21:44
Tonight I tried to use the FlowDocument that you'll know well if you are familiar with WPF....
Important part above "tried to use" .... but ... silverlight version 3 doesn't support it :-(
Thats a second thing I've found lacking as I move some code to Silverlight, i've also found that DataTriggers don't work like the do in WPF 