---
title: Flexible Data Management, Not Your Usual CRUD.
description: "Data Editor UI: A Steroid-Boosted Record Management GUI made possible by the capabilities of the Microsoft .NET framework and a bit of creativity."
image: https://blog.andemili.com/hubfs/flexible-data-management.jpg
---

[![](https://blog.andemili.com/hubfs/ANDEMILI-logo.svg)](https://www.andemili.com)

Open main menu Close main menu

- [ABOUT US](https://www.andemili.com/en/agency)
- [SERVICES](https://www.andemili.com/en/services)
- [PROJECTS](https://www.andemili.com/en/projects)
- [BLOG](https://blog.andemili.com/en)
- [CONTACTS](https://www.andemili.com/en/contacts)
- [ITALIANO](https://blog.andemili.com/)

[ITA](https://blog.andemili.com/) | [ENG](https://blog.andemili.com/en/)

[BLOG AND EMILI](https://blog.andemili.com/) / Flexible Data Management, Not Your Usual CRUD.

# Flexible Data Management, Not Your Usual CRUD.

![Alessandro Manfredi](https://blog.andemili.com/hs-fs/hubfs/ALESSANDRO.png?width=45&name=ALESSANDRO.png)

[Alessandro Manfredi](https://blog.andemili.com/en/author/alessandro-manfredi) Jun 1, 2023, 3:45:00 PM

[Condividi su Twitter](https://twitter.com/intent/tweet?text=I+found+this+interesting+blog+post&url=https://blog.andemili.com/en/flexible-data-management-not-your-usual-crud) [Condividi su Facebook](http://www.facebook.com/share.php?u=https://blog.andemili.com/en/flexible-data-management-not-your-usual-crud) [Condividi su LinkedIn](http://www.linkedin.com/shareArticle?mini=true&url=https://blog.andemili.com/en/flexible-data-management-not-your-usual-crud)

![data editor ui, record management gui](https://blog.andemili.com/hubfs/flexible-data-management.jpg)

Flexible Data Management, Not Your Usual CRUD.

6:13

Raise your hand if you, as a developer, have ever crafted at least one CRUD (Create, Read, Update, Delete) management interface in your career. I anticipate numerous affirmations. Now, raise your hand if you've designed dozens or even hundreds.

The venerable CRUD never loses its allure; invariably, there's that entity that cannot be sourced from another system, lacks an API, and necessitates management within the application.

A frequently encountered conversation:![Tavola disegno 2-1](https://blog.andemili.com/hs-fs/hubfs/Tavola%20disegno%202-1.jpg?width=760&height=689&name=Tavola%20disegno%202-1.jpg)

A scenario many have experienced.

## **A minimum set of functionalities**

A records management system is indispensable for several functionalities:

- Tabular viewing
- Creation
- Editing
- Deletion
- Basic access control
- Formal and application-specific validation for both creation and editing

For more complex applications, this essential set of functionalities is expanded to include:

- Both physical and logical deletion
- Logging of changes and the identities of the changemakers
- Linked actions (such as activate/deactivate, notify, etc.)
- Management of workflows following core operations
- On a case-by-case basis, a myriad of other specific features may be required

In simpler scenarios, the developmental effort is manageable (albeit monotonous). In more intricate cases, it becomes challenging and prone to errors.

 

## **A Feasible Solution?**

Depending on the technology of the application, there exist both open-source and commercial libraries dedicated to managing this task (in Python, for example, NiceGUI, Streamlit, etc.). Any third-party library or component needs to be integrated with potential customizations, validation logic, and UI style. Open-source libraries sometimes face deprecation and might not support all required functionalities.

A custom solution? For a versatile tool logic, functionalities might include:

- Tabular Viewing:
  
    - Columns
    - Filters
    - Formatting
    - Permission management
- Creation and Editing:
  
    - Fields tailored to the operation
    - Formatting
    - Permission management
- Capability to extend features on a case-by-case basis
- Graphic Theme
- Callbacks
- Creation of call-to-action elements
- Import and export capabilities (Excel?)
- Low-code approach (preferably)

With some effort, this outcome is attainable:

<iframe data-hsv-src="https://play-eu1.hubspotvideo.com/v/6991736/id/116562807731" referrerpolicy="origin" sandbox="allow-forms allow-scripts allow-same-origin allow-popups" allow="autoplay; fullscreen;" style="position: absolute !important; width: 100% !important; height: 100% !important; left: 0; top: 0; border: 0 none; pointer-events: initial" title="HubSpot Video" loading="lazy" data-hsv-id="116562807731" data-hsv-style="" data-hsv-width="1920" data-hsv-height="1080" data-hsv-autoplay="false" data-hsv-loop="false" data-hsv-muted="false" data-hsv-hidden-controls="false" data-hsv-full-width="false"></iframe>

 

---

### Would you like to be part of a close-knit team?

At AND EMILI, we are looking for a WEB DEVELOPER

[![SEND US YOUR RESUME](https://hubspot-no-cache-eu1-prod.s3.amazonaws.com/cta/default/6991736/ab2deb09-44d9-4ace-830c-617bfa079171.png)](https://hubspot-cta-redirect-eu1-prod.s3.amazonaws.com/cta/redirect/6991736/ab2deb09-44d9-4ace-830c-617bfa079171)

---

 

## Data Editor UI: a steroid-boosted GUI for record management

Thanks to the capabilities of the Microsoft .NET framework \[and a bit of creativity\], it's possible to create a tool with these features:

- Creation of an editor with strongly typed code
- Management of any entity, whether through a database or API
- Automated and customizable database access management via Entity Framework Core
- Integration with popular databases (PostgreSQL, MySQL, Microsoft SQL Server)
- Full customization of the tabular view: sorting, columns, pagination, formatting, search, predefined filters, etc.
- Management of creation and editing forms with customization of layout, fields, values, permissions, and texts
- Integrated and extendable validation
- Extended and customizable access management
- Import and Export via Excel
- Integrated callback system
- 100% asynchronous
- Integrated and extendable logging
- Extensible through custom editors and calls to action
- Ready to use with just a few lines of code. Customizable if necessary.

This same component can also be used as a standalone form, both in creation and editing, and integrated into any section of the web app to standardize management logic.

The implementation is based on several .NET features and characteristics:

- Use of generics: every element is strongly typed in relation to the entity being managed (thus minimizing the use of [reflection](https://learn.microsoft.com/en-us/dotnet/csharp/advanced-topics/reflection-and-attributes/))
- Creation of controllers at runtime: during the site's bootstrapping phase, editors are compiled and injected into the application's pipeline and routing. Integration is possible through ASP.NET's [feature providers](https://learn.microsoft.com/en-us/aspnet/core/mvc/advanced/app-parts?view=aspnetcore-7.0)
- Use of [view components](https://learn.microsoft.com/en-us/aspnet/core/mvc/views/view-components?view=aspnetcore-7.0)
- Use of partial views in [Razor Class Library](https://learn.microsoft.com/en-us/aspnet/core/razor-pages/ui-class?view=aspnetcore-7.0&tabs=visual-studio), which can be overridden
- Possibility of both functional and visual customization and extension
- Limited need for using libraries to allow for rapid technological updates and minimize external dependencies

---

Would you like to be part of a close-knit team?

At AND EMILI, we are looking for a WEB DEVELOPER.

[![SEND US YOUR RESUME](https://hubspot-no-cache-eu1-prod.s3.amazonaws.com/cta/default/6991736/ab2deb09-44d9-4ace-830c-617bfa079171.png)](https://hubspot-cta-redirect-eu1-prod.s3.amazonaws.com/cta/redirect/6991736/ab2deb09-44d9-4ace-830c-617bfa079171)

---

 

## **Use Cases**

Any data management/back-office system can be realized through Data Editor UI. Let's look at two representative examples.

**Back-Office Module for Risk Management Software**

This software deals with calculating and reducing the risk associated with the design of mechanical elements. The database is comprised of 95 tables, including 40 record tables that detail individual properties and relationships. These tables are crucial for describing technical aspects and conducting calculations related to reliability. The need is to manage all these records flexibly, user-friendly, with high customization, and with permissions management defined at the entity and individual field level (R, RW).

Data Editor UI is inherently low-code; in this specific application, interfaces have been defined to differentiate the necessary behaviors, and based on these, the respective interfaces for management have been defined. This approach has made it possible, with just a few hundred lines of code, to manage all the application's concepts.

**User Management**

Users are also entities in computer terminology and as such can be managed by Data Editor UI. In our case, we use ASP.NET Core Identity for login management, which we have extensively customized to integrate OAuth, OpenId Connect, SAML2, custom login providers, and all related user flows. The library includes a system for accessing user tables (UserManager); Data Editor UI allows for the native integration of this module, thus leveraging the underlying library to reduce code, potential bugs, and maintain all features. In a forthcoming article, we will also analyze this component.

 

---

### Would you like to be part of a close-knit team?

At AND EMILI, we are looking for a WEB DEVELOPER.

[![SEND US YOUR RESUME](https://hubspot-no-cache-eu1-prod.s3.amazonaws.com/cta/default/6991736/ab2deb09-44d9-4ace-830c-617bfa079171.png)](https://hubspot-cta-redirect-eu1-prod.s3.amazonaws.com/cta/redirect/6991736/ab2deb09-44d9-4ace-830c-617bfa079171)

---

 

*This page has been translated using automated translation tools and artificial intelligence technologies. We strive to ensure that the content is accessible in multiple languages, but please be aware that the translation may not be perfect. If you have any doubts or need clarifications, please feel free to contact us.*

[Technology and Innovation](https://blog.andemili.com/en/tag/technology-and-innovation)

![Alessandro Manfredi](https://blog.andemili.com/hs-fs/hubfs/ALESSANDRO.png?width=150&name=ALESSANDRO.png)

#### [Alessandro Manfredi](https://blog.andemili.com/en/author/alessandro-manfredi)

CTO @ AND EMILI

### Leave a comment

## Related Articles

[![SEO mistakes large companies ](https://blog.andemili.com/hubfs/3-%20errori%20-SEO-%20che-%20le-%20grandi%20-aziende-%20fanno-%20troppo-spesso.png)](https://blog.andemili.com/en/seo-mistakes-that-large-companies-make-too-often)

[Analysis and Optimization](https://blog.andemili.com/en/tag/analysis-and-optimization)

### [3 SEO mistakes that large companies make (too) often](https://blog.andemili.com/en/seo-mistakes-that-large-companies-make-too-often)

SEO is one of those fields where even the smallest entity, with the right effort, can excel and achieve great results, sometimes better than much more well-known and...

![Federico Auricchio](https://app.hubspot.com/settings/avatar/cedc76f3d8a563d8b90fe0cc11963ae8) 

[Federico Auricchio](https://blog.andemili.com/en/author/federico-auricchio) 

[Read More](https://blog.andemili.com/en/seo-mistakes-that-large-companies-make-too-often)

[![image for hubspot marketing 2025](https://blog.andemili.com/hubfs/hubspot-marketing-2025.png)](https://blog.andemili.com/en/personalization-productivity-and-privacy-marketing-with-hubspot-in-2025)

[Digital Strategy and Marketing](https://blog.andemili.com/en/tag/digital-strategy-and-marketing) [Technology and Innovation](https://blog.andemili.com/en/tag/technology-and-innovation)

### [Personalization, productivity and privacy: marketing with HubSpot in 2025](https://blog.andemili.com/en/personalization-productivity-and-privacy-marketing-with-hubspot-in-2025)

Between the evolution of AI, growing privacy concerns and the need to deliver increasingly personalized experiences and content, marketers must adapt to a constantly...

![Léa Verger](https://blog.andemili.com/hs-fs/hubfs/LEA.jpg?width=45&name=LEA.jpg) 

[Léa Verger](https://blog.andemili.com/en/author/lea-verger) 

[Read More](https://blog.andemili.com/en/personalization-productivity-and-privacy-marketing-with-hubspot-in-2025)

![ANDEMILI-logo\_neg](https://blog.andemili.com/hubfs/ANDEMILI-logo_neg.svg "ANDEMILI-logo_neg")

© 2023 AND EMILI srl - Digital Agency | Via Vincenzo Monti, 1 | 42122 Reggio Emilia | p.iva 01283510350   
[Privacy Policy](https://www.andemili.com/en/privacy-policy) | [Cookie Policy](https://www.andemili.com/en/informativa-cookie) | Cookie Settings

[![facebook](https://blog.andemili.com/hubfs/facebook.svg)](https://www.facebook.com/socialANDEMILI/) [![linkedin](https://blog.andemili.com/hubfs/linkedin.svg)](https://www.facebook.com/socialANDEMILI/) [![youtube](https://blog.andemili.com/hubfs/youtube.svg)](https://www.youtube.com/channel/UCzSkWy1rcgGwXSPH3j0btBw/) [![instagram](https://blog.andemili.com/hubfs/instagram.svg)](https://www.instagram.com/socialandemili/)

[![](https://www.gstatic.com/partners/badge/images/2022/PartnerBadgeClickable.svg)](https://www.google.com/partners/agency?id=7862513535) [![](https://blog.andemili.com/hubfs/partner-badge-white.png)](https://ecosystem.hubspot.com/marketplace/solutions/and-emili)

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Alessandro Manfredi",
    "url" : "https://blog.andemili.com/en/author/alessandro-manfredi"
  },
  "dateModified" : "2024-05-15T13:19:38.205Z",
  "datePublished" : "2023-06-01T13:45:00.000Z",
  "headline" : "Flexible Data Management, Not Your Usual CRUD.",
  "image" : [ "https://blog.andemili.com/hubfs/flexible-data-management.jpg" ],
  "mainEntityOfPage" : {
    "@id" : "https://blog.andemili.com/en/flexible-data-management-not-your-usual-crud",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://blog.andemili.com/hubfs/ANDEMILI-logo.svg"
    },
    "name" : "AND EMILI"
  }
}
```

```json
{
  "@context" : "https://schema.org",
  "@type" : "VideoObject",
  "contentUrl" : "https://6991736.fs1.hubspotusercontent-eu1.net/hubfs/6991736/video%20CRUD.mp4",
  "dateModified" : "2023-05-22T13:24:42.448Z",
  "duration" : "PT1M24S",
  "height" : 1080,
  "name" : "video CRUD",
  "thumbnailUrl" : "https://6991736.fs1.hubspotusercontent-eu1.net/hubfs/6991736/video%20CRUD.mp4/medium.jpg",
  "uploadDate" : "2023-05-22T13:24:33.359Z",
  "width" : 1920
}
```