I have suffered from terrible architectures in C # applications for ten years - and now I found how to fix them.



I have been involved in the development of business applications in .NET for the second decade and every time I see the same problems - crap and clutter. A mess of services, UoW, DTOs, helper classes. In other places, direct access to the database by hand, logic in static classes, kilometer-long IoC configuration footcloths.



When I was a young and high-spirited middle, I wrote like that too. Then he hit the wall with his fist, shouting: "Enough! Next time I'll do it differently." The next time it really started "differently" - with a cool head and a strict approach to architecture - but the output still turned out to be the same substance, better by a couple of millimeters.



However, evolution is a merciless thing: my last system seemed to me more or less close to ideal. The complexity did not grow much, the development speed did not fall for quite a long time, new employees at the very least enter the system. I took these results as a basis, improved them and now I announce to you my new development: Reinforced.Tecture.



Where does the mess come from



, , . , , , , , โ€ฆ , , โ€” .



-, ?



โ€” IoC!



, : - โ€” . ? Connection ( ), - credentials, web.config ( ) , -UoW-. -.



, โ€” , . ! , , IoC- (-).



? , , IoC-: , -, .



โ€” unit-!



.



: unit- C#-, "UoW Repository"? (). , , . .



- . ( ), , .. " ? , ".



, - , 10 โ€” , , ! " ", , , , . . "", QA- ( , end-to-end), .



, 5 โ€” . . , QA Automation โ€” โ€” .



โ€” !



? - , , , O/RM 3000 . , - โ€” . โ€” . โ€” , (. โ€œobject-relational impedance mismatchโ€). O/RM , ( โ€” ). , . , SQL . .



โ€” . -, . , , , - , e-mail . - , .



โ€” !



โ€” , . , . ? . + , , Unit of Work. , . DTO ( ), , Unit of Work, .



- , 10 , 10 , . , , . .



, , IT , 50 -, โ€” . - , .



, โ€” ! , , . IT-, .



โ€” !



? , . , . , SOLID.



. UML, . , , , โ€” . , , โ€” . , โ€” . .



, ( 99% ) . , , , . - โ€” 50 . , ! . , , โ€” . : , .



โ€” ", " ", " . , , , , . โ€” , .



โ€” XXX โ€” !



, , โ€” . , โ€” . XXX โ€” . , .



" YYY"! , -. , YYY .



, โ€” , YYY, GGG GGG. " " , redux: "redux โ€” โ€ฆ !". - " YYY 5 " . .



, YYY , GGG. , , YYY , . ?



YYY . , YYY โ€” , production- . , , , .





, . . , , , . " " , :





2000 ( VB.NET-C# ), . , .



,



100500 , . . . maintainability, .



, . , . ( - ).





, , DTO-. โ€” . โ€” , , . , . , . " ", .



โ€” . ( ) , .





! โ€” -! . , Java-, . - C# โ€” , , , , !



, -, . . , . , , , , .





, , , , . ( ), . DI-. , . โ€” .



โ€” , โ€” . - ( ), - , . , - , .



, , โ€” . -โ€ฆ โ€ฆ .



. , , .





โ€” . . , unit- . , . . , โ€” .



- . , . CI- . โ€” ! . , . โ€” .



, , , โ€” . ?



, meaningful-, , . .



: ? , - , -, , - , โ€ฆ - , QA, , . , . , , , โ€” QA ", ", , , . - code coverage . โ€” . !



TDD โ€” . , . TDD .



...



, , . , . Tecture .



โ€” , .



UPD: , .




All Articles