No Vendor Lock-In

Use the best library for each job. Switch when better options emerge.

The Lock-In Problem

Traditional Java web frameworks trap you in their component ecosystems.

Proprietary Components

Vaadin and ZK build their own components. You can only use what they provide.

Limited Choice

Need a feature their grid doesn't have? Too bad. Build it yourself or wait for them.

Expensive Licensing

Premium components often require expensive commercial licenses for basic features.

No Interoperability

Can't mix components from different vendors. One ecosystem, take it or leave it.

Slow Updates

Waiting for the vendor to add features or fix bugs. You're on their timeline.

Migration Nightmare

Switching frameworks means rewriting everything. You're stuck.

The Oorian Approach

Oorian wraps existing libraries instead of building its own. You choose the components.

Mix and Match

Use SyncFusion for grids, ECharts for charts, Webix for forms. Best tool for each job.

Easy Switching

Don't like one library? Switch to another. Same Oorian patterns, different implementation.

Best-of-Breed

Each library is maintained by specialists. Get enterprise quality without building it yourself.

Flexible Licensing

Choose components with licensing that fits your needs. Some are free, some commercial.

Rapid Updates

Libraries update independently. Get new features as they're released.

Smooth Migration

Add new libraries without rewriting. Gradually adopt new technologies.

Flexibility in Action

Mix libraries from different vendors in the same application.

java
@Page("/dashboard")
public class DashboardPage extends HtmlPage
{
    @Override
    protected void createBody(Body body)
    {
        // SyncFusion for the data grid
        SfDataGrid ordersGrid = new SfDataGrid();
        ordersGrid.setDataSource(orders);
        ordersGrid.setAllowPaging(true);

        // ECharts for the revenue chart
        EChart revenueChart = new EChart();
        revenueChart.setOption(createRevenueChartOption());

        // Webix for the sidebar form
        WxForm filterForm = new WxForm();
        filterForm.addElement(new WxDatepicker("startDate"));
        filterForm.addElement(new WxDatepicker("endDate"));

        // Bootstrap for layout
        BsContainer container = new BsContainer();
        BsRow row = container.addRow();

        row.addColumn(3).addElement(filterForm);
        row.addColumn(9).addElement(ordersGrid);

        body.addElement(container);
        body.addElement(revenueChart);
    }
}

Framework Comparison

FeatureOorianVaadinZK
Component SourceWrapped librariesProprietaryProprietary
Mix Libraries?YesNoLimited
Switch ComponentsEasyRewriteRewrite
Library Choice59+ optionsVaadin onlyZK only
UpdatesPer libraryFramework releaseFramework release
Lock-In LevelLowHighHigh