Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Series
.NET Core Web API
36
Angular
31
JavaScript Basics
19
JavaScript Intermediate
18
JavaScript Advanced
16
TypeScript Basics
14
TypeScript Intermediate
14
TypeScript Advanced
12
Entity Framework Core
28
Dapper
16
Git & GitHub
29
Web Security (OWASP Top 10)
21
LLM Fundamentals
20
C# Fundamentals
20
Object-Oriented Programming in C#
16
C# Collections and Generics
11
LINQ
17
Asynchronous Programming in C#
17
Advanced C#
14
C# Versions
6
Solution Patterns
22
SOLID and Design Principles
12
Clean Code
13
Design Patterns
23
UML and Modeling
18
Introduction to Software Architecture
9
Clean, Onion and Hexagonal Architecture
8
Vertical Slice Architecture
6
Domain-Driven Design
12
CQRS and Event Sourcing
10
Messaging and Event-Driven Architecture
9
Modular Monolith
2
Microservices
10
UI Architecture Patterns
9
Architecture Decisions
7
System Design
15
Distributed Systems Fundamentals
11
Background Jobs and Scheduled Jobs
11
Working with Message Queues
14
Logging in .NET
10
Caching
10
Real-time Applications
9
ASP.NET Core MVC and Razor Pages
13
2 posts found
#content-projection
Software Architecture
PART 08
Component Architecture: Container and Presentational Components, Composition and Contracts
A container component knows about data and side effects, while a presentational component only takes inputs and reports what happened through outputs; the split is not a strict rule but a thinking tool for testability and reuse. We split the Bookstore's product list into three components and show with real output how renaming an input causes NG8002/NG8008 errors, content projection, and how light a presentational test is.
8 Nov 2026
15 min
4
Frontend
PART 07
Component Communication in Angular: @Input, @Output, @ViewChild and ng-content
How components talk in Angular 12: data from parent to child with @Input, notifications back with @Output and EventEmitter, your own two-way binding, @ViewChild and content projection with ng-content.
31 Oct 2026
6 min
83