Does Expression Encoder fall into the same bucket? Is it possible to write 
plugins / extensions to the UI?

What I've always wanted to do is create a Silverlight host within encoder, 
allow for all the richness of encoder to record a Silverlight application in 
full quality and with automation hooks.

I'm aware of the encoder SDK to essentially do command line encoding, but I'm 
wondering about extending the WPF app itself.

Does encoder even support the admin command or folder?

John.


-----Original Message-----
From: ozsilverlight-boun...@ozsilverlight.com 
[mailto:ozsilverlight-boun...@ozsilverlight.com] On Behalf Of Scott Barnes
Sent: Wednesday, 7 April 2010 12:05 PM
To: ozSilverlight; carl.scarl...@bankwest.com.au; jo...@follesoe.no
Cc: David Pugmire
Subject: RE: How to hack Expression Blend.

I love where this is going :)

I think agreement is there around what you're saying. I think ideally the end 
point for the extensibility is that having the full control over the 
PropertyGrid area for "My" control is the ideal shared goal. In that if I'm 
engaged to work with customer and they have existing developers and my role is 
to fix the UI related issues with a given project, I'd like to walk in with the 
ability to aggregate existing controls (whether Microsoft or 3rd party), style 
them and then at the same time provide some level of locked down control which 
essentially "Do not touch unless you know what you're doing design wise" to 
help protect developer art from creeping into my SL/WPF mona-lisa :)

That or if you provided custom 3rd party controls into an existing project 
you'd like to tidy up the way its used etc without exposing the full metadata 
for the control (at times having the .design extension to a project isn't 
always available given you'd impact the existing code base in a more aggressive 
manner than allowed).

anyway we can go deeper if you want :) just name when/where the next software 
review is :) hehe


________________________________________
From: ozsilverlight-boun...@ozsilverlight.com 
[ozsilverlight-boun...@ozsilverlight.com] On Behalf Of Peter Blois 
[pete...@microsoft.com]
Sent: Tuesday, April 06, 2010 5:48 PM
To: carl.scarl...@bankwest.com.au; ozsilverlight@ozsilverlight.com; 
jo...@follesoe.no
Cc: David Pugmire
Subject: RE: How to hack Expression Blend.

Yes, but in order to do this though we need to define what the extensibility 
scenarios need to be, define the APIs, lock them down (so we don’t break 
extensions between releases), then document them. Doesn’t seem too hard except 
that everyone seems to be looking for completely different extensibility points 
and we can’t afford to lock down every API we have.

We’re slowly making progress and hoping that the limited hackability that’s in 
there now will help us define the scenarios and goals when we do start in 
earnest.

From: carl.scarl...@bankwest.com.au [mailto:carl.scarl...@bankwest.com.au]
Sent: Tuesday, April 06, 2010 5:26 PM
To: ozsilverlight@ozsilverlight.com; jo...@follesoe.no; Peter Blois
Cc: David Pugmire
Subject: RE: How to hack Expression Blend.

Awesome.

Is there any plans to support extensibility in Expression for future releases?

Love Snoop and Rooler by the way!

Carl.

From: ozsilverlight-boun...@ozsilverlight.com 
[mailto:ozsilverlight-boun...@ozsilverlight.com] On Behalf Of Peter Blois 
<pete...@microsoft.com>
Sent: Wednesday, 7 April 2010 1:38 AM
To: Jonas Follesø <jo...@follesoe.no>; ozSilverlight 
<ozsilverlight@ozsilverlight.com>
Cc: David Pugmire <da...@microsoft.com>
Subject: RE: How to hack Expression Blend.

My earlier response bounced and I forgot to resend ☹

Just to call out the official messaging around this- the Blend addin APIs are 
completely unsupported and very prone to breaking between releases, with 
service packs, etc. But if you’re curious about poking around, a good starting 
point would be to take a look at the PrototypingPackage class in 
Microsoft.Expression.Prototyping.HostEnvironment.dll using Reflector.

You should be able to get things into the scene using the selection service 
which will give you access to SceneNodes (or SceneElements), from which you can 
get the ModelItem (SceneNodeModelItem) which allows you to use the documented 
ModelItem extensibility APIs available to artboard adorners and such.

There’s also some interesting techniques 
here<http://geekswithblogs.net/tkokke/archive/2010/04/01/building-a-ldquorealrdquo-extension-for-expression-blend.aspx>
 which could be useful.

Again, none of this is fully supported!


From: Jonas Follesø [mailto:jo...@follesoe.no]
Sent: Monday, April 05, 2010 11:54 PM
To: ozSilverlight
Cc: Peter Blois; David Pugmire
Subject: Re: How to hack Expression Blend.

Interesting approach Scott, thanks for sharing!

Did some Blend hacking back in 2008 to do the Colorful addin 
(http://colorful.codeplex.com/), and at the time extensibility was fairly 
limited. It looks like this is at least a bit better (hopefully we'll have some 
documentation when Blend 4.0 RTM?).

I couldn't figure out how to programatically add custom XAML to the open 
document/App.xaml or any resource dictionary. So they way I managed to 
integrate the add-in was through drag-and-drop and spying on the clipboard. So 
in general I produce XAML on the clip board Blend can understand.

Having an API giving you DOM like access would be awesome.

- Jonas
On Fri, Apr 2, 2010 at 11:03 AM, Scott Barnes 
<scott.bar...@readify.net<mailto:scott.bar...@readify.net>> wrote:
Adding two Microsoft Rockstars whom may find the below of interest - or not .. 
;) hehe

Pete: what's your thoughts on David's approach below in the url? dangerous or 
safe?
http://davidburela.wordpress.com/2010/02/02/guide-to-creating-expression-blend-3-addins/

