views:

96

answers:

4

Hello. I try to build an application's architecture these days and I will be glad to hear some advises. Here are some details about the application itself. It has a web UI where customers could register and pay (with credit card) for some sort of services. They have to provide some info because these services are based on it. For example dates to schedule the service work. Of course they always can check the status of their order via the site.

Also I have a database (classic relational database or NO-SQL database I am not sure what is better in my case) that located on other physical machine. So I have to take customers' info and store it into the db in order to make some work based on it. Besides there is a windows service or it's Linux analogue that makes the main job. It should create processes based on the information in database to do the job. In other word the services I mentioned in the beginning provided not by business logic of the web site but of the windows service. Of course during its work this service stores an information back to my database or update it in some way.

Recently I have read the book about applications architecture from Microsoft and they introduce there many approaches to build an application. For example DDD or Client / Server or Components based architecture an so on. I am really confuses what it the most suitable in my case. Could someone please advise me something. Thanks in advance.

+2  A: 

Take 10 steps back and learn programming. Seriously.

Recently I have read the book about applications architecture from Microsoft and they introduce there many approaches to build an application. For example DDD or Client / Server or Components based architecture an so on

This is part of your problem. MS did none of that. These concepts where around 20 years ago. They were around 10 years ago. The Book from MS basically just presents them to you. You tink a book makes you someone understanding them?

Things are a little more complicated.

Take your question, replace "application" with "car" etc. and you may realize how really funny the question is. "Need advice about car architecture" etc. - you seem to have a VERY shallow understanding of even what you are talking about.

Also I have a database (classic relational database or NO-SQL database I am not sure what is better in my case)

You know what a relational database is about? Ever heard of ACID conditions? If not - learn them.

I suggest you get profesional help. Why? Because otherwise the moment your credit card data gets stolen (and no, you wont even know how to write secure code with the understanding of SQL you showed) you are in legal pain hell. Everyone will sue you - customers, credit card companies (you know how to treat credit card data, right - I mean, legally).

TomTom
@Alex: while this advice may sound harsh, when you're working with financial data, you need to have a solid footing. I suggest that you find a more experienced developer as your mentor.
Michael Petrotta
@TomTom: Thanks a lot for your kind answer. I appreciate it but besides telling me how foolish I am and that I don't even understand what I am talking about maybe you could say something more informative. As you can see other people have provided me some links and advises and not just told me that I need a more experienced developer to review my work.
Alex_M
A: 

Absolute resource for App Architecture:

Microsoft Patterns & Practices Application Architecture Guide 2.0.

I've learnt alot from it, and still learning!

KMan
Sadly many people with a lot of architecture experience find MS architecture offerings quite entertaining. not to say totally ignorant to modern approaches. 2.0 is better, but mostly working around the lack of enterprise technologies from MS.
TomTom
You mean, similar to *many people with lot of architecture experience find MS architecture offerings quite* interesting? (0: Have you ever been to Enterprise Architecture website? I love it. Checkout, a sweet article http://msdn.microsoft.com/en-us/architecture/aa699438.aspx
KMan
@TomTom: @KMan : codeplex architectural guide does indeed add significantly to software architectural literature and is a good effort.
pyfunc
A: 

To get started, read a lot about application architecture.

There are quite some books available out there that you can buy.

My favorite book that weaves a lot of these together: Software Paradigms

The one that will help you get a lot about programming, design is "software paradigms". It has been one of my favorite books that covers a lot of ground on topics like patterns, components and architecture.

Architectural, patterns and practices from codeplex

There is also a architectural, patterns and practices that was started as part of codeplex and available now as part of msdn. This is available directly on net and you can start reading it.

Other resources on net:

Other helpful quick reads:

On SO itself:

pyfunc
A: 

i've recently read agile princeple,patterns and practice by robert martin. I think it's a good book to start understanding desing patterns and architecture principles

Stefano