Serenity.Net.Core assembly

Serenity namespace

signature name description
static class  AuthorizationExtensions Authorization extension methods
static class  CollectionExtensions Basic collection extensions
enum  DateElementOrder Date element orders
static class  DateHelper Static class with common date utilities and constants
static class  DistributedCacheExtensions Contains extensions methods to work with IDistributedCache provider.
static class  EnumMapper Contains Enum mapping and other helper functions
static class  ExceptionExtensions Exception data extensions
interface  INotLoggedException An exception that should not be logged.
static class  Invariants Invariant culture related constants and formats.
interface  ITextLocalizer Text localizer for current context language / pending state.
interface  IUserDefinition User definition abstraction.
static class  JSON Contains shortcuts to Newtonsoft.Json serialization / deserialization methods, and default Serenity settings.
static class  JsonSettings Contains default Serenity JSON serialization settings.
class  LocalText Defines a localizable text resource. Contains a local text key and has implicit conversions to and from String.
static class  MemoryCacheExtensions Contains extensions methods to work with IMemoryCache provider.
class  NullExceptionLogger Null exception logger that logs nothing
class  NullTextLocalizer Null text localizer which returns null for all keys
static class  PathHelper Contains Path related helper functions.
static class  ReflectionExtensions Reflection extensions
static class  StringHelper This static class contains some helper functions that operate on String objects.
enum  SummaryType Enumeration of aggregate function types for a column
static class  TextLocalizerExtensions Extensions for local text context
class  Throttler Provides throttling checks for operations. E.g. allow 10 login attempts per minute.
class  TwoLevelCache Contains helper functions to use local and distributed cache in sync with optional cache invalidation.
static class  TwoLevelCacheExtensions Contains extension functions to use local and distributed cache in sync with optional cache invalidation.
static class  UriHelper Contains URI related helper functions.

Serenity.Abstractions namespace

signature name description
class  DefaultTypeSource Default implementation for a type source
interface  IExceptionLogger Exception logger abstraction
interface  IHttpContextItemsAccessor Interface for abstraction that should return HttpContext.Current.Items for web requests, and null for normal threads.
interface  IImpersonator Interface for authorization services that supports temporary impersonating
interface  ILocalTextRegistry Abstraction for local text registry which stores translations for local text keys.
interface  IPermissionService Permission service abstraction
interface  IRemoveAll Abstraction for objects that supports clearing all items, like a cache or local text registry.
interface  ITransientGrantor Interface for permission services that supports granting permissions temporarily
interface  ITwoLevelCache An abstraction for a combination of in memory and distributed cache.
interface  ITypeSource Abstraction for type source which is used as an extensibility point for Serenity applications
interface  IUserAccessor Abstraction to access current user
interface  IUserRetrieveService User definition retrieve service abstraction
static class  TypeSourceExtensions Type source extension methods

Serenity.ComponentModel namespace