David / All,
heh funny how we're both attacking blend from different angles and kind of 
arrive at the same entry point - yet - didn't talk to one another once about 
it.. Go Readify! ☺

I think your approach is much cleaner than walking the VisualTree like mine and 
I'm pretty sure yours is the "supported" way of doing things (i.e. Blend's not 
likely to introduce breaking changes to its current structure - so I've been 
told).


I'd love to see Blend take on even more of an extensibility than it has today, 
in that for example:
    [CategoryVisibility("Font",false)]
    [CategoryVisibility("Common Properties",false)]
    [CategoryPanel(typeof(MyPanel),"Panel Name","Description")]
    public class ConsoleWindow : ContentControl
    {

This would effectively inject your own Panel into the Property Grid. As I think 
if we had a basic SDK/API to tap into and route actions through, we could keep 
a tighter control over how UserControl's Turnkeys work etc. Then using API's 
like:


            MyCustomControlTag tag = new MyCustomControlTag();
            tag.SetType(typeof(MyCustomControl));
            tag.Name = "Item01";
            tag.MyCustomProperty = new MyValue();
            BlendVisualDOMHelper.CreateElement(myParentTag, tag, new 
TagOrderAttribute(TagOrder.Later), TreeBrowseable.No);

This would also allow as to write XAML through a controlled set of approaches 
(Much like HTML DOM access today).


•        We new-up a MyCustomControlTag which inherits a BaseTag class (usual 
UserControl / Control properties etc attached).

•        We define the "Type" so that it can auto-resolve the xmlns="" for us 
before injecting it into your XAML at design-time.

•        We can access our "Custom" properties as they derive from 
MyCustomControl

•        We then Inject this into the XAML DOM via BlendVisualDOMHelper through 
a factory method - CreateElement.

•        We then feed in the tag and make sure its attached to its ParentNode.

•        We then feed in an Ordering attribute (I quite like how PropertyOrder 
works today in Design-time projects for given properties)

•        We then define whether or not this node is "Visible" on the Objects & 
Timeline hierarchy as at times we want to make knucklehead tags visible while 
at the same time for tags with basic functionality we often may opt out - 
having the choice would be great.

Combine these two concepts together and I'd be pretty happy with the way in 
which I could mutate Expression Blend and do functional things to enable me to 
keep a tighter reign over framework usage for both developers and designers - 
essentially force-fit them into following a set path vs. giving them 101 
properties they can tweak as well it at times is unnecessary and often causes 
more pain than its worth.

eg: I managed to customize Blend for my "ConsoleWindow" control i'm writing:

[cid:image001.jpg@01CAD5B0.544DB6A0]


That's all she wrote - in that you can't access anything else via Blend. You'd 
have to actually go in via Code to do it and i figure if you try doing things 
via that route well all bets are off anyway.


From: 
ozsilverlight-boun...@ozsilverlight.com<mailto:ozsilverlight-boun...@ozsilverlight.com>
 
[mailto:ozsilverlight-boun...@ozsilverlight.com<mailto:ozsilverlight-boun...@ozsilverlight.com>]
 On Behalf Of David Burela
Sent: Friday, April 02, 2010 6:47 PM

To: ozSilverlight
Subject: RE: How to hack Expression Blend.

Along a similar path, here are my notes on how to create your own addins for 
expression blend
http://davidburela.wordpress.com/2010/02/02/guide-to-creating-expression-blend-3-addins/

-David Burela

From: 
ozsilverlight-boun...@ozsilverlight.com<mailto:ozsilverlight-boun...@ozsilverlight.com>
 
[mailto:ozsilverlight-boun...@ozsilverlight.com<mailto:ozsilverlight-boun...@ozsilverlight.com>]
 On Behalf Of Tim Heuer
Sent: Friday, 2 April 2010 4:36 AM
To: ozSilverlight
Subject: RE: How to hack Expression Blend.

Awesome.

Tim Heuer | +1 (602) 405-4567 | Microsoft Silverlight
blog: http://timheuer.com/blog/ | twitter: 
@timheuer<http://twitter.com/timheuer>

From: 
ozsilverlight-boun...@ozsilverlight.com<mailto:ozsilverlight-boun...@ozsilverlight.com>
 
[mailto:ozsilverlight-boun...@ozsilverlight.com<mailto:ozsilverlight-boun...@ozsilverlight.com>]
 On Behalf Of Scott Barnes
Sent: Thursday, April 01, 2010 6:58 AM
To: ozSilverlight
Subject: FYI: How to hack Expression Blend.

In case any of you are curious, here's some basic "how to" on hacking 
Expression Blend's UI, tonight I wrote a quick blog post documenting it (ie you 
can really goof around with the UI inside the tool)

How to hack Expression Blend - http://bit.ly/9e4GQd

Would love to know if any of you are tinkering around in this space as well? 
any insights/tips?

_______________________________________________
ozsilverlight mailing list
ozsilverlight@ozsilverlight.com<mailto:ozsilverlight@ozsilverlight.com>
http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight


______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________
_______________________________________________
ozsilverlight mailing list
ozsilverlight@ozsilverlight.com<mailto:ozsilverlight@ozsilverlight.com>
http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight

_______________________________________________________________________________

This email has been scanned by the Bankwest Email Security System.
_______________________________________________________________________________

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________
_______________________________________________
ozsilverlight mailing list
ozsilverlight@ozsilverlight.com
http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight

_______________________________________________
ozsilverlight mailing list
ozsilverlight@ozsilverlight.com
http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight

Reply via email to