我来自一个有利于构建自己的世界而不是依赖其他人构建的库和框架.在逃离这个世界之后,我发现在Visual Studio中使用Typed DataSet等工具的快乐和轻松.除了失去灵活性,你还会失去什么?是否有性能因素(无视procs与动态sql争论)?限制?
我目前正在使用......
select Table_Name, Column_name, data_type, is_Nullable
from information_Schema.Columns
Run Code Online (Sandbox Code Playgroud)
...为了生成DataAccess Layer,确定给定数据库中列的信息.
从哪里可以检索有关这些列是否是其表的主键中的参与者的信息?
我正在尝试使用.NET System.DirectoryServices.AccountManagement库来获取特定Active Directory用户的UserPrincipal.
我有以下代码:
PrincipalContext context = new PrincipalContext(ContextType.Domain, "DomainName");
userPrincipal = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, username);
Run Code Online (Sandbox Code Playgroud)
此代码作为有效的域用户运行,但是当我执行它时,我得到以下异常:
System.DirectoryServices.DirectoryServicesCOMException(0x8007052E):登录失败:未知的用户名或密码错误.
有趣的是,我可以使用相同的上下文进行以下调用,没有问题:
context.ValidateCredentials(username, password, ContextOptions.Negotiate)
Run Code Online (Sandbox Code Playgroud)
想法?
从javascript到ASP.Net Web控件有许多不同风格的HTML WYSIWYG编辑器,但这些功能通常都是相同的.有没有人喜欢在项目中使用他们喜欢的HTML编辑器?为什么?
我记得读过那个将低级调用抽象为数据无关框架(例如,ExecuteCommand方法等),而另一个通常包含业务特定方法(例如,UpdateCustomer).
它是否正确?哪个是哪个?
我最初按照此代码项目文章中概述的s#体系结构示例设计了我的系统(不幸的是,我没有使用NHibernate).基本思想是,对于需要与持久层进行通信的每个域对象,您将在不同的库中具有相应的数据访问对象.每个数据访问对象都实现一个接口,当域对象需要访问数据访问方法时,它始终对接口进行编码,而不是对DAO本身进行编码.
当时,我仍然认为这种设计非常灵活.但是,随着我的域模型中对象数量的增加,我发现自己在质疑这里是否存在组织问题.例如,域中的几乎每个对象都以相应的数据访问对象和数据访问对象接口结束.不仅如此,但如果我想做一些简单的事情,比如转移一些命名空间,那么这些中的每一个都处于一个更难以维护的地方.
有趣的是,许多这些DAO(及其相应的接口)都是非常简单的生物 - 最常见的只有一个GetById()方法.我最终得到了一大堆对象,比如
public interface ICustomerDao {
Customer GetById(int id);
}
public interface IProductDao {
Product GetById(int id);
}
public interface IAutomaticWeaselDao {
AutomaticWeasel GetById(int id);
}
Run Code Online (Sandbox Code Playgroud)
他们的实现者通常也非常琐碎.这让我想知道走向不同的方向是不是更简单,也许通过为简单的数据访问任务设置单个对象来切换我的策略,并为那些需要更多东西的人保留专用数据访问对象的创建复杂.
public interface SimpleObjectRepository {
Customer GetCustomerById(int id);
Product GetProductById(int id);
AutomaticWeasel GetAutomaticWeaselById(int id);
Transaction GetTransactioinById(int id);
}
public interface TransactionDao {
Transaction[] GetAllCurrentlyOngoingTransactionsInitiatedByASweatyGuyNamedCarl();
}
Run Code Online (Sandbox Code Playgroud)
有没有人有这样的架构的经验?总的来说,我对设置非常满意,因为现在我唯一担心的是管理所有这些小文件.我仍然想知道存在什么其他方法来构建数据访问层.
MS CRM Dynamics 4.0包含MS WF引擎.内置设计器允许创建顺序工作流,其中活动可以本机访问CRM实体.
是否有可能:
我关心的一件事是我发现了两种向事件注册委托的方法.
第一个是干净的,做"OnStuff - = this.Handle"是有道理的.从事件中取消注册......但是对于后一种情况,我应该做"OnStuff - = new StuffEventHandler(this.Handle);"?感觉就像我没有删除任何东西,因为我正在抛出另一个StuffEventHandler引用.事件是否通过引用比较委托?我担心我可以在这里开始讨厌的内存池.抓住我?我没有引用我之前注册的"new StuffEventHandler".
做#1的缺点是什么?
做#2有什么好处?
在设计业务对象时,我尝试了几种不同的编写数据访问层的方法.有些人比其他人做得更好,但我一直觉得必须有一个"更好"的方式.
我真的只想看看人们在不同情况下处理DAL的不同方式以及他们对技术如何工作或不能正常工作的看法.
我正在尝试从keyup上的所有文本框中删除逗号.我想出了下面的脚本,但它没有用.谁能看到我做错了什么?
<script>
$("input[type='text']").keyup
(
function ()
{
alert('1');
$(this).val($(this).val().replace(/[,]/g, ""));
}
);
</script>
Run Code Online (Sandbox Code Playgroud)
注意:请原谅$ in Script.所以不会让我发布它,否则......
我一直在学习CSS一段时间了,但是下面简化的布局仍然有点超出我的意思,所以我想知道是否有人知道这种布局的模型,或者会有一个解释来使这个工作.
页面应该有3个波段或块:
标题,底部和内容.
'标题'将从可见屏幕中的左0,前0开始,一直到右边缘,高度为70像素.
"底部"波段将从左侧0开始,但在可见屏幕的底部,也是70px的高度(例如,从可见屏幕的底部开始减去70px).它会一直延伸到可见屏幕的右边缘.
'content'频段从左0开始,top将从'header'频段的底部开始,内容块的底部将向下延伸到'bottom'频段的顶部.
如果"标题"和"底部"区域固定在它们的位置也会很好,但如果块中有更多内容,则"内容"块可以滚动.
我认为这是可行的,但我目前只能达到目前的水平,所以我想看看专家会怎么做.
非常感谢Mike Thomas
.net ×5
c# ×3
ado.net ×1
architecture ×1
asp.net ×1
crm ×1
css ×1
dataset ×1
delegates ×1
dynamics-crm ×1
editor ×1
events ×1
html ×1
javascript ×1
jquery ×1
ldap ×1
primary-key ×1
sql-server ×1
workflow ×1
wysiwyg ×1