我正处于规划将大型经典ASP数据库应用程序转换为ASP.Net的早期阶段,我无法选择使用哪种数据访问方法.我使用过Linq To SQL,动态数据,强类型数据集,企业库(数据访问应用程序块)以及一小部分实体框架,但它们都没有作为"一个"跳出来.有太多的选择 - 我的头在游泳,帮我选择!
也许有助于给出我正在转换的应用程序以及优先级的一些背景知识......
后端是Microsoft SQL Server(2005或更高版本),我们致力于此,所以我不必担心支持不同的数据库平台.
数据库非常成熟,包含大量的业务逻辑.它高度标准化,并广泛使用存储过程,触发器和视图.我宁愿不同时重新发明两个轮子,所以我想尽可能少地对数据库进行更改.因此,我需要选择一种足够灵活的数据访问方法,让我可以解决数据库中的任何问题.
该应用程序具有许多数据输入表单和广泛的搜索和报告功能(报告是我将在稍后讨论的另一种野兽).
应用程序需要足够灵活,以处理对数据库结构的微小更改.应用程序(和数据库)可以安装在不同的站点,对数据库进行微小的自定义修改.理想情况下,应用程序可以识别数据库扩展并做出适当反应 换句话说,如果我需要在应用程序中存储O/R映射,我需要能够在新站点上安装应用程序和数据库时将其交换(或轻松刷新).
快速应用开发至关重要.由于数据库已经完成并且用户界面将与现有应用程序紧密匹配,我希望找到一些我们可以相当快地解决这个问题的方法.我愿意牺牲不使用绝对最新和最好的技术,如果它将节省开发时间.换句话说,如果使用像Entity Framework这样的东西有一个陡峭的学习曲线,我可以使用强类型数据集和自定义DAL,如果它会加快这个过程.
我是ASP.Net的新手,但我非常熟悉Classic ASP,T-SQL和旧的ADO(例如断开连接的记录集).如果任何数据访问方法更适合来自我背景的人,我可能会倾向于这个方向.
感谢您提供的任何建议!
asp.net entity-framework data-access-layer dynamic-data linq-to-sql
我正在为Microsoft Word开发一个VB6 COM加载项,我在功能区中添加了一个按钮,将文档保存到数据库中.但是在保存文档之前,我想将用户带到文档属性窗口,以便他们可以填写文档的属性(如标题,主题和作者).我使用以下语句来调出窗口:
Application.Dialogs(750).Display
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作,但默认情况下会显示常规选项卡." 标题"," 主题"和" 作者 "的字段位于"摘要"选项卡上.有没有办法打开这个对话框并强制它到摘要选项卡?我考虑过发送击键,但是标签没有与之关联的热键.
我需要它在Word 2007和Word 2010中工作.上面的行在Word 2003中已经正常工作,因为2003没有多标签属性窗口.
我对ASP.NET世界很陌生,所以我遇到了在运行时配置连接字符串并让整个应用程序使用该连接字符串的最佳方法.以下是我计划构建的应用程序的更多信息:
人们通常这样做的"标准"方式是什么?我假设一种方法是使用连接字符串创建一个Session变量,然后在页面加载期间以编程方式更改每个SQLDataSource控件的ConnectionString属性.但我希望尽可能避免这种情况.
由于很多人问我为什么要为每个用户使用一个独特的连接,并担心缺乏汇集,我想我会在这里评论,而不是评论每个单独的响应.
此应用程序的性质要求每个用户都使用自己的帐户连接到数据库.后端安全性与其用户帐户相关联,因此我们无法使用"用户"和"管理员"等通用帐户.我们还需要知道每个用户的特定身份以进行审计控制.该应用程序通常只有10到20个用户,因此缺乏池化不是问题.我们可以再次讨论这种方法的优点,但不幸的是我在这里没有选项 - 项目要求每个用户在他们自己的帐户下连接到数据库.
我很乐意要求Windows身份验证,但不幸的是,此应用程序的某些实现将需要SQL身份验证.
如果我可以在声明像这样的SQLDataSource控件时设置连接字符串,那么它将是一个快照:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString = "<%= Session("MyConnectionString") %>"
SelectCommand="SELECT * FROM [Customers]">
</asp:SqlDataSource>
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误,因为它不喜欢那里的<%%>标签.如果在声明控件时我不能这样做,那么对于应用程序中的每个SQLDataSource控件,以编程方式执行此操作的最简单方法是什么?
非常感谢大家的帮助!