WPFfor d

Adam Wilson flyboynw at gmail.com
Sun Feb 17 14:29:14 PST 2013


On Sun, 17 Feb 2013 11:21:54 -0800, rumbu <rumbu at rumbu.ro> wrote:

> On Sunday, 17 February 2013 at 19:01:14 UTC, Adam Wilson wrote:
>> On Sat, 16 Feb 2013 19:28:27 -0800, js.mdnq <js_adddot+mdng at gmail.com>  
>> wrote:
>>
> ... if you're interested in helping let me know. I'd love to
>> put together a team and starting hacking out some code....
>
> I'm interested, especially in databinding features of WPF. Right now I  
> have no idea how this can be implemented in D without runtime reflection.

I think it could be easily implemented if instead of using runtime XAML  
deserialization and reflection we used a specialized GUI definition  
language that is translated into D at compile time. This would give the  
required flexibility to work around D's lack of the deep reflection  
capabilities that .NET has and make the app much quicker at runtime. I'd  
prefer to avoid reflection as much as possible due to the associated  
performance hits.

I love the ideas behind WPF, but as usual at Microsoft, WPF is a very poor  
implementation of a fantastic idea.

Thumbnail sketch of my vision for a WPF-like GUI Library in D, for now  
I'll call it Horizon:
- Purpose built domain specific language for GUI declaration
- Pluggable language compiler back-end to support different target  
languages.
- Dependency Property system similar to WPF to support flexible  
databinding.
- Concurrent Dependency Properties to allow multi-threaded access to the  
UI. (Needs specialized container support in Phobos.)
- Pluggable rendering core to support multiple operating systems.

Make no mistake, this will be a huge undertaking, WPF is massive! But it  
could very well be the killer app for D. The ability to make GUI apps that  
function at native speeds while retaining much of the ease of WPF is  
highly attractive to a lot of developers, myself included...

-- 
Adam Wilson
IRC: LightBender
Project Coordinator
The Horizon Project
http://www.thehorizonproject.org/


More information about the Digitalmars-d mailing list