Architecture, Design, Patterns
6 07 2017
One of new features of C# 7.0 is support for local functions. Local functions are methods that are defined inside other methods to simplify more complex code and by example to support local recursion. This blog post shows how to use local functions in C# 7.0 and gives some advice in context of technical design of code.
17 03 2017
Serverless architecture and Functions as a Service (FaaS) are new trends in cloud computing. Besides Microsoft and Amazon there are many other vendors providing FaaS services. This blog post is short introduction to serverless architecture and here I try to explain what it is and why we need it.
19 04 2016
When new Microsoft Azure services come they usually have REST API-s available. Of course, there are usually client libraries available too as NuGet packages but usually not for every .NET flavour. Although Microsoft has plans to publish libraries for CoreCLR too it doesn’t happen always fast. Let’s see how REST API-s work and how to prepare for using them.
11 02 2016
In one of my systems I’m using background process that hosts jobs that import and update some data and communicate with external services. These jobs are running after some interval or on specific moments. I generalized the common base part of these jobs so I can handle them as one in different background processes like Azure worker roles and Windows services. This blog post introduces my work and shows real-life implentation of jobs base.
26 11 2014
Next week I have honor to speak at Software Development Conference 2014. It is held on 01-02.12 at Arnhem, Netherlands. I have sessions on both days – in total four sessions – and here is the short overview of these. It’s all mostly about ASP.NET, ASP.NET vNext, and cloud but there’s also something about legacy code. I hope you will join me!
3 03 2014
Facade is known pattern for communication layer between system parts. Facades are classes that provide often simplified access to subsystems functionalities but they don’t set any limitations for using subsystem classes directly. Facades can be found from many API-s in different forms, This posting is quick introduction to Facade Pattern.
19 12 2013
One problem related to composite pattern is how to implement operations over child collections. Composite classes have children and leaf classes not. There are many ways how to solve the problem of where and how to keep child nodes collection. In this posting I go through different options and analyze those solutions through different code examples.
16 12 2013
This is one of the examples from my presentation about how to port existing ASP.NET applications to Windows Azure and how to build hybrid applications that work in multiple environments. One of important aspects is file storage that may have multiple implementations for different technical environments. In this posting I will introduce you my idea about generalized file access in web applications.
9 12 2013
When building application that works both on WinRT and Window Phone you use Portable Class Libraries (PCL) for shared classes. As there are many application specific things that are not same on different platforms or that are not supported by PCL then you have to make some architectural decisions when creating shared functionalities. In this posting I will focus on persisting data for offline use.
5 12 2013
Composite pattern is used in many applications. It helps to build hierarchies of similar objects and handle slices of hierarchy as one. Maybe one of the most popular implementation of this pattern in .NET world is Nodes collection of ASP.NET TreeView control. In this posting I will introduce you composite pattern and provide some implementation tips and samples about it.
28 11 2013
Patterns of Enterprise Applications Architecture by Martin Fowler defines Transaction Script pattern that is one of domain logic patterns. In his book Martin Fowler also gives a hint how to use Command Pattern by Gang of Four with Transaction Script. In this posting I will show you some real-life code that makes use of both patterns.
31 10 2013
Command pattern is object behavioral design pattern that helps you handle different activities in application using same interface. I’m Command pattern is object behavioral design pattern that helps you handle different activities in application using same interface. I’m using Command Pattern in some of my systems to handle similar actions together and to split more comples operations to smaller steps by example. In this posting I will give you overview of Command Pattern.
24 10 2013
Transaction Script (TS) is the simplest domain logic pattern we can find. It needs less work to implement than other domain logic patterns and therefore it’s perfect fit for smaller applications that doesn’t need big architecture behind them. This posting focuses on TS pattern by illustrating and analysing it. Also some good hints for implementation are provided.
21 10 2013
Enterprise applications need good architecture to survive ever-changing demands of customers. At same time these systems must be stable, convenient and easy to use which leads us to need of good architecting skills. Some customers need desktop applications while others need web-based and mobile applications. Making good architectural decisions is not easy and this is […]
14 10 2013
Design Patterns is golden classics of software design books written by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides (aka Gang of Four – GoF). When this book was published first it was revolutionary because it contained still undocumented knowledge from software development field that needed some systematic work and organization on it. Today we see these patterns in many programs and developers on different platforms are more and more aware of these first defined design patterns. If you are software developer then this is must-have book for you.
23 08 2012
I’m building web application for customer and there is requirement that users must be able to import data in different formats. Today we will support XLSX and ODF as import formats and some other formats are waiting. I wanted to be able to add new importers on the fly so I don’t have to deploy web application again when I add new importer or change some existing one. In this posting I will show you how to build generic importers support to your web application.
31 07 2012
It is often good idea to isolate our domain model from consuming applications by using service layer and data transfer objects (DTO) or application specific models. Using DTO-s means that we need two-way mapping between domain classes and DTO-s. In this posting I will show you how to use AutoMapper to build generic base class for your mappers.
11 11 2011
.NET Framework 4.0 introduced new class called Lazy and I wrote blog post about it: .Net Framework 4.0: Using System.Lazy. One thing is annoying for me – we have to keep lazy loaded value and its value loader as separate things. In this posting I will introduce you my Lazy wrapper for complex to get system parameters that uses template method to keep lazy value loader in parameter class.
14 09 2010
In my last post Find out how long your method runs I introduced how to measure the speed of code using actions. In this posting I will make a step further and give you some ideas about how to create easily measurable code units and how to build measurable scenarios of them. As a foundation I use simplified versions of patterns like Command and Unit of Work.
14 09 2010
During my large database experiment I wrote simple solution for paged queries that I can use in my repositories. This far my experiments have shown pretty good results and I think it is time to share some of my code with you. In this posting I will show you how to create paged results using NHibernate and Entity Framework based repositories.