+1 on triggers/data triggers.

It's a PITA to make apps with all the bells and whistles in XAML then have to 
break M-V-VM to "finish" it off.

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jonas Follesø
Sent: Thursday, 18 September 2008 10:24 PM
To: [email protected]
Subject: Re: [OzSilverlight] A couple of questions

I tend to favor the "Model-View-ViewModel" pattern for Silverlight and WPF, and 
is _really_ concerned with providing a best possible design time experience. I 
always strive for no-code behind in my applications. These are some of the 
challenges:


 *   No support for commands. Can be implemented using attached properties. But 
commands is important to prevent coupling between event invoker (button/UI 
element) and event handler. The fewer "named elements" you have to hook events 
against the better. More flexibility to designer, less chance to screw up.
 *   No support for triggers/data triggers. Today there is no easy way to 
trigger an animation based on changes made in the ViewModel. For instance, say 
I set an "IsBussy" property to true, in that case I would like to start a 
"ProgressBarAnimation". Today I have to write code behind to do that. Nikhil 
Kothari has some interesting examples on how to use behaviors to achieve 
trigger-like behavior in Silverlight. But his current implementation breaks 
Blend 2.5 support, so I haven't been able to use it.
 *   Not allot of guidance on multi page navigation. This is something I've 
gotten allot of questions. I normally solve this by swapping parts in and out 
of a "master page", and have a navigation helper on the Application object. But 
some clear guidance on this would be helpful.
 *   How to provide design time dummy data. I solve this by providing mock 
implementations of external services, and it works quite well. I use the 
HtmlPage.IsEnabled to detect weather or not the code is running in Blend. I 
know this isn't a good check, and that this property is actually used to check 
if the host has blocked access to the HTML DOM. So a better hook to see where 
the code is executing would be valuable.
 *   Validation and Data Binding. I'm not a big fan of the way you have to hook 
event handlers to handle the binding exception event when doing validation. 
This forces me to add code in the code-behind. I wish I could solve this more 
declarative. Nikhils behaviors might be one way, a custom control could be 
another solution.
These are some of the initial comments on this topic. I agree that it's 
interesting to see what people are discovering about Silverlight. At the same 
time it's also good to reuse alot of experience from WPF. I know Rocky Lotkha 
is doing interesting things with CSLA.NET<http://CSLA.NET>, and there is all 
ready an early port of Prism for Silverlight (Composite WPF Guidance).

Cheers,
Jonas :)






On Thu, Sep 18, 2008 at 5:28 PM, Scott Barnes <[EMAIL PROTECTED]<mailto:[EMAIL 
PROTECTED]>> wrote:

I'm seeing a bit of traffic these days around "how to architect" Silverlight. I 
think this is exciting news as folks have not only digested Silverlight well, 
but are now pushing beyond the boundaries (growth is a powerful thing to 
monitor and observe).



I've got a few ideas on how to solve this, but am curious to hear some of your 
pain points specifically around what hurdles you face when architecting Rich 
Applications such as Silverlight?





From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>] On 
Behalf Of .net noobie
Sent: Wednesday, September 17, 2008 9:43 PM

To: [email protected]<mailto:[email protected]>
Subject: Re: [OzSilverlight] A couple of questions



ok cool, thanks

On Thu, Sep 18, 2008 at 2:31 PM, Jonas Follesø <[EMAIL PROTECTED]<mailto:[EMAIL 
PROTECTED]>> wrote:

Well, you can actually do all this from a Silverlight application. And anything 
you could do from MS AJAX, you could do from Silverlight.



And to be fair the "Client Application Services" (for Windows Forms/WPF) comes 
with classes that abstract away the service interaction, and actually gives you 
a "client side" Membership- and Role Provider. But under the hood it's all HTTP 
JSON calls (I assume for performance reasons, as their API only has synchronous 
methods for accessing the Membership- and Role Provider).



