简短问题:如何管理出现在多个类别下的产品类别?完全这样做是不好的做法?
背景信息: 我们有一个产品数据库,其类别如下:
Products
-Arts and Crafts Supplies
-Glue
-Paper Clips
-Construction Paper
-Office Supplies
-Glue
-Paper Clips
Run Code Online (Sandbox Code Playgroud)
请注意,胶水和纸夹分配给两个类别.虽然它们出现在此类别树中的两个不同位置,但它们在数据库中具有相同的类别ID.为什么?两个原因:
这允许我们管理单个类别及其属性和分配的产品,但将其放置在类别树中的多个位置.
我们使用的是嵌套集模型,因此我们用来支持它的db结构是:
Category
----------
CategoryID
CategoryName
CategoryTree
------------
CategoryTreeID
CategoryID
Lft
Rgt
Run Code Online (Sandbox Code Playgroud)
因此,Category和CategoryTree之间存在1:M,因为类别树中可能存在给定类别的多个实例.
有没有更简单的方法来模拟这个允许产品类别显示在多个类别下?
有没有办法引用没有强名称的库?当我在引用中添加对程序集的引用并重建解决方案时,一切都很好,但是当我从这个程序集解决方案调用该类时,它不会构建.
输出表示引用的程序集应具有强名称.什么是最好的解决方案?强命名库不是首选.
我正在创建一个应用程序,需要由内部网络上托管的Web前端访问,并且还作为计划任务运行.在我们的内部系统之外不需要访问任何内容,一旦应用程序启动并运行,我们就不会想到任何改变一段时间了.
我最初的想法是创建一个封装大量必要功能的DLL,然后通过Web Forms接口进行手动执行,以及作为自动(每日)计划任务运行的控制台应用程序.
另一个建议是为核心功能公开Web服务,但由于应用程序永远不需要被外部资源调用,我认为实现Web服务所需的额外工作可能不值得麻烦.DLL解决方案也应该快得多(?).
我的问题是你会选择哪条路线?我有没有涉及的优点/缺点?有任何明显的遗漏吗?
免责声明:我是.Net的新手,但由于我们的一位开发人员遇到了严重的事故,我被要求站出来.
什么是第一个?在概述和批准设计之后,设计人员是否应该使用HTML创建页面,然后将其交给开发人员添加代码?或者开发人员应该构建可以工作的简单页面并将其交给设计人员吗?
我总是做完后者,但最近与一位设计师合作,他用HTML构建了一个完整的网站,然后交给我使其工作.我发现它节省了大量时间有三个原因:
简而言之,如果设计师首先完成他的工作,那么很少有返工.我只是做了看起来很棒的实际工作.
哪个是最佳做法?看其他加分和减价?
编辑:假设设计师和开发人员已就拟议的设计达成一致.
假设我有div,我想获取数据并将数据推入该div.当用户在div中滚动时,将获取下一组数据并将其推送到div中.如何使用jQuery检测滚动条位置?我不想使用任何插件.我需要jQuery代码.这是一个示例链接,如ahttp://www.stevefenton.co.uk/cmsfiles/assets/File/infinitescroller.html但它使用了一个插件.
.Net是一个庞大的框架,其中一些功能似乎针对初学者,如果涉及大量定制则会成为问题.那么.Net框架中的哪些功能你认为专业开发人员应该避免以及为什么?
例如,.Net有一个用于常见用户管理功能的向导.使用此功能是否适合专业用途或仅适合初学者?
每个答案都有一个组件/功能/类等,所以投票是针对单个项目的.
我正在提供要求用户在下载前注册的文档.目前,一旦注册并登录,文档的链接显示为:
myurl.com/docs/mypdf.pdf
Run Code Online (Sandbox Code Playgroud)
因此,文档的物理路径会向登录的任何人公开.保持文档的物理路径隐藏的最佳做法是什么,以便注册用户无法与未注册用户共享直接链接或在其他地方发布直接链接到文档?
编辑:我只是在寻找与语言无关的想法,所以我选择了一些我最喜欢的语言作为标签.这种情况下的实际实现是ASP经典.我目前正在使用下载包装器脚本,该脚本确认用户在重定向到实际文档URL之前已登录.为简单起见,我只是没有把它包含在我的问题中.
正如您在下面看到的,在构造函数中我实例化了一个验证对象,因此我可以在set方法中验证用户的电子邮件.这种架构是最佳实践还是有缺陷的?我可以避免让我的User类直接依赖于我的Validation类吗?
Class User {
Private Email
//constructor
User() {
Validation = new Validation
}
SetEmail(NewValue) {
if (Validation.isEmail(NewValue)) {
Email = NewValue
}
}
Run Code Online (Sandbox Code Playgroud)
还有一个相关的问题:当set方法收到无效值时,什么是正确的响应?我看到2个选项
我怀疑#1是最佳实践,因为您可以确保任何对象属性的值始终有效.正确?
我在.NET framework 4.5(VS 2012)中有一个WPF项目,并使用NuGet包下载了Entity Framework 5.解决方案.所有关于Entity Framework 5的文档都说默认代码生成策略是None(即DbContext代码生成).但就我而言,在添加新的ADO.Net实体数据模型时,代码生成策略是默认的(即EF设计器生成派生自ObjectContext的上下文类和从EntityObject派生的实体类.)但我想遵循DbConext代码生成机制.我正在遵循Database First方法.我错过了任何设置吗?还是我需要单独安装T4模板?
谢谢.
c# ×4
.net ×3
.net-4.5 ×1
architecture ×1
asp-classic ×1
categories ×1
coding-style ×1
coupling ×1
database ×1
dbcontext ×1
designer ×1
jquery ×1
mysql ×1
nested-sets ×1
oop ×1
php ×1
vb.net ×1
web-services ×1