Develop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The most popular .NET Foundation community project.
Перейти к файлу
Steven Kirk f9952e85cc Fixed a few more layout bugs. 2014-12-05 22:06:33 +01:00
Cairo/Perspex.Cairo
Docs
Gtk/Perspex.Gtk
NGenerics
Perspex.Application
Perspex.Base
Perspex.Base.UnitTests
Perspex.Controls
Perspex.Controls.UnitTests
Perspex.Diagnostics
Perspex.Input
Perspex.Interactivity
Perspex.Layout Fixed a few more layout bugs. 2014-12-05 22:06:33 +01:00
Perspex.Layout.UnitTests More work on layout. 2014-12-05 20:29:43 +01:00
Perspex.SceneGraph Don't remeasure/arrange when size hasn't changed. 2014-12-05 19:22:43 +01:00
Perspex.SceneGraph.UnitTests
Perspex.Styling
Perspex.Styling.UnitTests
Perspex.Themes.Default
TestApplication
TestFiles
Windows
.gitattributes
.gitignore
Perspex-Linux.userprefs
Perspex-Mono.sln
Perspex-Mono.userprefs
Perspex.sln
Settings.StyleCop
readme.md

readme.md

Perspex

![Gitter](https://badges.gitter.im/Join Chat.svg)

...a next generation WPF?

Background

As everyone who's involved in client-side .NET development knows, the past half decade have been a very sad time. Where WPF started off as a game-changer, it now seems to have been all but forgotten. WinRT came along and took many of the lessons of WPF but it's currently not usable on the desktop.

After a few months of trying to reverse-engineer WPF with the Avalonia Project I began to come to the same conclusion that I imagine Microsoft came to internally: for all its groundbreaking-ness at the time, WPF at its core is a dated mess, written for .NET 1 and barely updated to even bring it up-to-date with .NET 2 features such as generics.

So I began to think: what if we were to start anew with modern C# features such as (gasp) Generics, Observables, async, etc etc. The result of that thought is Perspex.

DISCLAIMER: This is really early development pre-alpha-alpha stuff. Everything is subject to change, I'm not even sure if the performance characteristics of Rx make Observables suitable for binding throughout a framework. I'm writing this only to see if the idea of exploring these ideas appeals to anyone else.

Take a look at the introduction document here.

NOTE: This uses proposed C#6 features so you'll have to install a Roslyn preview. If you're using VS2013, try here.