Confinity Documentation
  • Latest Version
  • Latest Version
  • Getting Started

    • Introduction
    • Core Concepts
    • Create an Application
    • Glossary
  • Essentials

    • Authentication & SSO
    • Breaking Changes
    • Roslyn Source Analyzers
    • Changelog
    • ConfinityContent
    • ConfinitySelectable
    • Confinity Schedules
    • Data Seeding
    • Development guidelines [WIP]
    • Entity App
    • Entity Form
    • Entity Permissions
    • Frontend Configuration
    • Images
    • Known Issues
    • Localization
    • Migrations
    • Modules [WIP]
    • On-Site Editing
    • Settings
    • Cascade Delete
    • Replication
    • Infrastructure
  • Modules

    • Analytics Module
    • Assets Module
    • Blog Module
    • Cookie Consent Module
    • Forms Module
    • Friendly Captcha (Forms Module )
    • GeoIP Module
    • Htmx
    • Mail Module
    • Mailing Module
    • MediaPlayer Module
    • GoogleMyBusiness Module
    • OpenTelemetry Module
    • Pages Module [WIP]
    • Pattern Library Module
    • SIX Saferpay (worldline) Module
    • Products Module
    • Search Module
    • Wizard Module
  • Guides

    • Create a Custom Entity App Form Element
    • Date and Time
    • Entity Change Listener
    • File Upload / Temp File
    • HTTP security headers
    • conventions [WIP]
    • How to use Confinity with nginx
    • Notifications
    • Nullability
    • Rename Entity
    • Schedules
    • Useful snippets
    • Content Localization
  • Design Guidelines

    • Introduction
    • Page Components
    • Forms Module

Development guidelines [WIP]

Nullable reference types

Confinity is developed with the compiler settings for nullable reference types enabled. Therefor, when one of our APIs expects a non-nullable reference type we do not check it for null and its the caller's responsibility to make sure said parameter is not null.

In case you want to use the same project settings we as we do, add the following to your .csproj.

<Nullable>enable</Nullable>
   <WarningsAsErrors>CS8600;CS8602;CS8603;CS8625;CS8714;CS8604;CS8618;CS8613;CS862;CS8631;CS8620;CS8601;CS8622;CS8605;CS8765;CS8619;CS8609;CS1998</WarningsAsErrors>

Todo: Namespace

ASP.Net Core view components

In case you are using ASP.Net Core view components in your application, please make sure to invoke them by type instead of by name. e.g.

@await Component.InvokeAsync(typeof(YourViewComponent), new { maxPriority = 4, isDone = true })

Thereby, you avoid to accidentally call a view component with the same name defined by Confinity or one of its modules.

Prev
Data Seeding
Next
Entity App