All Projects → AmmyUI → Ammyui

AmmyUI / Ammyui

Licence: mit
Ammy language repository

Projects that are alternatives of or similar to Ammyui

Arcgis Runtime Samples Dotnet
Sample code for ArcGIS Runtime SDK for .NET – UWP, WPF, Xamarin.Android, Xamarin.iOS, and Xamarin.Forms
Stars: ✭ 274 (-23.03%)
Mutual labels:  xamarin, uwp, wpf, xaml, xamarin-forms
Arcgis Toolkit Dotnet
Toolkit for ArcGIS Runtime SDK for .NET
Stars: ✭ 125 (-64.89%)
Mutual labels:  xamarin, uwp, wpf, xaml, xamarin-forms
arcgis-runtime-demos-dotnet
Demo applications provided by the ArcGIS Runtime SDK for .NET Team
Stars: ✭ 51 (-85.67%)
Mutual labels:  xaml, xamarin, uwp, wpf, xamarin-forms
EBind
🔵 .NET Data Binding we deserve: concise, fast, feature-rich
Stars: ✭ 141 (-60.39%)
Mutual labels:  xamarin, uwp, wpf, xamarin-forms
Adaptivecards
A new way for developers to exchange card content in a common and consistent way.
Stars: ✭ 950 (+166.85%)
Mutual labels:  xamarin, uwp, wpf, xaml
Mvvmlight
The main purpose of the toolkit is to accelerate the creation and development of MVVM applications in Xamarin.Android, Xamarin.iOS, Xamarin.Forms, Windows 10 UWP, Windows Presentation Foundation (WPF), Silverlight, Windows Phone.
Stars: ✭ 973 (+173.31%)
Mutual labels:  xamarin, uwp, wpf, xamarin-forms
Reactiveui
An advanced, composable, functional reactive model-view-viewmodel framework for all .NET platforms that is inspired by functional reactive programming. ReactiveUI allows you to abstract mutable state away from your user interfaces, express the idea around a feature in one readable place and improve the testability of your application.
Stars: ✭ 6,709 (+1784.55%)
Mutual labels:  xamarin, uwp, wpf, xamarin-forms
Xamlcss
Style Xaml applications with CSS
Stars: ✭ 271 (-23.88%)
Mutual labels:  uwp, wpf, xaml, xamarin-forms
Reactivemvvm
Cross-platform ReactiveUI sample app built for a talk at MSK .NET conf.
Stars: ✭ 94 (-73.6%)
Mutual labels:  xamarin, uwp, wpf, xamarin-forms
Mvvmcross
The .NET MVVM framework for cross-platform solutions, including Xamarin.iOS, Xamarin.Android, Windows and Mac.
Stars: ✭ 3,594 (+909.55%)
Mutual labels:  xamarin, uwp, wpf, xamarin-forms
Microsoft.maui.graphics
Stars: ✭ 160 (-55.06%)
Mutual labels:  xamarin, uwp, wpf, xamarin-forms
Formswpflive
Live XAML development for Xamarin Forms Apps using WPF Backend.
Stars: ✭ 14 (-96.07%)
Mutual labels:  xamarin, wpf, xaml, xamarin-forms
Mvvmvalidation
Lightweight library that helps reduce boilerplate when implementing validation in XAML MVVM applications
Stars: ✭ 141 (-60.39%)
Mutual labels:  xamarin, uwp, wpf, xaml
Caliburn.micro
A small, yet powerful framework, designed for building applications across all XAML platforms. Its strong support for MV* patterns will enable you to build your solution quickly, without the need to sacrifice code quality or testability.
Stars: ✭ 2,404 (+575.28%)
Mutual labels:  xamarin, uwp, wpf, xamarin-forms
Xamarin Forms Gtk Movies Sample
The Movie DB Xamarin.Forms Sample
Stars: ✭ 83 (-76.69%)
Mutual labels:  xamarin, uwp, wpf, xaml
Csla
A home for your business logic in any .NET application.
Stars: ✭ 865 (+142.98%)
Mutual labels:  xamarin, uwp, wpf, xamarin-forms
Xaml Code Experiences
A collection of the experiences I have collected during days of Xamarin and Wpf, while following the MVVM design pattern.
Stars: ✭ 114 (-67.98%)
Mutual labels:  xamarin, wpf, xaml, xamarin-forms
Rapid Xaml Toolkit
Tools to accelerate XAML development within Visual Studio.
Stars: ✭ 427 (+19.94%)
Mutual labels:  uwp, wpf, xaml, xamarin-forms
Reactiveproperty
ReactiveProperty provides MVVM and asynchronous support features under Reactive Extensions. Target framework is .NET Standard 2.0.
Stars: ✭ 603 (+69.38%)
Mutual labels:  xamarin, uwp, wpf, xaml
Xamarin Demos
This repository contains the Syncfusion Xamarin UI control’s samples and the guide to use them.
Stars: ✭ 218 (-38.76%)
Mutual labels:  xamarin, uwp, xaml, xamarin-forms

