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, 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]>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] *On Behalf Of *.net noobie
> *Sent:* Wednesday, September 17, 2008 9:43 PM
>
> *To:* [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]> 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]>
> 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 page that
> is hosting my Silverlight Applications and then talking too and from the
> 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]> 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 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]>
> wrote:
>
> Authentication Application Service, via WCF is a very limited set of
> functionality compared to what you have in a 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]> wrote:
>
> Thanks to both of you.
>
>
>  ------------------------------
>
> *From:* [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 J
>
>
>
> 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] | W: www.readify.net
>
>
>
> *From:* [EMAIL PROTECTED] [mailto:
> [EMAIL PROTECTED] *On Behalf Of *Jonas Follesø
> *Sent:* Thursday, 18 September 2008 12:42 PM
> *To:* [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]>
> wrote:
>
> Sorry Ross J - 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] | W: www.readify.net
>
>
>
> *From:* [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 membership - i.e.
> use the normal stuff J. 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 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] | W: www.readify.net
>
>
>
> *From:* [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 / 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 - 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
>
> -------------------------------------------------------------------
> 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
>
> -------------------------------------------------------------------
> 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
>
> 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 - List managed by www.readify.net
>
>
>
>   --
> .net noobie™
>
> -------------------------------------------------------------------
> 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
>
>
>
>
> --
> .net noobie™
>
> -------------------------------------------------------------------
> 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
>
>
>
>
> --
> .net noobie™
>
> -------------------------------------------------------------------
> 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
>



------------------------------------------------------------------- 
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