Posts

WebExpress – Dimensions of a Web Framework

Image
A web framework is not built on good code alone. Behind a platform like WebExpress lies a broad range of development disciplines that collectively determine its quality, maintainability, and long-term success. While users often see only the visible features, the real challenge lies in balancing architecture, security, performance, and developer productivity. At its foundation is clean, consistent, and sustainable code. Software must do more than work correctly. It must remain understandable, extensible, and maintainable over time. Clear architectural principles, consistent coding standards, high readability, modular design, reusable components, and code-centric documentation form the basis for continuous growth. In a framework that evolves over many years, code quality ultimately determines whether new functionality can be implemented in days or requires months of effort. Security must be an integral part of the framework from the very beginning. It cannot be treated as an afterthough...

WebExpress 2.0.0‑alpha – The Halloween Release 🎃

Image
The Ghosts of Legacy Code Are Gone With the release of WebExpress 2.0.0-alpha, the project reaches a major milestone. This version marks the completion of a comprehensive modernization effort and provides the technical foundation for modern cloud, containerized, and enterprise applications. The primary focus was not the introduction of individual features, but the modernization of the platform as a whole. Over recent development cycles, numerous components have been revised, technical debt has been reduced, and the architecture has been systematically unified. At the same time, security standards have been strengthened and key areas of the framework have been prepared for future requirements. The result is a modern, robust, and future-ready platform that provides developers and administrators with a reliable foundation for demanding applications. A major focus of the work was the user interface. Existing dependencies on Bootstrap and Popper have been removed entirely. Instead, WebExpr...

WebExpress – New Creative Energy

Image
WebExpress thrives on innovation, community, and the passion to create something special. Alongside modern software development, it is also about creativity, personality, and the ability to bring ideas to life. That is why we are excited to welcome the artist Raivoli as a creative contributor who will help shape the artwork and visual identity of our blog in the future. With remarkable talent, a strong sense of aesthetics, and impressive creativity, Raivoli brings fresh inspiration to the WebExpress universe. Her work combines imagination, expression, and attention to detail in a way that captivates and inspires. Going forward, her illustrations and creative ideas will help give our articles an even stronger visual identity while presenting technical topics from a unique and engaging perspective. If you have not yet discovered her work, we highly encourage you to visit her TikTok profile. Under @raivoli , she shares her artwork, creative projects, and insights into her creative pro...

WebExpress 2.0.0‑alpha – Why execCommand is Dead

Image
The development of modern rich-text editors on the web has undergone a fundamental paradigm shift. The native browser API document.execCommand() is obsolete, generates inconsistent HTML, and prevents precise control over the document flow. Frameworks like Tiptap, ProseMirror, or Lexical demonstrate that the future lies in a strict separation of data and representation. WebExpress is now undergoing a complete migration from error-prone DOM manipulation to a deterministic, state-based approach combined with a modern, block-based layout system. The core of this new architecture is a central JavaScript object in JSON format that defines the document as a tree structure known as an Abstract Syntax Tree. A document consists of a root node whose children are either structural layout blocks or content-based text elements. Each node has a type, optional attributes like formatting, and an array of child nodes. A text section is declared as a paragraph node whose children in turn are text nodes w...

WebExpress 2.0.0‑alpha – The Countdown to Halloween Has Begun

Image
The development of WebExpress 2.0.0-alpha continues to progress according to plan. Based on the current status, all major milestones remain on track, and the release is scheduled for Halloween. This would mark a return to a release date that was already chosen for a significant version last year. Over time, this consistency could evolve into a tradition, with major WebExpress releases arriving each Halloween. Current efforts are focused on completing new features, advancing core framework components, and delivering numerous improvements across the architecture, user interfaces, and development tools. Many of the planned enhancements have already been implemented and are currently undergoing integration and testing. As a result, the new version is steadily moving toward completion. Several bug fixes and smaller refinements are still in progress and are expected to be completed before release. As is typical for an alpha version, the current priority is to further improve stability, res...

WebExpress 2.0.0‑alpha – The End of Server Sessions

Image
WebExpress currently uses a stateful session model in which a server side session is created for each client. The session ID is stored in a cookie and transmitted with every request. Initially, the session is used solely to recognize the client and is only associated with an identity after successful authentication. User, role, and permission information then becomes available within the session context. As a result, the identity is bound to the session rather than the other way around. This architectural model clearly separates the technical client context from the user identity and has proven itself in numerous applications. However, as requirements for scalability, containerization, and distributed cloud infrastructures continue to grow, this approach increasingly reaches its limits. Because authentication information is tied to the server side session context, session state must be maintained persistently and synchronized across multiple instances. This increases infrastructure co...

WebExpress 2.0.0‑alpha – Native Certificate Management

