-
18 votes
write about using immutable model classes in enterprise applications
Immutable classes (models in MVC) simplify complex development in a number of situations (concurrency, testing, functional code flow).
-
13 votes
write an article on Result{T} monads in C# and failure handling
Result{T} and Result{TValue,TError} monads extend the idea of Maybe{T} monad and allow to have strongly-typed and efficient failure handling, which does not have the drawbacks of conventional exceptions.
-
10 votes
write about evolving the legacy code ("Legacy code should still be agile.")
Legacy code usually faces two fundamental problems: it needs to be rewritten and it is already bringing business value to the company.
In such situations project managers and developers have to find a balance between rewriting the entire codebase from scratch and painfully evolving existing application.
-
8 votes
write Zen article about distributed version control systems
Distributed version control systems (like Git or Mercurial) get more and more popularity these days.
Although, there are some learning and adoption barriers, this popularity is well-deserved.
-
7 votes
write about implementing maintenance and monitoring infrastructure for the distributed apps.
There was an article about some theoretical aspects of implementing monitoring and maintenance systems for the distributed apps. It definitely misses implementation details for the .NET environment.
-
3 votes
Write about simple event wiring in the Composite UI Apps
Composite UI application is an application created from loosely coupled components and UI blocks (components, too).
Even handling and dispatching is one of the tricky parts of such an application. Let's cover the scenario, when the application is really simple and does not need complex framework for that
-
0 votes
write about development constraints in software projects
Every software project starts with a certain set of rules constraining development. These development constraints (established willingly or by an external force) prohibit from using certain technologies, development approaches or tools.
Although, this might sound like a limiting concept, constra... more