xLim is a set of principles/guidelines that come from real-world experience and attempts to build some theory behind it. They serve specific purpose of efficiently building flexible and light distributed information management systems in the future.
These principles are organized into multiple bodies of knowledge, where each successive one manifests increase in the scale and complexity of the solutions.
They go in the anti-chronological order, reflecting my own research and experience in the field, as it gets structured and shared with the community.
You can subscribe to the RSS feed to get all the latest updates.
xLim 4: CQRS in the Cloud
Active research and development: January 2010 - Current
xLim 4 is the latest part of xLim body of knowledge. It builds and brings the experience of enterprise integration, business intelligence, elastic cloud computing and large-scale deployments. It is heavily influenced by the CQRS and DDDD principles.'
There is a Lokad.CQRS framework, that provides foundation for creating enterprise solutions for Windows Azure.
Before getting started you might want to check out CQRS Architecture and Definitions and then CQRS Roadmap PDF that brings it on the same page with the other concepts of efficient development (like DDD, Event Sourcing, Cloud computing), explains the benefits and outlines the relations.
Command-Query Responsibility Segregation
There are a lot of terms and concepts related to the Command-Query Responsibility Segregation. Let's go through them one more time.
You can get puzzled by CQRS and overwhelmed by the design complexity if you have missed one critical ingredient - principles of Domain-Driven Design.
Let's walk over the UI validation and business rules as they work out in the CQRS world.
A few hacky insights from the Command-Query Responsibility Segregation learning project.
In this article we'll talk briefly about the CQRS views (read model) implementation for the Cloud Computing environment (Windows Azure). There will be some snippets and technical details.
Let's see how we can use specifications to test Aggregate Roots in the CQRS scenario.
Let's try to apply theory from Reactive Extensions and concurrent development to CQRS and see how the theory matches.
Talking about building enterprise systems with various levels reliability and redundancy with Command-Query Responsibility Segregation.
First draft of the unified theory on CQRS, almost-infinitely scalable systems and Cloud Programmability.
Salescast is a web application offering smart integration between various inventory and sales management solutions and Lokad Forecasting Services. It is hosted in Windows Azure and provides rich business intelligence and decision support for the customers.
CouchDB is a young document-oriented database that leans towards the web applications and is based on the CQRS principles. The latter gives it nice performance, distribution and scalability.
Bid Now is an online auction site designed to demonstrate how you can build highly scalable consumer applications on Windows Azure. If we look at it from the CQRS perspective, there are could be some some improvements to this guidance.
Lokad.CQRS is a .NET Foundation and Guidance that aims to help building scalable web sites and enterprise solutions on Windows Azure.
Cloud CQRS Lifehacks from Lokad Production
A few CQRS ideas from the production experience: real-time debugging, error notifications, domain event history, exploring domain and using Excel to visualize results of the temporal queries.
Some more ideas from the CQRS production experience: color coding, optimizing UI for iPad, monitoring queues for stale messages and making performance statistics immediately available and readable.
- Part 3: Helpful Domain Logs of CQRS
Let's talk about a quick and simple approach of categorizing messages from the domain log and then visually differentiating them with hash-based background colors.
Let's automatically visualize and document your DDDD/CQRS solution using some reflection and Visio 2010
Let's talk about using Graph# project to layout and visualize complex dependencies in IoC containers and in enterprise solutions.
Let's do a quick overview of debugging CQRS applications and capturing statistics in the context of domain events.
Teaching Visual Studio a custom CQRS-specific DSL that will generate your commands and events on the fly!
Intelligent software brings and saves money. So let's learn about injecting some business intelligence into a simple .NET application.
Persisting domain events for your enterprise software solution or entire company provides much better insight into the business. It also helps to anticipate the future and be prepared for it, gaining competitive advantage. Time Machine with LINQ capabilities can help here out.
These are ongoing series. More articles are planned. You can stay tuned by subscribing to the Journal and also check out the section referencing other materials on Command-Query Responsibility Segregation
xLim 3: Distributed Solutions
Active research and development: May 2008 - December 2009
xLim 3 builds up on the foundation of xLim 2 and brings experience of complex large-scale development into the picture. Actual codebase backing up the theoretical analysis had spawned multiple real-world software products, more than 50 prototypes and successful open source projects. Challenges of efficiently dealing with such a large-scale development significantly influenced articles and theory below.
- Structuring .NET Applications with Autofac IoC
- Component-Driven Development and IoC Containers
- Developing Component-Driven Applications powered by IoC Containers
- Infrastructure Shards and Optional Components
- Maintenance and Monitoring Infrastructure for the Enterprise Software Systems
- Deployment and Updates of Desktop Applications: WiX, ClickOnce and Other Scenarios
- Integrating Efficient Development, Deployment and Customer Feedback
Cloud Computing Tech:
- Cloud Bursting Scenarios For Small Companies
- CouchDB in the Cloud - Cheap and Flexible Persistence For .NET
- CouchDB in the Cloud - Persisting From .NET Code
- Hosting .NET Applications on Cloud Servers with Mono
- Testing MVC Controllers with Mock Container
- Testing MVC Elements and Interactions with Mock Container
xLim principles have gone Open Source:
- Lokad Shared Libraries - common Application Blocks, helper classes and some development principles that are based on the experience from the previous xLim versions. Additionally, they form reusable codebase for this version of xLim.
- Lokad SDK for .NET - Forecasting SDK for building .NET apps on top of the Lokad business analytics services.
xLim 2: SmartClient and Composite Solutions
Active development: September 2007 - May 2008
xLim 2 builds up on the foundation of xLim 1 and brings production experience into the picture. Development standards, flexible architecture and continuous integration start playing an important role here.
You can browse all related posts or check out the highlights:
- Recommended tools, components and software.
- Recommended principles of efficient development.
- Organization of xLim solutions: development, version control and integration folders.
- Organization of xLim solutions: Visual Studio solutions.
- xLim 2 Engine concept or simple continuous integration for businesses.
These things could be interesting to know about:
- How to simplify complex maintenance tasks of your information management solution
- Managing the flexibility - .NET IoC Container Registration Explorer and Part 2
- How to use IoC container with nested scopes for application composition?
- Simplified architecture of xLim
- How to implement complex UI composition in xLim?
xLim 1: Getting Started
Active research and development: May 2007 - June 2007
xLim 1 is a research on building distributed information management systems efficiently. It is based on some established patterns and practices, along with the development principles and some commercial component suites.
More articles are scheduled to come. You can get these updates by subscribing to the RSS feed.