Develop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The most popular .NET Foundation community project.
Перейти к файлу
Steven Kirk 7663fcb8ff Improve TreeViewItem expanders. 2014-12-17 18:45:25 +01:00
Cairo/Perspex.Cairo Correctly clip in Cairo renderer. 2014-12-17 03:08:29 +01:00
Docs I HATE #REGIONS 2014-12-15 17:33:32 +01:00
Gtk/Perspex.Gtk Make the GTK stuff build again. 2014-12-16 03:06:07 +01:00
NGenerics Started refactoring lyaout. 2014-12-05 17:24:38 +01:00
Perspex.Animation Use a single timer for all animation. 2014-12-17 01:43:10 +01:00
Perspex.Application Started refactoring lyaout. 2014-12-05 17:24:38 +01:00
Perspex.Base Added simple property transition animation. 2014-12-16 02:11:57 +01:00
Perspex.Base.UnitTests Added coercion to PerspexProperties. 2014-12-07 09:12:41 +01:00
Perspex.Controls Fixed scaling for Paths. 2014-12-17 18:40:31 +01:00
Perspex.Controls.UnitTests Added FPS counter to test app. 2014-12-16 02:57:27 +01:00
Perspex.Diagnostics Added simple property transition animation. 2014-12-16 02:11:57 +01:00
Perspex.Input Added an animated rotation. 2014-12-16 03:29:28 +01:00
Perspex.Interactivity Added an animated rotation. 2014-12-16 03:29:28 +01:00
Perspex.Layout Added an animated rotation. 2014-12-16 03:29:28 +01:00
Perspex.Layout.UnitTests Added simple property transition animation. 2014-12-16 02:11:57 +01:00
Perspex.SceneGraph Use a single timer for all animation. 2014-12-17 01:43:10 +01:00
Perspex.SceneGraph.UnitTests Added an animated rotation. 2014-12-16 03:29:28 +01:00
Perspex.Styling More stylecop fixes. 2014-12-05 22:32:08 +01:00
Perspex.Styling.UnitTests Assert inconclusive for unimplemented features. 2014-12-14 17:59:54 +01:00
Perspex.Themes.Default Improve TreeViewItem expanders. 2014-12-17 18:45:25 +01:00
TestApplication Added a TextBox and Image to animated controls. 2014-12-17 03:58:37 +01:00
TestFiles Fixed scaling for Paths. 2014-12-17 18:40:31 +01:00
Windows Fixed scaling for Paths. 2014-12-17 18:40:31 +01:00
.gitattributes Initial commit 2013-12-05 21:16:06 +01:00
.gitignore Added Gtk to VS/windows solutions 2014-12-02 10:17:11 +01:00
Perspex-Linux.userprefs Initial implementation of GTK windowing system. 2014-12-01 19:04:05 +01:00
Perspex-Mono.sln Initial implementation of GTK windowing system. 2014-12-01 19:04:05 +01:00
Perspex-Mono.userprefs Finally rendering text on linux! 2014-12-03 00:27:30 +01:00
Perspex.sln Added simple property transition animation. 2014-12-16 02:11:57 +01:00
Settings.StyleCop Stylecop fixes. 2014-12-04 19:55:49 +01:00
licence.md Added licence.md 2014-12-09 18:33:00 +01:00
readme.md Added contribution guidelines. 2014-12-15 02:54:23 +01:00

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.

Documentation

As mentioned above this is really an early version of Perplex and we're working hard on improving the code base and the documentation at the same time. Please feel free to have a look at our introduction document to get things started real quick. Contributions are always welcome!

Building and Using

In order to build and use Perpex you need a compiler that supports the upcoming C# 6 features.

  • Visual Studio 2015 Preview: The recommended way to compile C# 6 code is to use the new Visual Studio 2015 Preview version, which Microsoft has released later this year. It comes with the new Roslyn compiler and features like the new upcoming JIT (RyuJIT) and other improvements like extensible code analysis right out of the box. It can be downloaded here

  • Visual Studio 2013: With the introduction of the new Roslyn compiler platform earlier this year Microsoft has released an April End User Preview which is a small extension that brings supports to Visual Studio 2013.
    NOTE: This extension is out of date and will no longer be updated, according to the Roslyn CodePlex main page. However, if you don't want to use a Preview IDE feel free to download the extension over here. It must be noted that it is not guaranteed that future versions of Perplex will compile and run when using this extension.

Contributing

Please read the contribution guidelines before submitting a pull request.