我有一个专门报告PBX扩展统计信息的ASP.NET网站。它包含许多报告页面,HTML几乎完全由代码隐藏生成(设置Label控件的Text属性而不是使用Response.Write),使用通过引用DataTable参数填充的非参数化字符串文字SQL查询。
维护页面至少包含DataGrids和详细信息表单,但使用相同的DAL,可以说它支持多个数据库服务器,子类每个都使用自己的字符串文字查询覆盖这些访问方法
我需要考虑清理这个烂摊子?我已经明确决定使用第三方报告解决方案,并将查询移动到各自数据库语言中的存储过程,缩小不同DAL类的多样性,并将CSS分离到共享文件,如批量它非常隐藏在C#文件中!
答案 0 :(得分:1)
对于你的后端设计,我建议有一个类来表示数据库的每个主表(例如,一个Report类和一个User类)。任何不是事件处理程序的东西都应该放在后端类文件/命名空间中。
对于您的GUI,看起来您使用的是ASP.NET控件,而不是仅仅将数据流式传输给用户。但是,您可以考虑对页面区域进行客观化。例如,我最喜欢的一个技巧是在需要用户输入时打开半透明的“弹出”面板,或者在显示短消息时打开信息栏等。
考虑AJAX和AJAX Control Toolkit。它易于实现(特别是在重写的情况下),并提供了极大的灵活性。具体来说,我发现手风琴 - 有时甚至嵌套在其他手风琴中 - 非常适合组织过多的信息。
编辑:
请注意,如果你使用AJAX,你基本上甚至不能再考虑使用response.write了。
至于屏幕上有太多内容,请记住Panels有一个“Scrollbar”属性,DIV不会有一些重大变化。
另外,我倾向于使用Namespace分隔我的代码文件;但流行的趋势是由Class来做。如果您有许多开发人员,或者如果某个命名空间中的几个类可能被不同的人签出或同时修改,那么这是一个更好的选择。
答案 1 :(得分:0)
我会考虑放弃任何自定义写入DAL并使用以下之一:
你甚至可能会完全放弃sprocs。
如果您大胆,可以尝试使用Microsoft's MVC实施进行重新设计。
无论采用何种方法,请确保在重构任何代码之前编写单元测试,验证测试在重构之前和之后是否通过。