Nick on WPF/E

Now that we've shipped our first CTP, I can tell you what I've been working on for the last six months. (No points for guessing!) It's been a lot of work but I'm pretty happy with the ctp. It's definitely not perfect, and there's a some important scenarios we don't solve yet -- while it might be technically possible to write a large data entry forms application on WPF/E, I wouldn't want to be the one to do it, not until we have more controls. But it is a snappy little platform, and I'm constantly amazed how far I can get using just WPF/E and a little JavaScript.

As always, I'd love your feedback. I'm especially interested in feedback on controls and other UI framework functionality -- I'd love to know what kind of apps you'd like to build, what technologies you want to build them with (which controls, what programming languages, what server infrastructure, ...), and what browsers/os'es you'd like to run them on. I'd also love feedback on the input/mouse/keyboard APIs (and yes, we don't have keyboard events yet, we're working on it) -- I've worked on input long enough to have a pretty good idea of what people need, but no matter how much you know there's always a customer requirement you haven't heard yet. So don't hesitate to post a comment or send mail (nkramer at Microsoft), I look forward to hearing from you!

Comments (12)

  1. Arnaud says:

    Hi Nick,

    The controls I’d really like to see in WPF/E are:

    ListBox (with ControlTemplate), GridView, TreeView, Menu, DockPanel, StackPanel.

    Programming language: C#

    And also available on Linux.

    Thanks for your job!

  2. Marc says:

    A GridView-like control, C# and access to webservices… that would make WPF/E a complete killer for data entry forms (at least for what we are doing). I have a lot of customers that don’t care at all for flashy graphics, but are willing to pay lots of money for rich GUIs for data entry in the browser. We’re currently experimenting with AJAX, but we’d definitely prefer writing client-side code in C#.

  3. Kevin Daly says:

    WPF/E looks like it would be a great way to get around the UI limitations of HTML, but with the element subset provided in this release it seems mostly useful for presentation rather than interaction.

    While I absolutely hate to make Flash comparisons, one of the few ways in which Flash legitimately improves web sites is when it’s used to provide enhanced menus and so on…it would be unfortunate if WPF/E just equalled Flash’s ability to be annoying but missed the other bits.

    At a minimum, I’d like to see implementations or equivalents of Button and TextBox (I know Button can be emulated, but I’m way too lazy). If there’s a clean way to embed HTML INPUT tags in WPF/E content I’d probably be happy to make do with that, but however it needs to be done I’d really love the ability to use WPF/E content as an alternative to traditional HTML forms.

  4. Andrew Veresov says:

    It will be great if WPF/E will support copyable and read only text areas. So, what user will able to copy text from copyable areas and disallow to copy any text from read only areas.

  5. Marcus Wendt says:

    I’m in the business of developing business oriented web ui, and while I’m really impressed with the simplicity of the XAML/JavaScript model and the wider platform support, the flashy nature of the current controls is keeping me in suspense.

    The basic data entry controls are a must – anything less than the ones html offers would leave me really baffled. A RichTextBox that a savvy JavaScript-developer could turn into a browser based color coded code editor (that works) would be real nice. Events and caret stuff are important. Being able to bind form elements to counterparts on the html page (or some other way of easily injecting / extracting data) could minimize tedious work.

    With regards to language support C# would make the back-end guys happy (since few of us are any good at JavaScript), but JavaScript is imho the perfect choice for a clean model.

    With regards to platform support it would be nice if the “E” in WPF/E were true – there is at least one OS which is visibly missing, and not supporting it could fuel a resistance against this technology. It would be nice if we could “just use this” without having to engage in the usual debates.

    Are you doing anything active to make this technology “public domain”? MS recently pulled the IE DHTML Editing Control from Vista and soon XP will follow, which leave a lot of us scared in the dust. Fool me once…

  6. Andrew Veresov says:

    One more: ability to attach custom fonts. So designer will able to use any font type he/she want. I think it should be fonts cache to reduce data transfer.

  7. Brett Webster says:

    We are making an application that is strickly WPF, but are running into problems where certain clients are using windows 2000, or other unsupported OS for .NET 3.0.  

    We are hoping to utilize WFP/E as a backward-compatibility aspect of our new application.  This allows us to more easily move forward to WPF while still supporting our slower-moving clients.

    Basic form controls in WPF/E would immediately enable this approach.  Otherwise we are forced to engineer our own XAML parser that will take our WPF source and render as webpage.

  8. Vaughan says:

    One thing I would like to see is a rich text box with image pasting abilities. i.e. no more annoying uploading images separately as files, just copy and paste directly into text, like word. This would be invaluable to our workplace. This is a kinda advanced feature but thought I might plant the seed in your mind.

  9. Tim Favour says:

    While waiting for WPF/E controls you can set the WPF/E control to windowless and place HTML-controls on top, works well.

    What I miss in the CTP are more event types like click, mouseright, mousewheel.

    While experimenting with the mousemove event I couldn’t figure out howto convert between document coordinates and canvas coordinates ?

  10. Ed says:

    Just saw Scott Guthrie so downloaded the Feb CTP, not seen/used it before, and the samples. None of the sample work. I’m on an XP box with SP2. The error I get is I need to install WPF/E, but I have. I tried saving the file and re-loading but got the message that it was already loaded, hmmm. I tried putting them into a site in IIS (6 – do I need 7?) but no better. Any ideas?

    Incidently, I’m looking at this because I’ve in mind a lingerie site prospect which I’d like to embed video, I’ll send the URL if we win the project 🙂

  11. Jeff Weidner says:

    Can you point me at the best source for detailed info on the WPF/E framework? (e.g. .Net style framework for C# development in WPF/E)

    What controls will be supported? What is the timeline / roadmap?  The usual, basic controls are imperative (text box, checkbox, radio button, buttons, scrollbars).

    I’m looking for business application support. WPF/E sounds like a great way to create portable, hostable applications that can also be embeddable, localizeable, skinnable, etc.

    I need to know ASAP because I’m designing a UI framework for an application that needs all these qualities! WPF/E seems a great way to go, but maybe it’s too immature?

    If WPF/E is too far out (time wise), should I go back to XBAP? If so, I’d appreciate help pointing me to definitive reference resources!



  12. JohnHansen says:

    When creating controls, such as button or combobox, getting mouse information is pretty straight forward.  Creating, what should be a simpler control, such as textbox is much more complicated since the exact mouse position is required for placement of the cursor.  This should be straight forward since WPF/E provides this information.   The problem comes in when scaling (ctrl mousewheel operations) or skew transformation (rotate the text box by 15 degrees to indicate invalid input) this issue becomes much more problematic.

    I have built a couple of controls like this.  The only solution that I have come up with is that the framework needs understand all transformation information so it can properly convert the absolute mouse coordinates (relative to the root canvas) to that of relevant canvas(the canvas contians the control).

    If this is the recommended method, then great. Any feedback on this issue would be appreciated.


    John Hansen

Skip to main content