我所在的公司在没有现成的替代品的情况下编写自己的业务数据应用程序。最常见的是 - 登录屏幕 - 一些主要是SQL Server表可视化的屏幕 - 一些报道
过去他们使用过MS Access。这些并不是最精英的编码员,但他们主要是如何构建数据库以及他们想要的UI。
我们宁愿拥有一个通用的登录界面,菜单屏幕等,我们可以插入应用程序并开始使用。这应该有助于开发速度和可维护性。
当然,有多种方法可以做到这一点,而我们问题的核心似乎是数据访问。选项似乎包括:
1)GUI数据集/表适配器(如ASP.NET上的视频)向您展示了如何操作。我们中的一些人已经做了很多这样的事情。适合开发速度。有时数据连接会在您不注意的情况下发生变化巨大的方法签名(插入或更新时每个字段一个参数)容易出错。有时参数检测不正确。动态参数(例如,带有可选过滤器的报告)非常困难。
2)极为结构化的n层风格。例如,网格的数据源是对象的集合。表示层调用对象A中的静态方法,该方法调用数据访问层方法,该方法为从数据库返回的每一行实例化A.需要为表中的每个字段设置get / set方法和内部变量以及构造函数变量。每个字段都会输入很多次。什么都没有任何限制。这个简单的应用可能有点过分了。
3)通用表驱动所有循环遍历字段列表的泛型函数,以动态创建UPDATE和INSERT语句。选择主要是SELECT *类型的东西。快速发展但缺乏强大的打字让我感到害怕。似乎SQL注入地雷无处不在,但我确信将引号加倍是避免这种情况所需要的。
那里必须有更多的选择,但我不知道它们是什么。你对我/我们有什么建议吗?
答案 0 :(得分:5)
你有没有看过Dynamic Data?一个漂亮,干净的DB CRUD解决方案非常棒,几乎没有时间投入(如果数据库结构正确)。
您可以添加登录屏幕或仅使用Windows集成身份验证来保持一致性。
此外,学习曲线几乎没有。我在观看介绍视频的20分钟内完成了我的第一个网站,即使是最基本的初级程序员也能做到这一点。
答案 1 :(得分:3)
你见过ASP.NET Dynamic Data吗?
答案 2 :(得分:2)
听起来像你正在寻找某种脚手架工具。那里有很多。 SubSonic肯定有一个。
答案 3 :(得分:1)
1& 2)查看ASP.NET MVC
3)查看LINQ to SQL
答案 4 :(得分:0)
表适配器很古老。并不是说它们仍然没有用,但我不会在没有充分理由的情况下亲自使用它。 Linq to SQL正是为了这种快速发展而制造的。比数据集更快地设置,也更容易查询和更新。
还有实体框架和NHibernate,但它们更多地针对更大的以域为中心的应用程序,而不是快速和脏的数据访问/更新。
答案 5 :(得分:0)
在这种情况下,您的问题似乎完全解决了数据访问问题,并且您在.NET空间中提到了相当陈旧的方法。
您是否看过LINQ-to-SQL或LINQ-to-Entities?这两种技术都解决了大部分(如果不是全部)问题,如果您不使用基于SQL Server的后端,则后者是两者的唯一解决方案。