signature name description
class  AlignCenterAttribute Centers text horizontally (usually in a grid column).
abstract class  AlignmentAttribute Controls horizontal alignment of text (usually in grid columns).
class  AlignRightAttribute Right aligns text horizontally (usually in a grid column)
class  AllowHideAttribute Controls users ability to hide a column, e.g. using column picker.
class  AnnotationTypeAttribute Declares that the type with this attribute is an annotation type for another type, e.g. it contains attributes for the other type and its properties. This is mainly used to separate dependencies between rows and UI related properties like editor types etc.
class  AsyncLookupEditorAttribute Indicates that the target property should use a "Lookup" editor with "async" set to true.
class  BasedOnRowAttribute An attribute that indicates this type is based on another row type. Used with form, columns etc. types to map their properties to corresponding property in a row, so that they inherit attributes.
class  BooleanEditorAttribute Indicates that the target property should use a "Boolean" editor.
class  BooleanFilteringAttribute Sets filtering type to "Boolean"
class  BooleanFormatterAttribute Sets formatting type to "Boolean"
class  CheckboxFormatterAttribute Sets formatting type to "Checkbox"
class  CheckLookupEditorAttribute Indicates that the target property should use a "CheckLookup" editor.
class  CollapsibleAttribute Used to specify a target is collapsible. Commonly used with form categories to make them collapsible.
class  ColumnsScriptAttribute Indicates that this type should generate a columns script, which contains information about properties in this type and is an array of PropertyItem objects. Column scripts can be accessed from client side using Q.getColumns("Key")
class  CssClassAttribute Sets the CSS class for columns and form fields. In forms, class is added to container div with .field class that contains both label and editor. For columns, it sets cssClass property of SlickColumn, which adds this class to slick cells for all rows. Slick column headers are not affected by this attribute, use HeaderCssClass for that.
abstract class  CustomEditorAttribute Base attribute class that all other custom editor types derives from.
abstract class  CustomFilteringAttribute Base class which other custom filtering types derive from.
abstract class  CustomFormatterAttribute Base class for custom formatter type attributes
class  DataScriptAttribute Indicates that this method / type should generate a remote data script. Data contained by remote data scripts can be accessed client side using Q.getRemoteData("Key") function.
class  DateEditorAttribute Indicates that the target property should use a "Date" editor.
class  DateFilteringAttribute Sets filtering type as "Date"
class  DateFormatterAttribute Sets formatting type to "Date"
class  DateTimeEditorAttribute Indicates that the target property should use a "DateTime" editor.
class  DateTimeFilteringAttribute Indicates that this field should have date/time type of filtering
class  DateTimeFormatterAttribute Sets formatting type to "DateTime".
class  DateYearEditorAttribute Indicates that the target property should use a "DateYear" editor.
class  DecimalEditorAttribute Indicates that the target property should use a "Decimal" editor.
class  DecimalFilteringAttribute Indicates that this field should have decimal type of filtering
class  DisplayFormatAttribute Sets the display format for a column. This has no effect on editors! It is only for Display, "NOT Editing". For editing, you have to change UI culture.
class  DistinctValuesEditorAttribute Indicates that the target property should use a "DistinctValues" editor and also defines an automatic lookup script for row fields.
abstract class  DynamicScriptAttribute Base class for dynamic script attributes. Dynamic scripts contain dynamic data, but they are not parameterized.
class  EditLinkAttribute Indicates that the property this attribute placed on should have an edit link
class  EditorFilteringAttribute Indicates that property should a custom editor for filtering, which is usually determined by form editor type of the property.
class  EditorOptionAttribute Sets an editor option for target property editor. Avoid using this where possible as option keys and values are not checked.
class  EditorTypeAttribute Sets editor type of the target property.
class  EmailAddressEditorAttribute Indicates that the target property should use a "EmailAddress" editor.
class  EnumEditorAttribute Indicates that the target property should use a "Enum" editor.
class  EnumFilteringAttribute Indicates that property should use enum type of filtering
class  EnumFormatterAttribute Sets formatting type to "Enum".
class  EnumKeyAttribute Sets the enumeration key of an enum
class  FileDownloadFormatterAttribute Sets formatting type to "FileDownload".
class  FileUploadEditorAttribute Sets editor type as "ImageUpload" (single), while allowing non-image files.
class  FilteringIdFieldAttribute Specifies ID field to filter on a field. For example, if this attribute is placed on EmployeeName field, EmployeeId can be the filtering field, so that values are filtered on ID not text value.
class  FilteringOptionAttribute Declares a new filtering option
class  FilteringTypeAttribute Sets filtering type for the field
class  FilterOnlyAttribute Indicates that this field should not be shown, and could not be made visible in column selection dialog, but only used for advanced filtering.
class  FormatterOptionAttribute Adds a formatter option
class  FormatterTypeAttribute Sets formatter type.
class  FormCssClassAttribute Sets CSS class for field on forms only.
class  FormScriptAttribute Indicates that this type should generate a form script, which contains information about properties in this type and is an array of PropertyItem objects. Form scripts can be accessed from client side using Q.getForm("Key")
class  FormWidthAttribute Sets CSS class for field on forms only. Useful for Bootstrap grid, e.g. col-md-4 etc.
class  FullWidthAttribute Set form field width class to null, e.g. full width
class  GroupOrderAttribute Sets in which order this property should be grouped by. This is only meaningful when a grid has grouping, and it sets the default grouped columns. The properties with this attribute are the default ones grouped by and their groupOrder determines in which order they are grouped by.
class  HalfWidthAttribute Marks form field with "col-sm-6" css class, which makes it allocate half of form row on device widths >= 768px (e.g. iPad)
class  HeaderCssClassAttribute Sets the CSS class for grid column headers. It sets headerCssClass property of SlickColumn. This has no effect for forms.
class  HiddenAttribute Sets a column as initially hidden
class  HideOnInsertAttribute Controls whether this field is visible on new record mode
class  HideOnUpdateAttribute Controls whether this field is visible on edit record mode
class  HintAttribute Sets a hint for a form field. Hint is shown when field label is hovered. This has no effect on columns.
class  HtmlContentEditorAttribute Indicates that the target property should use a "HtmlContent" editor. This is generally a CK editor that contains more functionalities compared to other ones.
class  HtmlNoteContentEditorAttribute Indicates that the target property should use a "HtmlNoteContent" editor. This is generally a CK editor with only basic functionality for notes enabled.
class  HtmlReportContentEditorAttribute Indicates that the target property should use a "HtmlReportContent" editor. This is generally a CK editor with only functionality compatible with common reporting tools like SSRS, Telerik, DevExpress etc. enabled.
class  IgnoreAttribute Skips a property while generating grid column or form field list. Use this to ignore a property for UI, but still use it for other purposes like JSON serialization. This might be useful when a type is used as a Service Request and Form Declaration at the same time.
class  IgnoreNameAttribute Skips checking a property name. This is usually used along with BasedOnRow attribute CheckNames = true to skip checking property name if it matches a field property name in the row.
class  ImageUploadEditorAttribute Sets editor type as "ImageUpload", which only allows image files. Make sure you use this attribute in Row.cs, not Form.cs as the image upload behavior only works if it is in row, otherwise your files will stay in temporary directory.
class  InsertableAttribute Controls if this field is editable in new record mode. When used with fields, turns on or off the insertable flag.
class  IntegerEditorAttribute Indicates that the target property should use a "Integer" editor.
class  IntegerFilteringAttribute Indicates that property should use integer type of filtering
class  LabelWidthAttribute Determines label with of target property, and optionally the properties following it until another of this attribute is used.
class  LocalTextPrefixAttribute Sets local text prefix for the row.
class  LookupEditorAttribute Indicates that the target property should use a "Lookup" editor.
abstract class  LookupEditorBaseAttribute Base class for lookup based editor types
class  LookupFilteringAttribute Indicates that property should use lookup editor type of filtering
class  LookupScriptAttribute Placed on rows / or custom lookup classes to denote it has a lookup script. When placed on a row class, lookup scripts only transfer ID and Name fields by default to client side for security / performance reasons. Make sure you add [LookupInclude] attribute to properties you'll need to access from script.
class  MaskedEditorAttribute Indicates that the target property should use a "Masked" editor and also defines an automatic lookup script for row fields.
class  MaxLengthAttribute Sets the maximum length of an editor attached to the target property.
class  MediumHalfLargeQuarterWidthAttribute Marks form field with "col-md-6 col-lg-3" css class, which makes it allocate half of form row on device widths >= 992px (some desktop), and quarter on device widths >= 1200px
class  MediumHalfLargeThirdWidthAttribute Marks form field with "col-md-6 col-lg-4" css class, which makes it allocate half of form row on device widths >= 992px (some desktop), and third on device widths >= 1200px
class  MediumHalfWidthAttribute Marks form field with "col-md-6" css class, which makes it allocate half of form row on device widths >= 992px (some desktops)
class  MediumQuarterWidthAttribute Marks form field with "col-md-3" css class, which makes it allocate quarter on device widths >= 992px (some desktops)
class  MediumThirdLargeQuarterWidthAttribute Marks form field with "col-md-4 col-lg-3" css class, which makes it allocate third of form row on device widths >= 992px (some desktop), and quarter on device widths >= 1200px
class  MinuteFormatterAttribute Sets formatting type to "Minute" which formats an integer value in HH:mm format.
class  ModuleAttribute Sets the module name for the row. Module name is usually the folder name under ~/Modules folder entity resides in.
class  MultipleFileUploadEditorAttribute Sets editor type to "MultipleImageUpload" while allowing non-image files.
class  MultipleImageUploadEditorAttribute Sets editor type to "MultipleImageUpload" which doesn't allow non-image file types by default.
class  NestedLocalTextsAttribute Indicates that this class contains local texts with optionally subclasses that also contains local texts with keys joined by "." between each class name. The topmost class has no local text prefix by default and its name doesn't take role in local text key generation.
class  NestedPermissionKeysAttribute Indicates that this class contains permission keys with optional subclasses that also contains permission keys.
class  NotFilterableAttribute Indicates that the field this attribute is placed on is not filterable.
class  NumberFormatterAttribute Sets formatting type to "Number"
class  OneThirdWidthAttribute Marks form field with "col-md-4" css class, which makes it allocate a third of form row on device widths >= 992px (e.g. medium desktop)
class  OneWayAttribute Indicates that the target property should not get serialized when a property grid is saved. This means, the editor of the property reads the value from the entity, but it doesn't get written back to save entity.
class  PasswordEditorAttribute Indicates that the target property should use a "Password" editor.
class  PlaceholderAttribute Sets a placeholder for a form field. Placeholder text is shown inside the editor when its value is empty. Only editors using basic inputs and Select2 editor supports this.
class  PropertyItem Corresponds to a property item (e.g. a field in property grid with a label and editor, or a column specification in a grid)
class  QuarterWidthAttribute Marks form field with "col-lg-3 col-sm-6" css class, which makes it allocate half of form row on device widths >= 768 (e.g. ipad), and quarter on device widths >= 1200px (desktop)
class  QuickFilterAttribute Indicates that this property should have a quick filter on grid.
class  QuickFilterOptionAttribute Add an option to the quick filtering.
class  RadioButtonEditorAttribute Indicates that the target property should use a "RadioButton" editor.
class  RecaptchaAttribute Indicates that the target property should use a "Recaptcha" (Google).
class  RecaptchaSettings Settings for Recaptcha integration
class  RegisterPermissionKeyAttribute Registers a permission key.
class  RequiredAttribute Determines if field is required in form.
class  RequiredPermissionAttribute Specifies required permission to access an object, e.g. a report
class  ResetFormWidthAttribute Resets form field width to null. It maybe used to cancel UntilNext flag of a prior width attribute.
class  ResetLabelWidthAttribute Resets form css class to null, it maybe used to cancel a prior LabelWidth attribute with UntilNext = true
class  ResizableAttribute Determines resizability of a target column.
class  ScriptIncludeAttribute Enables script code generation for the type this attribute is placed on. By default, types which are used in an endpoint / row is automatically enabled for code generation. Use this only for non-referenced types.
class  ScriptSkipAttribute Disables script code generation for the type this attribute is placed on. Currently only useful for LocalText/Permission generation.
class  ServiceLookupEditorAttribute Indicates that the target property should use a "ServiceLookup" editor.
abstract class  ServiceLookupEditorBaseAttribute Base class for service lookup based editor types
class  SortableAttribute Indicates if sorting is enabled for this property
class  SortOrderAttribute Sets the column as sorted by default, and its index among sorted columns. Negative values means descending sort. Applies only to columns.
class  StringEditorAttribute Indicates that the target property should use a "String" editor.
class  SummaryTypeAttribute Determines type of aggregate function for a column to use
class  TabAttribute Sets a tab for a form field.
class  TextAreaEditorAttribute Indicates that the target property should use a "TextArea" editor.
class  ThreeQuarterWidthAttribute Marks form field with "col-lg-9" css class, which makes it allocate three quarter on device widths >= 1200px
class  TimeEditorAttribute Indicates that the target property should use a "Time" editor.
class  TwoThirdWidthAttribute Marks form field with "col-md-8" css class, which makes it allocate two third of form row on device widths >= 992px (e.g. medium desktop)
class  UpdatableAttribute Controls if this field is editable in update record mode. When used with fields, turns on or off the updatable flag.
class  URLEditorAttribute Indicates that the target property should use a "Url" editor.
class  UrlFormatterAttribute Sets formatting type to "Url"
class  VisibleAttribute Controls initial visibility of a column / form field.
class  WidthAttribute Sets column width

