Search Results for

# Migrating From 4.x

AjaxUploader 5.0 is designed to let older Web Forms projects move forward without forcing a full rewrite on day one.

## What stays familiar

- The `CuteWebUI` namespace still exists for upgrade scenarios.
- Legacy controls such as Uploader, UploadAttachments, and UploadPersistedFile are still shipped.
- Legacy event and file wrapper types such as UploaderEventArgs, AttachmentItem, and PersistedFile are still available.

## What changed

- The runtime is HTML5-based. Old Flash and Silverlight-era settings remain for compatibility, but they do not bring those runtimes back.
- New development should prefer the `AjaxUploader.*` namespaces, especially AjaxFileUpload.
- `AjaxUploader.dll` is the main shipping assembly for v5.
- `CuteWebUI.AjaxUploader.dll` is only needed when an older project still references the old assembly name.
- The v5 license file is `ajaxuploader5.lic`.
- Local development on `localhost`, `127.0.0.1`, or `::1` does not require license detection.

## Recommended upgrade path

1. Replace the old binaries with the latest `AjaxUploader.dll`.
2. Keep your `CuteWebUI` markup and code-behind in place first.
3. Register the `ajaxupload.axd` handler and make sure uploads work end to end.
4. Verify your old server-side events and attachment flows on a real postback.
5. Migrate individual pages to `AjaxUploader.Controls.*` only when you want cleaner v5-native markup.

## Practical assembly guidance

For a normal v5 Web Forms app:

- Use `AjaxUploader.dll`
- Register `AjaxUploader.Controls`

For an upgraded 4.x app that still has old assembly references:

- Use `AjaxUploader.dll`
- Optionally keep `CuteWebUI.AjaxUploader.dll` only if the application still depends on the old assembly identity

## Typical upgrade pattern

Start by keeping the old control:

    <%@ Register Assembly="AjaxUploader" Namespace="CuteWebUI" TagPrefix="CuteWebUI" %>

    <CuteWebUI:Uploader ID="Uploader1" runat="server"
        InsertText="Select files"
        MultipleFilesUpload="true"
        OnFileUploaded="Uploader1_FileUploaded" />

Then move to the native v5 control later if you want:

    <%@ Register Assembly="AjaxUploader" Namespace="AjaxUploader.Controls" TagPrefix="au" %>

    <au:AjaxFileUpload ID="Uploader1" runat="server"
        ButtonText="Select files"
        Multiple="true"
        OnFileUploaded="Uploader1_FileUploaded" />

## Server-side events fire automatically

This is the behaviour upgraded pages depend on most, so it is worth stating plainly: the legacy Uploader and UploadAttachments controls post back automatically when the upload batch finishes, exactly as they did in 4.x. Your `FileUploaded`, `UploadCompleted`, and `AttachmentAdded` handlers run with no submit button on the page and no extra code - select a file, and the server-side event fires.

If you are wiring up a page from scratch with the modern AjaxFileUpload control instead, that automatic postback is opt-in there: set `AutoPostBack="true"`. The legacy wrappers turn it on for you so old markup keeps working unchanged. (An explicit `AutoPostBack="false"` in your markup is still honoured if a normal submit button drives the form.)

## Compatibility expectation

The goal of the `CuteWebUI` layer is upgrade continuity:

- old markup should keep compiling
- old code-behind patterns should keep working
- server-side events (`FileUploaded`, `UploadCompleted`, `AttachmentAdded`) should keep firing automatically after upload
- HTML5 upload behavior should be better than the old runtime

The goal is not to recreate the old browser plugins or every legacy visual behavior exactly.

## Where to go next

- Upgrade Log
- Legacy Uploader
- Legacy UploadAttachments
- Legacy UploadPersistedFile
- Deployment And Licensing