Pages

Wednesday, 14 September 2011

Windows 8

Microsoft finally unveiled some additional details regarding new Windows 8. If you would like to watch the keynote session please have a look at http://www.buildwindows.com/.

Some key conclusions (for developers) from the keynote:
  • JavaScript is becoming a first-class language (you can find few proofs below)
  • Developers will receive VS2011 and Expression Blend 5 with arrival of Windows 8




I really like new Microsoft 'no compromises' approach which means that developers will be able to use new Windows 8 tablets for everything - the most important for coding.

4 comments:

  1. Reguarding your other blog entry: http://pavzav.blogspot.com/2010/11/virtualized-canvas.html

    I know that back then you said that you are not ready to share the code... How about now?

    We are facing a similar problem with scrolling is lagging because UIElements need to be created while scrollong (due to virtualization), and I say your video showing UI created "asyncronously"... as you wrote "to run this process asynchronously".

    Can you please help?

    Thanks.

    ReplyDelete
  2. Have you familiarize yourself with this example http://blogs.msdn.com/b/jgoldb/archive/2008/03/08/performant-virtualized-wpf-canvas.aspx ? This is the point where I started my exploration. From my experience I can say that the key things are: QuadTree algorithm, DispatcherThread.BeginInvoke(...) and DispatcherOperation.

    ReplyDelete
  3. I'm familiar with that example. The problem with that example is that when there a log of elements, the scroll also lags.

    In your example, it looks like the UIElements are added to the panel asynchronously, when the dispatcher/application is idle.

    I'm familiar with the dispatcher and the begininvoke, but I've found no way of delaying the realization of the UIElements.


    I have a very simplified example that demonstrates the problem:
    http://www.megaupload.com/?d=GVPTNKZ5

    The example contains a listbox bound to a collection.
    The solution has several projects:
    1) No virtualization
    2) Virtualization of Rungs (each rung is a ListBoxItem), where each rung contains 40 usercontrols.... The scrolling is lagging because each timea rung is being realized, it also creates 40 elements (coils).
    3) The rung draws the elements using OnRender: low memory footprint and smooth scrolling. The problem is that we:
    a) loose fast/easy UI update (we need to recreate the png file each time we want to change the look of the ui element)
    b) we loose vercor graphics (we can draw the UI with draw line, draw rectangle etc, but it is slower)
    c) we loose HitTest, tooltips, and a lot of benefits that usercontrols gives


    Is there anything that can be done?

    ReplyDelete
  4. I think that there is a solution but you have to implement it by yourself - no out of the box functionality

    ReplyDelete