Check this post: 
http://blogs.msdn.com/brada/archive/2007/05/23/net-client-application-services.aspx

for more information on what you can do.



The service-end point used by the "Client Application Services" client 
libraries are:

http://localhost/myservice/Profile_JSON_AppService.axd

http://localhost/myservice/Authentication_JSON_AppService.axd

http://localhost/myservice/Role_JSON_AppService.axd



You don't get WSDL for these services, but you can invoke them as REST services 
and do things like create user, create role etc. given that the currently 
authenticated user have the permissions needed.



On Thu, Sep 18, 2008 at 2:19 PM, .net noobie <[EMAIL PROTECTED]<mailto:[EMAIL 
PROTECTED]>> wrote:

"new users, create roles, change role assignment etc." they are the things I 
wanted to do...

so really I would be better off handling all this in the 
ASP.NET<http://ASP.NET> page that is hosting my Silverlight Applications and 
then talking too and from the ASP.NET<http://ASP.NET> page with my Silverlight 
Application to do these things?

then to stop the page reloading I would need to do these tasks "new users, 
create roles, change role assignment etc." via something like MS AJAX...?



On Thu, Sep 18, 2008 at 2:07 PM, Jonas Follesø <[EMAIL PROTECTED]<mailto:[EMAIL 
PROTECTED]>> wrote:

>From a Silverlight client point of view, what else do you really need? 
>Everything that has to do with validation, accessing user store etc. has to 
>happen on the server and not on the client. Some thing, like Authorization 
>(does this user belong to this role) is useful from the UI, as you can 
>enable/disable certain buttons and functionality. But in the end you have to 
>redo all the validation on the server as you can't trust any input coming from 
>the client.



The reason you got allot more functionality in ASP.NET<http://ASP.NET> is 
because you're running on the server, and that is a whole different ball game. 
You got functionality to create new users, create roles, change role assignment 
etc. To do those things from a Silverlight client you would have to expose (and 
secure) the individual pieces your self.













On Thu, Sep 18, 2008 at 2:00 PM, .net noobie <[EMAIL PROTECTED]<mailto:[EMAIL 
PROTECTED]>> wrote:

Authentication Application Service, via WCF is a very limited set of 
functionality compared to what you have in a ASP.NET<http://ASP.NET> page, you 
can do a few things like "Login, Logout" and one to two there things right..?



when I was checking it out I ended up making a normal WCF service for my 
Silverlight application, then adding the membership to it  via just wrapping 
the methods of the Membership class I wanted, but it also had a few issues 
doing it that way to, but I got all the parts of Membership I wanted to use...?



is this a bad way to go about it in the future?



please note it was just a learning application for myself, so I was not really 
worried about any security issues passing the data back and forth at the time



On Thu, Sep 18, 2008 at 12:51 PM, Ross McKinnon <[EMAIL 
PROTECTED]<mailto:[EMAIL PROTECTED]>> wrote:

Thanks to both of you.



________________________________

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>] On 
Behalf Of Jordan Knight

Sent: Thursday, 18 September 2008 12:44 PM

To: [email protected]
Subject: RE: [OzSilverlight] A couple of questions



You where slowed down by all the extra detail :)



Regards,

Jordan Knight
Readify - Senior Developer

Suite 206 Nolan Tower | 29 Rakaia Way | Docklands | VIC 3008 | Australia
M: +61 403 532 404 | E: [EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]> | W: 
www.readify.net<http://www.readify.net/>



From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>] On 
Behalf Of Jonas Follesø
Sent: Thursday, 18 September 2008 12:42 PM
To: [email protected]<mailto:[email protected]>
Subject: Re: [OzSilverlight] A couple of questions



Haha - looks like you beat me too by 5 min Jordan ;)





On Thu, Sep 18, 2008 at 12:38 PM, Jordan Knight <[EMAIL 
PROTECTED]<mailto:[EMAIL PROTECTED]>> wrote:

Sorry Ross :) - not Michael.



Regards,

