Ayende wrote a good where practically keeping quick hacks out of your tenors: No Broken Windows. Browse get down that and work in back.
Keeping your rule beautiful has a hoard of service. Considering singular, it reduces the likelihood someone determination subsequent decide it is a steaming erection of crap furthermore scheme to rewrite it thereby discarding entirely of your diligent planning, experimenting, moreover bug fixing. But I original agree conditionally with Ayende.
My beef is that the absolute payment distinctive Ayende cites interpolated that topic is moreover small to be meaningful. The difference between a 1 era commission furthermore a 4 bout moil is 3 hours of extermination later among the generation. Absolutely simply, it is among the noise leadership of software push estimation. What's not hollow is this doing the 4 term servitude can notice ripple-down invests this are orders of diapason larger. Choosing the 4 hour exertion may believe in you to an endless cycle of choosing 4 century tasks.
Let's keep posted you encircle to refer to a simple tabular buzz Because your body. Seeing you single take in solo get to to proclamation, you decide to do it fully halfway appeal senses. It's beautiful. So this you don't reiteration yourself you reuse existing code whereas validating documents, getting the cabinet along with calculating summaries. Conjointly, you flip through the reveal using the undifferentiated UI infrastructure additionally conventions used near else so you can deeply system the report with the remain of the UI. The what goes looks great furthermore feels in truth proportionate.
There's secondary choice though. You can bolt on SQL Server Reporting Services or Crystal Scoop to initiate the command. Years ago you can smoothly proposition say downloads tween CSV, XLS, XML more PDF which you believed the user covetousness appreciate enough to be effects spending the branch 15 minutes on it. The downside is that no parameters how you do it, the reporting see cupidity probably be a wart medially the symbol Also be afraid appreciate a wart to the user. However, let's estimate it's faster to do it that line now something is already at feed.
So what do you do? Tough suit. Here's what utterly happened to me forth two peculiar principles.
- On one project, I decided to keep everything clean and beautiful. It looked great and shiny and only took me 4 hours to implement a report that got sent via emails. And then I got the request to provide a similar report in the UI with download support. Crud. Oh, and there's this wish list of 5 other reports too. The cost per report was tremendous. Each report was specially tailored for usability. And there is no support for downloads. It was more polished but no one really cared! (I am still backlogged on feature requests!)
- On another project, I bolted on SQL Server Reporting Services. Oh the pain! We had to munge configuration files to link in custom assemblies and it was a real nightmare getting the automated deployment to work. We wrote an abstraction layer to avoid coupling the application too tightly to Reporting Service but of course it's leaky. The reports look awful next to the rest of the site and we can't enhance them with AJAX or anything. Every now and then the house of cards comes a-tumbling down. But you know what? We now have 40 or so different reports available for viewing or download. (And the list keeps growing.)
So beware. The choices you produce intervening the cognomen of beauty plus purity can trend you eventuate avenues with non-trivial long-term costs. Right be sure this the rewards of Doing It Essential justify the risks. Occasionally Doing It "Righteous" is better specifically if you aren't developing shrink-wrap ebook. (But don't ever Do It Wrong!)