Image
One of the strengths of WebExpress has always been its ability to operate efficiently across a wide range of environments, from small Raspberry Pi installations to larger server deployments. HTTPS support based on Kestrel has been part of the framework for years, and certificates can already be configured directly on endpoints using PFX files. This simple and reliable approach has served WebExpress well, particularly in lightweight and self hosted environments. As the platform continues to evolve, certificate management is becoming increasingly important. Today, HTTPS endpoints are directly coupled to certificate files defined in configuration. While this works perfectly for smaller deployments, it limits future scenarios such as automated certificate management, centralized certificate stores, cloud integrations, and dynamic multi domain hosting. To address these challenges, WebExpress is introducing a native certificate management infrastructure. The objective is to treat X.509 ce...

WebExpress 2.0.0‑alpha – Removal of Bootstrap and Popper.js

Image
The release of WebExpress 2.0.0-alpha initiates a radical architectural shift that finally casts off the legacy burdens of past years. The declared goal of this transformation is a drastic reduction in external dependencies, a noticeable performance optimization, and a consistent alignment with modern, native web standards. To achieve this milestone, both Bootstrap and Popper.js are being completely removed from the framework. What seems like a major cut at first glance actually frees WebExpress from unused CSS and external JavaScript dependencies that have simply become redundant in today's browser landscape thanks to modern standards. However, this deep restructuring brings significant technical challenges, particularly affecting the migration of familiar interactive components. One of the biggest undertakings is the complete transition of modals to the native HTML5 dialog element. Previously, dialog windows had to be painstakingly controlled via nested div structures, Aria attri...

WebExpress 2.0.0‑alpha – 8,000 Unit Tests and a Little More

Image
In the current development cycle of WebExpress 2.0.0-alpha, the framework has reached an important milestone in terms of quality assurance and stability. The current stage of development now includes more than 8,000 automated unit tests that continuously safeguard and validate a large portion of the framework's architecture. This testing foundation is complemented by extensive JavaScript and Node.js tests that cover client side components, integrations, and build processes. The large number of tests is not the primary goal itself, but rather the result of a consistently pursued commitment to quality. Every new feature, enhancement, and bug fix is accompanied by automated tests from the very beginning. This allows defects to be detected early, long before they can reach production environments. At the same time, it creates a reliable safety net for the ongoing evolution of the framework. The importance of automated testing has increased significantly throughout the development of We...

WebExpress 2.0.0‑alpha – The End of config.xml

Image
In modern software development with .NET the way we configure applications has changed fundamentally. While XML-based configuration files like a config.xml were the undisputed standard in the classic framework era the stage today belongs to cross-platform and cloud-native approaches. For a lightweight web server framework like WebExpress the switch to the modern appsettings.json offers an excellent opportunity to further increase performance while drastically simplifying handling for developers. The theoretical basis for this change is founded on the modern .NET Configuration Provider model which no longer views settings as rigid documents but as a flexible key-value store that can be dynamically fed from a wide variety of sources. The greatest advantage of this JSON-based configuration lies in its native and seamless integration into modern container environments like Docker. When WebExpress runs in a Docker container developers often need to control individual parameters such as port...

WebExpress 2.0.0‑alpha – From Sketch to Framework

Image
The way the framework is developed has changed fundamentally and now follows the philosophy of "from sketch to framework". While the focus was previously on manual programming, implementation is now handled entirely by Claude Code. The emphasis has shifted toward the conceptual design of ideas, where a simple mental or visual sketch serves as the direct starting point for new, production-ready components. The subsequent implementation, design, documentation, and creation of tutorial pages are fully automated from this initial concept. Compared to the traditional approach, this process is faster, more precise, more uniform, and more consistent. The human role has evolved into that of a system architect who defines requirements, provides the initial sketch, and steers the architectural direction. As a current use case, a static control ( ControlFormItemInputDnf ) for WebUI and a dynamic REST control ( ControlDataFormItemInputDnf ) for the WebApp are being implemented. This mirr...

WebExpress 2.0.0‑alpha – Custom SVG Icons

Image
The transition from Font Awesome to a fully custom SVG icon system represents a significant technological advancement in the evolution of WebExpress. Font based icons were functional but inherently limited because they remained bound to properties such as font size and color. This was sufficient for simple symbols yet restrictive for complex interfaces. By adopting SVG icons these limitations disappear entirely because SVGs exist as independent DOM elements that can be manipulated through the full range of CSS and JavaScript. This unlocks design capabilities that are practically unattainable with font icons. Path structures can be controlled with precision gradients can be defined natively and animations using stroke dasharray or stroke offset enable subtle micro interactions that make interfaces clearer and more expressive. The move to SVG also eliminates the licensing dependency that comes with third party icon fonts. Font Awesome is a powerful library but it introduces an external l...

WebExpress 2.0.0‑alpha – Development Progress

Image
The development of WebExpress version 2.0.0‑alpha marks an important step toward a more modern and cohesive framework architecture. As work continues across the three core modules WebUI, WebApp and WebCore, the halfway point of the alpha phase already shows how the system is evolving into a more flexible and efficient foundation for future applications. Many planned improvements have been implemented, while others are actively being refined, creating a clear picture of a release that significantly expands the capabilities of the framework. A central focus of the current development cycle is the introduction of new controls and the modernization of the user interface layer. These additions make interactions more dynamic and allow for more precise data binding and a clearer separation between presentation and logic. The UI benefits from new form components, configurable tables and enhanced list elements, all of which contribute to more adaptable and scalable interfaces. The rendering pi...