Jordan Knight
Readify - Senior Developer

Suite 206 Nolan Tower | 29 Rakaia Way | Docklands | VIC 3008 | Australia
M: +61 403 532 404 | E: [EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]> | W: 
www.readify.net<http://www.readify.net/>



From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>] On 
Behalf Of Jordan Knight
Sent: Thursday, 18 September 2008 12:35 PM
To: [email protected]
Subject: RE: [OzSilverlight] A couple of questions



Hi Michael,



I can answer 1 and 3 for you (and maybe a bit of 4):



The short answer is Forms Authentication and/or ASP.NET<http://ASP.NET> 
membership - i.e. use the normal stuff :). Whenever Silverlight accesses the 
server, it uses the standard browser networking stack, so you will have access 
to session state, cookies and all the other goodies you expect.



To find out which user is logged in you can use the ASP.NET<http://ASP.NET> 
Authentication Application Service, which can be exposed via WCF quite easily 
(then you can log in and check login status etc from Silverlight).



4 is a little more tricky, but basically you could hook up events to AJAX 
changes in the page then fire through pieces of information to Silverlight 
using the HTML JavaScript bridge... It's quite easy to do, have a Google around.

Regards,

Jordan Knight
Readify - Senior Developer

Suite 206 Nolan Tower | 29 Rakaia Way | Docklands | VIC 3008 | Australia
M: +61 403 532 404 | E: [EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]> | W: 
www.readify.net<http://www.readify.net/>



From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>] On 
Behalf Of Ross McKinnon
Sent: Thursday, 18 September 2008 12:20 PM
To: [email protected]
Subject: [OzSilverlight] A couple of questions



Hi all,



I am the CIO of Michael Hill Jeweller which is an international (US, Canada, 
New Zealand, Australia) jewellery retail chain whose global head office is 
based in Brisbane and we are in the process of replacing our global website. 
The executive here are very excited by the opportunities presented by 
silverlight and we will be developing the new site using this technology and 
are trying to release it as soon as possible.



I did have a couple of questions which I have posed to Microsoft, but they have 
been unable to answer and most of them are directed towards my personally 
perceived weaknesses of silverlight and I was hoping that someone would be able 
to point out how they can be achieved. Hopefully our work arounds are not the 
suggested best practice.

1) What is the best way of persisting user identity through multiple 
silverlight pages?

2) It appears to me that linq to SQL entities seem to lose the ability to 
maintain state (ie know what is changed) after passing through a wcf call and 
silverlight treats it like a normal class. Is that the case and if so, is that 
going to be changed?

3) What is the best practice for integrating security and sessions between 
asp.net<http://asp.net> / silverlight / wcf?

4) Are there plans for a binary formatter in the silverlight framework?

5) I have been overlaying silverlight pages over aspx with master and content 
pages. The largest issue with that is being able to pass information between 
your master and content pages (easily achievable in aspx), but are there any 
plans to implement a method to easily pass information between SL pages on the 
client (usually user specific information), other than at creation of the page.

Thanks for any help in advance,

Ross.

18/9/2008   Ross McKinnon     [email protected]

 This email and any attachments ("Email") are intended only for the addressee
and may contain privileged, confidential and/or disclosure-exempt information.
You must not edit this Email without our express consent.
Michael Hill Jeweller (Australia) Pty Ltd does not warrant that this Email
is complete, error-free or virus free, and by opening any attachments,
you accept full responsibility for the consequences. If you are not the 
addressee,
you must not disseminate, rely upon or copy this Email, and you must immediately
erase permanently and destroy all records of it and notify us by phone (at our 
cost).
Thank you.

------------------------------------------------------------------- 
OzSilverlight.com - to unsubscribe from this list, send a message back to the 
list with 'unsubscribe' as the subject.
Powered by mailenable.com<http://mailenable.com> - List managed by 
www.readify.net<http://www.readify.net>