Serenity.Data namespace

signature name description
class  Base32 This class is based on the Base32 class from DC# 0.31 All credits to Jonathan Bindel.
static class  BinarySerialization Contains helper functions for serialization and deserialization of data items (e.g.cached items)
class  DeletePermissionAttribute Sets delete permission for the row.
class  FieldInsertPermissionAttribute Sets default read permission for fields of a row which doesn't have a InsertPermission themselves.
class  FieldModifyPermissionAttribute Sets default read permission for fields of a row which doesn't have a ModifyPermission themselves.
class  FieldReadPermissionAttribute Sets default read permission for fields of a row which doesn't have a ReadPermission themselves.
class  FieldUpdatePermissionAttribute Sets default read permission for fields of a row which doesn't have a UpdatePermission themselves.
class  InsertPermissionAttribute Sets delete permission for the row.
class  JsonSafeInt64Converter Serialize/deserialize a row
class  ModifyPermissionAttribute Sets modify permission for the row. Modify permission is used for Insert/Update/Delete if they are not explicitly specified.
class  NavigationPermissionAttribute Sets navigation permission for the row, which if exists takes precedence over ReadPermissionAttribute to determine permission for row's page and navigation item.
abstract class  PermissionAttributeBase An abstract base attribute that all permission related attributes derive from.
class  ReadPermissionAttribute Sets read permission for the row.
class  UpdatePermissionAttribute Sets update permission for the row.