Ammy - UI Language for XAML platforms

Ammy is a modern UI language that either replaces or compliments XAML in your projects.

Project site

Documentation

Gitter chat

Roadmap

Main features of Ammy

  • Very simple JSON-like syntax
  • Mixins and aliases to fight copy-pasting and to keep code DRY
  • Inline Binding Converters to avoid implementing IValueConverters for every simple task
  • Runtime Update that actually works (VS2017 has very limited update functionality at the moment)

How Ammy code looks

Window "MyApp.MainWindow" {
  Title: "My first Application"

  Grid {
    TextBlock { "Hello, World!" }
  }
}

Note that you don't need to import any namespaces manually. In case you need to import external namespace, there is C# a using keyword available.

Slightly more complicated example

alias FormField (labelText, binding)
{
  StackPanel {
    Orientation: Horizontal
    
    TextBlock { Text: $labelText }
    TextBlock {
      Text: $binding
    }
  }
}

Window "MyApp.MainWindow" {
  Title: "My First App"
  
  StackPanel { 
    @FormField ("First name", bind FirstName)
    @FormField ("Last name", bind LastName)
    
    TextBlock {
      Text: bind 
            convert (MyViewModel vm) => "Hello, " + vm.FirstName + " " + vm.LastName
    }
  }
}

Building and debugging

  • Install Visual Studio 2017 if you don't have one
  • Install Nemerle (Click "Download Now" button)
  • Clone repository
  • Open Ammy.sln solution in VS2017 and build it
  • Set Ammy.VisualStudio project as StartUp Project and start Debugging session
  • Open Ammy.Tests.sln solution
  • Ammy.Test.Workbench project is for debugging
  • Ammy.Test.Wpf contains permanent tests that should all compile

Project structure

Syntax and AST

Ammy uses Nitra for parsing and typing. First, file is parsed with syntax defined in Syntax.nitra. Resulting ParseTree is then mapped to AST (Mapping.nitra, MappingExpr.nitra, MappingFunctions.nitra).

Semantic analysis is a process where types loaded from Backend are binded to AST. This process defined inside Ast and AstBase projects in .nitra files.

  • Ammy.Backend (Loads referenced assemblies and creates Nitra symbols)
  • Ammy.AstBase (Common AST types)
  • Ammy.Ast (More AST types)
  • Ammy.Syntax (Syntax and Mapping to AST)

Sidekick

Sidekick library has two primary functions. 1) ExpressionConverter used for inline binding converters 2) Runtime update logic

  • Ammy.Sidekick.XamarinForms
  • Ammy.Sidekick.Uwp
  • Ammy.Sidekick.Common

Compilation and Tasks

Build assembly is a glue between IDE/MSBuild and Ammy language.

  • Ammy.Build
  • Ammy.BamlCompilerWPF

IDE

  • Ammy.VisualStudio
  • Ammy.VisualStudio.Service
  • Ammy.VisualStudio.ItemTemplates

Ammy.VisualStudio only contains service providers. These providers use RuntimeLoader to load Ammy.VisualStudio.Service assembly and load actual services. Ammy.VisualStudio.Service contains all the logic for highlighting, intelli-sense, regions, adornments, classisifiers and other stuff.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].