Overview
MegaForm is a form platform for Oqtane, DNN, and standalone ASP.NET Core / Razor hosts: a visual Form Builder, submissions and reporting, workflows, file handling — plus two built-in capabilities worth calling out:
- AI Form Designer — describe a form in plain English and the built-in assistant creates or modifies it, including forms bound to your SQL database (lookups, cascading selects, data-driven views, and drafting new tables). Stable and in production use.
- Multi-language, built-in — forms carry per-language translations with an on-page language switcher, and the admin UI itself ships in 19 languages. No add-on required.
The rest of this page introduces the MegaForm SDK for developers reading and writing MegaForm data from code.
The SDK
The MegaForm SDK (MegaForm.Sdk) is a thin facade that exposes a stable, host-agnostic
API over the MegaForm engine. Consumers depend only on a handful of interfaces and DTOs — never
on MegaForm's internal storage models, repositories, or rendering pipeline.
The object model
IMegaFormClient ← the single entry point
├─ Forms : IFormApi create / get / list / update / delete forms
├─ Submissions : ISubmissionApi find (FindData) / get / submit / update / delete
├─ Files : IFileApi list / open (download) uploaded files
└─ Schema : ISchemaApi parse form schema JSON into typed field metadata
Every call takes an optional MegaFormScope that
identifies the portal/site and acting user:
var scope = new MegaFormScope { PortalId = 1, UserId = 0 };
When omitted, the SDK falls back to the host's ambient platform context (the current request's portal). Pass an explicit scope from background jobs, schedulers, or any code running outside a MegaForm request.
Data Transfer Objects
The SDK never returns internal entities. It returns purpose-built DTOs:
| DTO | Purpose |
|---|---|
FormDto |
A form: id, title, status, schema JSON, submission count |
SubmissionDto |
A submission: id, DataJson, status, submitted timestamp |
FileDto |
File metadata: id, original name, content type, size (no storage path leaks) |
MegaFormFileContent |
File bytes + name + content type, ready to stream |
PagedResult<T> |
Items + TotalCount + Page + PageSize |
Queries are equally small: FormQuery and
SubmissionQuery.
Two ways to obtain the client
- Dependency injection (Oqtane, ASP.NET Core, any DI host):
register with
services.AddMegaFormSdk()and injectIMegaFormClient. - Ambient accessor (DNN Razor Host, DDR templates, legacy
.ascx— no DI): callMegaFormSdk.RunAsync(...).
Both paths are covered in Installation.
Host support
| Host | Status | How |
|---|---|---|
| Oqtane (Blazor) | ✅ Live-proven | Inject IMegaFormClient into a component — see Oqtane consumer |
| DNN (WebForms / Razor Host) | ✅ Live-proven | DnnServiceLocator.Instance.Mega or MegaFormSdk.RunAsync — see DNN Razor Host |
| ASP.NET Core / worker | ✅ Supported | AddMegaFormSdk() + register your repositories |
Target frameworks
MegaForm.Sdk multi-targets net472, net8.0, net9.0, and net10.0, so the same
package works on classic DNN (net472) and modern Oqtane (net10.0).
Product capability walkthroughs
Evaluating MegaForm rather than coding against it? Each of these pages answers one recurring evaluation question, with a screen recording of the real product:
| Question | Walkthrough |
|---|---|
| Can fields or sections be hidden / locked per role or user? | Field Permissions |
| Can one workflow be reused across many forms? Can complex flows be designed visually? | Workflow Library |
| Do approval tasks reach the right person's inbox automatically? | Approval Workflows & Inbox |
| Can the data grid be searched and filtered, at scale? | Submissions Grid |
| Is there a tabbed (free-navigation) form template? | Form Templates |