Serenity.Extensions.DependencyInjection namespace

signature name description
static class  CoreServiceCollectionExtensions Contains extensions to register core services

Serenity.IO namespace

signature name description
enum  DeleteType File deletion type.
class  GlobFilter A fast glob implementation, compatible with .gitignore patterns of GIT
class  TemporaryFileHelper Contains helper functions for temporary files and folders

Serenity.Localization namespace

signature name description
class  DefaultTextLocalizer Implementation of text localizer for current ui culture name and text registry
static class  EnumLocalTextRegistration Contains initialization method for adding local text translations defined by Description attributes in enumeration classes.
class  FallbackLocalTextSource Adds key fallback to any ILocalTextSource implementation
class  InitializedLocalText A subclass of LocalText class that contains a initial translation value. Some classes like NestedLocalTextRegistration uses this type to avoid re-registering a initialized local text object, when their Initialization method called more than once.
static class  JsonLocalTextRegistration Contains helper methods for registration of local texts in hierarchical/dictionary formatted JSON files.
class  LocalTextRegistry Default ILocalTextRegistry implementation.
static class  NestedLocalTextRegistration Contains helper methods for registration of local texts in nested static classes. Nested static contains LocalText objects with actual translations as keys. This class locates them (with NestedLocalTextsAttribute at outermost class), determines keys by path from outermost to nested class name, replaces existing LocalText instance with a InitializedLocalText instance containing this generated key and initial translation, and registers this translation in ILocalTextRegistry provider.
static class  NestedPermissionKeyRegistration Contains helper methods for registration of permission keys in nested static classes. These classes contains string contants containing permission keys. Display name for permission keys can be set by [DisplayName] attribute. Display name for groups can be set by [Description] attribute on classes themselves. For group display name to work, all constants in a class must start with same group prefix.

Serenity.Plugins namespace

signature name description
class  CssFile CSS file dependency for plugins
interface  ICssFiles CSS file dependencies for plugins.
interface  INavigationItems Abstraction for plugins with navigation entries
interface  IPlugin Abstraction for plugins
interface  IScriptFiles Abstraction for plugins with script file dependencies
class  NavigationEntry Plugin navigation entry abstraction.
class  PrecompiledViewsAttribute Indicates that this plugin assembly contains precompiled views (by RazorGenerator)
class  ScriptFile Plugin script file registration

Serenity.Reflection namespace

signature name description
static class  AnnotationTypeExtensions Extension methods for annotation types
class  AnnotationTypeRegistry Default annotation type registry
class  AssemblySorter Sorts assemblies based on their dependencies
class  CodeWriter Used to write formatted code to a string builder.
interface  IAnnotatedType Annotated type information
interface  IAnnotationTypeRegistry An interface to query list of annotation types for a given type
interface  IPropertyInfo An interface to virtualize property attribute access
class  WrappedProperty A class that basically implements IPropertyInfo for PropertyInfo objects

Serenity.Services namespace

signature name description
enum  ColumnSelection Column selection types for List services
class  JsonStringHashSetConverter Serialize/deserialize a IdentifierSet object as string
static class  PermissionExpressionParser A simple parser / evaluator for logic permission expressions
class  ValidationError Generic validation error mostly used by services.

Serenity.Web namespace

signature name description
enum  ImageScaleMode Thumbnail scaling modes
class  ImpersonatingUserAccessor Adds impersonation support to any IUserContext implementation
class  LogicOperatorPermissionService Adds AND OR operator support to any IPermissionService implementation
class  TransientGrantingPermissionService Adds temporary granting support to any IPermissionService implementation