Git Product home page Git Product logo

xomegaframework's Introduction

Xomega Framework

A powerful .NET framework for building multi-tier data driven web and desktop applications backed by a service layer based on Entity Framework or any other ORM framework.

The framework has been built from more than 20 years of experience, and is based on the approach that has been proven in many large scale applications. The primary goals of the framework are to:

  • Enable rapid application development.
  • Promote reusability, which can significantly reduce development and maintenance costs.
  • Ensure consistency to deliver the best user experience for the application.

Components

The framework consists of the core package, as well as several additional packages that target specific technologies, as follows.

  • Xomega.Framework - the core package that contains reusable code for both web and desktop clients, as well as for the service layer.
  • Xomega.Framework.Wpf - implementation of views and data bindings for WPF.
  • Xomega.Framework.Blazor - implementation of views and property-bound components for Blazor Server and WebAssembly.
  • Xomega.Framework.AspNetCore - support for hosting and using business services via REST API.
  • Xomega.Framework.Web - implementation of views and data bindings for ASP.NET WebForms.
  • Xomega.Framework.Wcf - support for hosting and using business services in WCF.

Features

Xomega framework provides rich base and utility classes for building presentation layer data objects that can be bound to Blazor components or the standard WPF and ASP.NET controls, and then used to build view models and views from those. Some of the important features that the framework supports are as follows.

  • Data Properties encapsulate a data value (or multiple values) and metadata, such as editability, visibility, security access, required flag, possible values, modification tracking, and also formatting, validation and conversion rules for the values. Properties can notify listeners about changes in the value or the metadata, and can be bound to UI controls, which would reflect any changes in the data properties, and update the property value from the user input. Property values or metadata can also be set to be automatically computed from the values/metadata of other properties using a lambda expression.

  • Data Objects contain data properties and nested child data objects, as well as its own overarching metadata, such as editability, security access level, modification tracking, and object-level validation rules. They also provide some CRUD support, and the ability to export/import its data to/from the service data contracts.

  • Data List Objects are special type of data objects that are optimized for working with tabular data. They provide additional list-related functionality, including notifications about collection changes, support for multi-property sorting and row selection, and tracking of the applied criteria.

  • Caching of reference data on the client allows you to quickly populate selection lists, and to look up a data item by a unique key using self-indexing look-up tables. It supports multiple types of caches with extensible cache loaders, and ability to store additional attributes with each item.

  • View Models and Views provide platform-independent base classes for presentation views and their view models. They support publishing of view-level events, such as Close, Save or Delete, as well as navigation between views with input and output parameters, prompting for unsaved changes, and handling updates from the child views.

  • Search Views implement support for search screens with a results grid that may allow selection, and a criteria section with flexible search operators. This includes both the generic logic, and the specific implementations for Blazor, ASP.NET and WPF.

  • Details Views implement CRUD logic, validation and modification tracking for details screens both generically, and specifically for Blazor, ASP.NET and WPF.

  • Bindings for common ASP.NET and WPF controls to Data Properties and Data Objects allows you to easily attach views to the view models and their underlying data objects.

  • Property-bound Blazor components provide a set of ready-to-use Blazor components that can be bound to data objects's properties, as well as base classes to implement custom property-bound components.

  • Client-Side Validation takes care of running all standard and custom validations on your data objects, highlighting invalid fields with an error tooltip, and also displaying a list of all validation errors using proper field labels in the error text.

  • Error Handling provides an extensible framework for reporting errors both on the client side, and from the server side with internationalization, as needed.

  • Dependency Injection powers the flexibility of the framework, allowing you to provide custom implementations for various features, and to build generic objects that can be reused in different contexts.  

Getting Started

  1. The easiest way to get started with Xomega Framework is to install our free Visual Studio extension Xomega.Net, which provides preconfigured project templates for Blazor, ASP.NET, WPF and SPA applications, and allows you to instantly generate complete and powerful search and details views right from your service model. Please check our web site for more details.

  2. You can also run our Xomega.Examples applications to see the framework in action using all supported technologies and architectures.

  3. A more manual way involves adding Xomega NuGet packages to your Visual Studio project, and reading How To guides on our forum. Feel free to post your questions there if you don't find the information you need.

  4. And, of course, you can always download the code and build it manually. You're welcome to post any issues, fork the code and create pull requests with any fixes or enhancements.  

Additional Resources

Below are some tutorials and articles that can help you ramp up with the framework.

Tutorials

  • Complete Walkthrough - a comprehensive step-by-step guide to Model-Driven Development with Xomega.Net and Xomega Framework, which walks you through building full fledged web and desktop applications with Xomega, demonstrating common use cases along the way.

  • How-To Guides - individual step-by-step guides that cover various topics related to developing applications with Xomega Framework and Xomega.Net.

Articles

xomegaframework's People

Contributors

xomeganet avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.