Hi everyone.
I've got a program at the moment that I'm writing that generates different types of reports. The processs that generates the data requires a large amount of analysis and takes a decent amount of overhead. What I'm planning on doing is completely separating out the data generation classes into a seperate tier, having each one implement a ICustomReport interface I wrote, and having the interface (whether it be web, GUI, whatever) instantiate a ReportGenerator class, fire a GenerateReport(ReportType) function asynchronously, and get back an object created from that interface. This should make it easy to add new reports later without having to change the user interface much, if at all.
However, in the user interface, I have to give the user parameters to select in order to generate the report. These parameters include customer part numbers that have to be pulled from a database.
My question is, is it a mortal sin design wise to add the code for pulling the customer part numbers from the database into the Interface tier? If so, does anyone have any pointers on how to handle it correctly?
Also, if anyone has recommendations for sites or books that do a good job of covering N-Tier development, I'd appreciate that also.
Please only answer if you have a decent amount of experience with this type of design.
Thanks in advance.
--NipsMG
I've got a program at the moment that I'm writing that generates different types of reports. The processs that generates the data requires a large amount of analysis and takes a decent amount of overhead. What I'm planning on doing is completely separating out the data generation classes into a seperate tier, having each one implement a ICustomReport interface I wrote, and having the interface (whether it be web, GUI, whatever) instantiate a ReportGenerator class, fire a GenerateReport(ReportType) function asynchronously, and get back an object created from that interface. This should make it easy to add new reports later without having to change the user interface much, if at all.
However, in the user interface, I have to give the user parameters to select in order to generate the report. These parameters include customer part numbers that have to be pulled from a database.
My question is, is it a mortal sin design wise to add the code for pulling the customer part numbers from the database into the Interface tier? If so, does anyone have any pointers on how to handle it correctly?
Also, if anyone has recommendations for sites or books that do a good job of covering N-Tier development, I'd appreciate that also.
Please only answer if you have a decent amount of experience with this type of design.
Thanks in advance.
--NipsMG