Skip to content

Releases: VincentH-Net/CSharpForMarkup

csharpmarkup2-winui-2-0-0

28 Feb 15:43
Compare
Choose a tag to compare

Major Release

C# Markup 2 target platforms are now updated and expanded:

  • .NET 7 and C# 11 for all target platforms
  • Supports latest version of Windows App SDK for targeting Windows - no dependency on Uno Platform
  • Supports latest version of Uno.WinUI for targeting Android, iOS, Mac Catalyst, WebAssembly, Skia/Tizen, Skia/WPF, and Skia/GTK for Linux
  • Supports platform specific API's and API variations (separate C# Markup API's generated for each target platform, compiled into separate assemblies)
  • Built for multi-targeting
  • Adds Source Link for easy debugging and discovery of API's and API patterns
  • Comes with high-quality mcs-winui3-app and mcs-winui3-view dotnet new templates
    • All code built to the highest C# standards: nullable enabled, zero warnings, fully compliant with the mcs-editorconfig template
    • Supports rebuild UI on C# Hot Reload - including smart workarounds for various MS hot reload defects
    • Has built-in debug navigator overlay to quickly build out your pages in hot reload
    • Has New-View.ps1 to quickly add views from within Visual Studio's terminal. Create views with or without viewmodel.
    • Uses a combination of CommunityToolkit.Mvvm and PropertyChanged.Fody for an optimal developer experience with viewmodels
    • Automatic file nesting of <view>.cs and <view>.logic.cs in solution explorer
    • Application main window content is now also a C# Markup view (in App.cs and App.logic.cs)
  • new .Content() extension method on Page allows to configure existing page instances (created by navigating to a page) fully in C# Markup instead of in the .logic.cs file

csharpmarkup2-winui-wpf-0-8-3

26 Apr 13:07
Compare
Choose a tag to compare

What's Changed

  • WinUI 3 Desktop: remove unused Uno.WinUI dependency
  • Update WinUI 3 and Uno Platform NuGets to latest stable - fixes #35

Full Changelog: csharpmarkup2-winui-wpf-0-8-2...csharpmarkup2-winui-wpf-0-8-3

csharpmarkup2-winui-wpf-0-8-2

14 Apr 14:21
Compare
Choose a tag to compare

What's Changed

  • ControlTemplates helpers: make targetType first parameter instead of last
  • Cleaned up ControlTemplate example on FlutterPage in example solutions
  • WinUI 3 Desktop: fix add ControlTemplates helpers; now supported in all platforms
  • WPF: fix remove nonsense targetType parameter from ItemsPanelTemplate helpers

Full Changelog: csharpmarkup2-winui-wpf-0-8-1...csharpmarkup2-winui-wpf-0-8-2

csharpmarkup2-winui-wpf-0-8-1

30 Mar 17:53
Compare
Choose a tag to compare

What's Changed

  • Improvements for Style:
    • No need to use new in value setters
    • New Bind extension methods for binding a dependency property in a Style
  • Add ItemsPanelTemplate helpers
  • Add ControlTemplate, ContentPresenter and VisualStateManager helpers (WPF, Uno Platform)
  • Add BindTemplate helper to bind to the templated parent from within a ControlTemplate (WPF, Uno Platform)
  • Add ControlTemplate usage in example sln (WPF, Uno Platform)
  • Hot Reload in example now works for editing styles (WPF)

Known limitations:

  • The WinUI 3 Desktop platform does not offer ControlTemplate related helpers yet, pending a fix for this WinUI 3 issue.
    This is because WinUI 3 Desktop does not expose API's to create a ControlTemplate from code - which can be worked around via a bit of XAML and a custom attached property, however it also does not expose TemplatedParent in any API and it does not set TemplatedParent for items added in code to a XAML-created ControlTemplate either, which means ControlTemplates created in code cannot have functioning bindings to TemplatedParent and no functioning ContentPresenter. With these limitations ControlTemplates are of little value.

Full Changelog: csharpmarkup2-winui-wpf-0-6-14...csharpmarkup2-winui-wpf-0-8-1

csharpmarkup2-winui-wpf-0-6-14

15 Feb 13:07
d283945
Compare
Choose a tag to compare

What's Changed

WinUI 3 and Uno Platform

  • Changed namespace Microsoft.UI.Markup to CSharpMarkup.WinUI

WPF

  • Add CSharpMarkup.WPF NuGet and CSharpMarkup.WPF.Examples application

Improvements for all UI frameworks (WPF, WinUI 3 and Uno Platform):

  • Add many layout factory helpers generated via [ContentProperty] attribute
  • Add UIObject (and for WPF also UIDependencyObject) to allow specifying both markup and non-markup content objects without appending .UI
  • Add content parameter to the generated helper that has parameters for a view's self-defined writable properties
  • Add support for inheriting specified markup factory helper parameters in derived types, used for TimeLine
  • Add performant generic Spread() and SpreadS() (allocation-free)
  • Add .Resources() convenience helper
  • Add default bind properties for Brush derived types
  • Add implicit to.<Type> convertor from markup types to support e.g. .BorderBrush(Red)
  • Add generated to.<Type> type convertors from [TypeConvertor] attribute for WPF and UnoWinUI (WinUI does not use that attribute - need to select and add convertors manually)
  • Add support to use manual type convertors in codegen
  • Add 4 manual type convertors
  • Support passing in string and UIElement for Inline
  • Replace O<> with nullable value types to support automatic value conversion for builder helper method parameters, e.g. to compile Border(CornerRadius: 2.5). As a consequence remove redundant generated factory methods
  • Update and cleanup example applications
  • WPF example: automatic update on .NET Hot Reload
  • Fixes

Full Changelog: csharpmarkup2-winui-0-5-1...csharpmarkup2-winui-wpf-0-6-14

CSharpMarkup.WinUI 0.5.1 Pre-release

03 Dec 14:50
Compare
Choose a tag to compare
Pre-release

Changes in this release:

  • Updated to Uno 4

This is an early preview, intended mainly to gauge interest and to get feedback on the shape and features of the markup API. NJoy playing around with this and chime in with issues if you like / want things or if you have questions.

Twitter feedback is also welcome - use #CSharpForMarkup and @vincenth_net, thanks!

Only Windows Desktop and webassembly targets have been tested at this time, and there has been no webassembly performance optimization so far. Expect frequent updates in the coming weeks!

Targets Microsoft.WindowsAppSDK 1.0.0 / Uno.WinUI 4.0.9

CSharpMarkup.WinUI 0.5.0

01 Dec 09:23
Compare
Choose a tag to compare
Pre-release

Initial release, announced at UNOCONF 2021

This is an early preview, intended mainly to gauge interest and to get feedback on the shape and features of the markup API. NJoy playing around with this and chime in with issues if you like / want things or if you have questions.

Twitter feedback is also welcome - use #CSharpForMarkup and @vincenth_net, thanks!

Only Windows Desktop and webassembly targets have been tested at this time, and there has been no webassembly performance optimization so far. Expect frequent updates in the coming weeks!

Targets Microsoft.WindowsAppSDK 1.0.0 / Uno.WinUI 3.11.6

csharpformarkup-1-archive

23 Nov 15:34
Compare
Choose a tag to compare

With CSharpForMarkup 2 around the corner, the source, docs, history and news for CSharpForMarkup 1 is now archived in this release.

CSharpForMarkup 1 targets Microsoft .NET Xamarin and Maui with a limited set of fluent helpers.

Additional implementations of CSharpForMarkup 1 can be found here: