Tuesday, June 17, 2008

Forkwind: Application Design from Beginner to PRO with .NET and Mono

Introduction:
The purpose of this article is to demonstrate one of the good ways for application design with .NET and Mono. I will be using .NET and C# 3.0 through this but I will be also careful for mono support so your application will be running everywhere. We will develop an application called "Forkwind" which is an imaginary company:). We will do a lot of discussion on the mean while. Feel free to correct me at any point if you disagree with something. Additionally I am not claiming my methodology is the best. It's just something I am happy with it. Lastly this is not my own design. I gathered this information around web. I am inspired Mainly Billy's excellent article
http://www.codeproject.com/KB/architecture/NHibernateBestPractices.aspx.

But i will slightly diverge from his way and try to do a lot of in depth theoretic discussion. I am expecting this to be a very long series so I'll divde it into some sub parts and , I'll try to implement it every day if I can.

What we are going to do, is to design and code an application called Forkwind. Forkwind does not have to be a web application. The aim is making it so flexible that a console gui or a windows forms will also fit. Forkwind will be a simple crud application but feel free to extend it.

This is the master post for other sub articles so visit this post frequently and I will update and implement articles. Generally I'll first implement the practice then the second post will include the theoretical discussion. Oh yes and I will post real sample code. !!!

Here are the topics:

* Forkwind Part 1: Creating skeleton of the application layers as . net assemblies: (Updated on Jun 17, 2008)

* Forkwind: Part 2: Modularity, .NET Assembly and Namespaces: (Updated on Jun 17, 2008)

* Forkwind Part 3: Creating the domain model : (Updated on Jun 18, 2008)

* Forkwind Part 4: Domain Driven Design and Record Driven Design : (Updated on Jun 19, 2008)

* Forkwind Part 5: A first visit to unit testing: (Not Available at the moment)

* Forkwind Part 6: Why unit testing is so important : (Not Available at the moment)

* Forkwind Part 7: A first visit to persistence and database stuff in Forkwind: (Not Available at the moment)

* Forkwind Part 8: Repository pattern , DAOs and DAL: (Not Available at the moment)

* Forkwind Part 9: What are my persistence options in .net and which one I should use: ( Not Available at the moment)

* Forkwind Part 10: Log4Net putting logging into work: ( Not Available at the moment).

* Forkwind 11: Dependency Injection in Forkwind With Castle Windsor: (Not Available at the moment)

* Forkwind 12: Benefits of Dependency Injection, connecting decoupled pieces: ( Not Available at the moment)

* Forkwind 13: Fowler's Dependency Inversion and Assembly dependence ( Not Available at the moment)

* Forkwind 14: Alternatives to CastleWindsor: Spring .NET, Sturcture Map and unity : (Not Available at the moment)

* Forkwind 15: The need for Service Classes: (Not Available at the moment)

* Forkwind 16: Unit testing revisited ,mocking comes into the scene: (Not Available at the moment)

* Forkwind 17:The GUI: (Not Available at the moment)

* Forkwind 18: Model View Presenter:(Not Available at the moment)

* Forkwind 19: Model View Presenter Continued:(Not Available at the moment)

* Forkwind 20: Unit Testing the GUI:(Not Available at the moment):(Not Available at the moment)

* Forkwind 21: Databinding to ASP.NET:(Not Available at the moment)

* Forkwind 22: A Console and Windows GUI:(Not Available at the moment)

* Forkwind 23: NHibenate in Depth:(Not Available at the moment)

* Forkwind 24: Active Recording With Castle ActiveRecord:(Not Available at the moment)

* Forkwind 25: Active Recording With DB4O:(Not Available at the moment)

* Forkwind 26: AOP and limitations of C# :(Not Available at the moment)

* Forkwind 27: Compacting the application:(Not Available at the moment)

* Forkwind 26: Final Words:(Not Available at the moment)

No comments: