Prototyping (or materialization) is a useful tool in developing new software applications. It helps identify and manage costs, key features and usage very early in the development life-cycle. Prototypes can be done in mock applications (not fully functional but contains some interactions) using various tools or even in traditional paper-and-pen. Perhaps not literally paper-and-pen but […]
Architectures
Some notes on the evolution of software architectures – past, present and future outlook. Often the way one does architecture design can be a combination of philosophy and the use of patterns, practices and principals. Any software architecture is an abstraction that should contain at least one or more of the following: Structure Layers Components […]
Kubernetes
Pronounced: kub-er-nate-es Kubernetes is an orchestrator for microservice apps using Docker containers. Kubernetes was created by Google, written by Go/Golang, and is one of the biggest open source infrastructure project. Google was running off containers far before Docker. To manage these, Google created in-house systems called Borg and Omega (proprietary), as the container management system. […]
.Net Core REST API
This is a reference document created for using .Net Core in RESTful services. Some common practices and concepts are discussed here along with a sample project below. The project is a basic web api with minimal services implemented. It was created to be used as a template for multiple RESTful service projects that were to […]
Reactive Programming using RxJS
Reactive Programming Paradigm Asynchronous programming Works with Functional Programming ReactiveX works with many languages JS .Net Java More information: http://reactivex.io/intro.html Mission Statement ReactiveX observable model allows you to treat streams of asynchronous events with the same sort simple, composable operations that you use for collections of data items like arrays. It frees you […]
.Net Core Dependency Injection
Dependency Injection (DI) is software design pattern that decouples (or loosely couples) components in an application. It is based on the Dependency Inversion Principle (DIP) which is part of a greater design principle of Inversion of Control (IOC). The components of an application, whether it be classes or modules, are instantiated at run-time – which […]
Material Design
Material Design is a concept created by Google and published around 2014. It extends the ‘flat design’ concept by creating layers (moving along the Z-axis). This includes methods of shadowing as well as various animations for components that users interact with. Each of the layers represent a ‘material’ that reacts differently to light (thereby giving […]
Unit Testing with Dependency Injection
Unit Test One of the most commonly skipped or minimally managed areas of application development is unit testing. It is often seen as overhead, even unnecessary, and given very little or no attention. On some projects where requirements are often changing rapidly, the developer can get frustrated trying to keep up with the changes and […]
Repository and Factory Pattern
These are my notes in regards to using the Repository and Factory design patterns in an ASP.NET MVC / Web-API application. Definitions Repository = A repository is used to separate the concerns between the domain logic and data layer of an application. It helps the domain layer to be decoupled from the data layer. […]
Advanced Topics in C#
Some person notes on Advanced Topics programming with C#. Inheritance vs Composition Inheritance and composition isnt specific to C# but to applies to any Object Oriented Programming language. The Inheritance model allows for “IS-A” relationships. For example, we can have a parent Fruit class and a child Apple class. The child Apple class “IS-A” […]