WebExpress 2.0.0‑alpha – View, State and Service, Part II: From Pro‑Control State to ViewStated Contexts

Image
An update to the earlier post about the View, State, and Service architecture. When the View, State, and Service architecture was introduced, it replaced scattered state, direct DOM manipulation, and implicit service calls with a clear unidirectional data flow. Each control gained an explicit state object, a typed service descriptor, and a predictable path from initialization through user interaction to re‑rendering. The model worked well and was written entirely in C#. The previous post showed how a list evolved from a handful of scattered properties into a single, well‑structured definition. As the architecture rolled out across control families, a deeper boundary became visible. The state was clean but still belonged per control. Each control seeded its own state island, resolved its own service, and loaded itself on mount. Two controls on the same screen showing the same data fetched it independently. There was no natural way for one control to trigger a re‑render in another when ...

WebExpress – AI‑Driven Development of the Framework

Image
It is no longer a secret that most of the code entering WebExpress today is no longer typed by hand. I propose it, generate it, and ideally also review it with the help of an AI. This has fundamentally changed how I develop the framework and forces me to ask whether I could maintain the pace the project now demands without this support. I am not trying to create hype or issue warnings. I want to describe honestly what AI gives me and what it costs me. When I look back two or three years, much of WebExpress was built in fragments. I implemented the critical paths carefully, yet many areas remained unfinished. Tests existed but were often postponed. Comments were present but rarely convincing. With AI assistance, this changed abruptly. Even non‑critical modules now receive the attention they previously lacked. Edge cases, validation, and clean error handling are no longer deferred. Test coverage has increased significantly, and instead of a single happy‑path scenario, I now cover difficu...

WebExpress 2.0.0‑alpha – Introducing the New View–State–Service Architecture

Image
With the new View‑State‑Service architecture, WebExpress enters a phase in which client‑side behavior becomes clearer, more predictable, and better structured than ever before. The motivation behind this step is straightforward. The previous mechanisms, scattered state, direct DOM manipulations, and implicit service calls, have worked well over the years but reach their limits once more complex interactions, multiple dependent components, or reusable patterns emerge. The new architecture establishes a clear foundation that remains consistent for both simple controls and sophisticated applications, while being authored entirely in C#. At its core, the model separates the three responsibilities that repeatedly occur in modern web applications. The state holds all data and UI flags of a control and serves as the single source of truth. The view is a pure function of that state and generates the DOM without its own side effects. The service encapsulates all network access and returns norm...

WebExpress – A Moment to Recharge

Image
Sometimes even the most dedicated project needs a moment to breathe. WebExpress has reached exactly that point. The past weeks have been intense, productive and filled with both small and significant progress. At the same time it has become clear that a short break is beneficial, a moment for vacation, for renewed energy and for fresh ideas that will help move the project forward. During this period the active development will pause. No commits, no new features, no conceptual decisions. Instead there will be room for distance, inspiration and the chance to look beyond the familiar horizon. One thing is just as clear. WebExpress will continue. And it will continue with full momentum. After the break exciting and conceptually challenging tasks are waiting. These include the further development of central modules, new architectural considerations and the design of features that will make WebExpress even more flexible and powerful in the long run. Anyone who would like to contribute, sh...

WebExpress 2.0.0‑alpha – A new beginning for the WebExpress versioning scheme

Image
Versioning is far more than a technical formality, because it provides orientation, makes developments traceable, and shows how a project moves within the tension between stability and progress. For WebExpress, this goal has not always been easy to achieve in recent months, as the project has been undergoing an intensive phase of restructuring. Although WebExpress was officially at version 1.8.0, that number hardly reflected the actual state of the system. Many core components were rethought, replaced, or fundamentally redesigned, and the architecture evolved faster than a traditional scheme could capture. To restore clarity, the versioning was reset. The current version 0.0.11‑alpha marks this new beginning and makes it clear that WebExpress remains in an active, experimental development phase. New features are emerging, existing ideas are being refined, and the foundation is gradually gaining stability. At the same time, this version number signals that the current scheme is only a t...

WebExpress 0.0.11‑alpha – A New Release Milestone

Image
With version 0.0.11‑alpha, WebExpress reaches another important milestone in its development. The new release not only delivers visible improvements to the user interface and usability but also introduces profound architectural enhancements that sustainably strengthen the framework’s foundation. This release marks the beginning of a new development phase in which WebExpress consistently focuses on greater dynamism, flexibility, and user orientation. A central advancement is the introduction of user‑based permissions and sessions. This makes access to content and functions more precisely controllable, giving WebExpress for the first time a clear separation between user roles, individual sessions, and context‑dependent rights. This foundation enables more complex authentication and authorization scenarios in the future without requiring additional infrastructure. WebExpress also evolves visually. The new dark mode with intuitive toggle controls allows seamless switching between ligh...