rpk2006 — 2012-06-22T13:34:56-04:00 — #1
This question is from a Best Practices perspective.
I am using Micro-ORM to separate DAL with Views. I am often confused on my application design approach. While the Micro-ORM takes care of the separation of layers, I also want separation of business logic.
It is suggested to use Classes in this regard, but use of Classes is puzzling in itself.
For example, I have a Web Form with a Button. On click of this button, I want to call a method called as: AddCompany.
I want to know where should I keep this AddCompany method. If it is residing in the .cs file of the Web Form, the business logic is again tightly coupled.
And if I move this method to a Class, I need to pass all the Web Form input box values as parameters to this class.
What is the best way to do this?
webcosmo — 2012-06-25T15:12:56-04:00 — #2
people usually keep the common functions in a business logic layer.
for example have a function on business logic layer that takes parameters, calls the database stored procedure to complete the job.
the button click is usually kept on the code behind file(cs in your case). the click function will simply call the business logic layer function to complete the job.
the idea here is reuse.
rpk2006 — 2012-06-26T02:01:11-04:00 — #3
If a Web Form contains many input controls then that many parameters need to be passed to the constructor of business layer class.
wwb_99 — 2012-06-26T07:46:05-04:00 — #4
You don't need to pass the input controls -- you need to pass the input.
In most cases, we have business layer service classes which take dependencies in the constructor -- such as a database connection or a reference to a repository. Then they have methods that take classes as parameters. Typically these classes are pretty dumb data transfer objects, but they definitely don't reference the controls.
For ASP.NET webforms, in most cases you'll have to write some code to map the data coming into the form into the class.
rpk2006 — 2012-06-28T04:32:51-04:00 — #5
Can you provide little code?
wwb_99 — 2012-06-28T08:29:50-04:00 — #6
Seriously? You do know how to do variable assignment, right?