------------------------------------------------------------------- 
OzSilverlight.com - to unsubscribe from this list, send a message back to the 
list with 'unsubscribe' as the subject.
Powered by mailenable.com<http://mailenable.com> - List managed by 
www.readify.net<http://www.readify.net>

------------------------------------------------------------------- 
OzSilverlight.com - to unsubscribe from this list, send a message back to the 
list with 'unsubscribe' as the subject.
Powered by mailenable.com<http://mailenable.com> - List managed by 
www.readify.net<http://www.readify.net>



------------------------------------------------------------------- 
OzSilverlight.com - to unsubscribe from this list, send a message back to the 
list with 'unsubscribe' as the subject.
Powered by mailenable.com<http://mailenable.com> - List managed by 
www.readify.net<http://www.readify.net>

------------------------------------------------------------------- 
OzSilverlight.com - to unsubscribe from this list, send a message back to the 
list with 'unsubscribe' as the subject.
Powered by mailenable.com<http://mailenable.com> - List managed by 
www.readify.net<http://www.readify.net>

18/9/2008   Ross McKinnon     [email protected]

 This email and any attachments ("Email") are intended only for the addressee
and may contain privileged, confidential and/or disclosure-exempt information.
You must not edit this Email without our express consent.
Michael Hill Jeweller (Australia) Pty Ltd does not warrant that this Email
is complete, error-free or virus free, and by opening any attachments,
you accept full responsibility for the consequences. If you are not the 
addressee,
you must not disseminate, rely upon or copy this Email, and you must immediately
erase permanently and destroy all records of it and notify us by phone (at our 
cost).
Thank you.

------------------------------------------------------------------- 
OzSilverlight.com - to unsubscribe from this list, send a message back to the 
list with 'unsubscribe' as the subject.
Powered by mailenable.com<http://mailenable.com> - List managed by 
www.readify.net<http://www.readify.net>



--
.net noobie(tm)

------------------------------------------------------------------- 
OzSilverlight.com - to unsubscribe from this list, send a message back to the 
list with 'unsubscribe' as the subject.
Powered by mailenable.com<http://mailenable.com> - List managed by 
www.readify.net<http://www.readify.net>



------------------------------------------------------------------- 
OzSilverlight.com - to unsubscribe from this list, send a message back to the 
list with 'unsubscribe' as the subject.
Powered by mailenable.com<http://mailenable.com> - List managed by 
www.readify.net<http://www.readify.net>



--
.net noobie(tm)

------------------------------------------------------------------- 
OzSilverlight.com - to unsubscribe from this list, send a message back to the 
list with 'unsubscribe' as the subject.
Powered by mailenable.com<http://mailenable.com> - List managed by 
www.readify.net<http://www.readify.net>



------------------------------------------------------------------- 
OzSilverlight.com - to unsubscribe from this list, send a message back to the 
list with 'unsubscribe' as the subject.
Powered by mailenable.com<http://mailenable.com> - List managed by 
www.readify.net<http://www.readify.net>



--
.net noobie(tm)

------------------------------------------------------------------- 
OzSilverlight.com - to unsubscribe from this list, send a message back to the 
list with 'unsubscribe' as the subject.
Powered by mailenable.com<http://mailenable.com> - List managed by 
www.readify.net<http://www.readify.net>
------------------------------------------------------------------- 
OzSilverlight.com - to unsubscribe from this list, send a message back to the 
list with 'unsubscribe' as the subject.
Powered by mailenable.com<http://mailenable.com> - List managed by 
www.readify.net<http://www.readify.net>

------------------------------------------------------------------- 
OzSilverlight.com - to unsubscribe from this list, send a message back to the 
list with 'unsubscribe' as the subject.
Powered by mailenable.com - List managed by www.readify.net



------------------------------------------------------------------- 
OzSilverlight.com - to unsubscribe from this list, send a message back to the 
list with 'unsubscribe' as the subject.

Powered by mailenable.com - List managed by www.readify.net

Reply via email to