是否有任何最佳实践涵盖应该定义ASP.NET MVC模型的位置?
一个新的ASP.NET MVC项目有一个很好的模型文件夹供他们使用,但在生产环境中,他们可以来自其他地方:
强类型视图是否可以使用在这样的位置定义的类?
我正在寻找关于如何将业务规则合并到asp.net mvc应用程序以及它们与模型的关系的一些指导.
首先是一个小背景,所以我们知道这个问题的解决方案是什么类型.在工作中,我们使用WinForms,MVP,BusinessObjects,DataAccessObjects和DataTransferObjects.层的边界使用DTO将参数发送到方法和返回类型,或返回List类型.
现在我们正在添加一个Facade层来将DTO转换为域对象以供UI使用,因为架构师不喜欢在PresentationLayer中使用DTO当前是如何工作的.除了实用与否之外,我在理论上对这一切感到很自在.
我正在建立一个有趣的网站,但考虑到它可以说它提供与SO相同的流量,就像我听到的每月60,000次点击.我对控制器和视图的机制以及模型如何与两者集成感到满意.
我使用NerdDinner作为构建站点的示例,我遵循示例中的Repository模式实现.我没有得到的是如何将业务对象合并到一起.
我听说人们谈论LINQ作为DataAccessLayer/DataAccessObjects.如果我通过业务对象强制我的所有请求,因为我已经习惯了,我已经介绍了一些奇怪的依赖项.我的UI和我的BO都必须知道我的DAO.
有意义的是将LINQ类用作真正的DAO层,将其隐藏在BO后面,并在POCO和LINQ对象之间进行BO转换.
我唯一担心的是将我的UI绑定到LINQ类,并不需要所有额外的工作,我很满意NerdDinner中的轻量级方法.
所以我本质上是在控制器中实例化的Repository,它接受并返回LINQ对象.我的业务对象有静态方法,只需要LINQ类并执行一些计算,比如应用某个州税%或w/e.
由于很多这些计算必须在存储库的结果中完成,我正在考虑将它们组合到一个中心区域,如外观层,但是它只是转换数据而不转换为其他对象集(DomainObjects) < - > DTOs).
我应该这样做,还是应该说这些业务方法确实是我的模型的一部分,并且它们应该在返回对象的存储库方法中?
我正在考虑以下数据库结构,但我不确定哪种类型的Rails模型关系会支持我定义的数据库密钥.任何人都可以建议这在Rails中如何运作?
Posts
id
post_type -- must be 'Q' or 'A'
author
date
content
UNIQUE KEY (post_id, post_type) -- to support foreign keys
Questions
id
post_id
post_type -- must be 'Q'
FOREIGN KEY (post_id, post_type) REFERENCES Posts(post_id, post_type)
Answers
id
post_id
post_type -- must be 'A'
question_id
FOREIGN KEY (post_id, post_type) REFERENCES Posts(post_id, post_type)
FOREIGN KEY (question_id) REFERENCES Questions(post_id)
Comments
id
post_id
author
date
content
FOREIGN KEY (post_id) REFERENCES Posts(post_id)
Run Code Online (Sandbox Code Playgroud)
上面的草图将转换为以下实现:
CREATE TABLE Posts (
post_id SERIAL PRIMARY KEY,
post_type CHAR(1), …Run Code Online (Sandbox Code Playgroud) 干的家伙,我是中级RoR程序员的新手.但是,我不太擅长设置关系数据库,所以我需要一只手.
基本上我的应用程序是一个读书俱乐部.用户注册,用户基于书籍创建书籍俱乐部.其他用户加入此俱乐部并进行讨论(如论坛).
我写了一个关于模式的英文描述.
用户有很多俱乐部
俱乐部有一本书,有很多用户,有很多线程
书中有很多俱乐部,属于俱乐部
线程有很多回复,属于俱乐部
回复属于一个主题
我需要一些关于迁移的帮助,以及模型.
任何帮助都会很棒.
谢谢!
我正在寻找帮助,以确定我正在建立的班级模型是否可以改进.我正在构建的类是一个带有一些属性的简单Product类.
class clsProducts
{
private string _name;
private double _productionRate;
//Constructor
public clsProducts()
{
_name = "null";
_productionRate = 0.0;
}
public clsProducts(string name, double productionRate)
{
_name = name;
_productionRate = productionRate;
}
//Properties
public string Name
{
get { return _name; }
}
public double ProductionRate
{
get { return _productionRate; }
}
}
Run Code Online (Sandbox Code Playgroud)
我想补充的是能够为每个产品提供每月预测值.我可以添加以下内容来执行此操作
private double _janValue;
private double _febValue;
Run Code Online (Sandbox Code Playgroud)
等等,但这看起来很混乱.我还考虑创建一个名为ForecastValues的嵌套类,例如
class clsProducts
{
...code here....
protected class ForecastValues
{
private string name;
private double forecastValue;
...other …Run Code Online (Sandbox Code Playgroud) 我有以下情况
class RecordA
has_many :recordbs
end
class RecordB
belongs_to :recorda
end
Run Code Online (Sandbox Code Playgroud)
RecordA有很多记录,但其中只有一个可能是一个活跃的记录.我需要类似的东西myRecordA.active_recordb
如果我添加一个像is_activeRecordB 这样的新列,那么我可能会同时设置两个记录is_active = true.
我可以使用哪种设计模式?
谢谢!
我的朋友在一个需要类图建模的课程中.我们可以访问(合法)Enterprise Arch,但我们都非常讨厌它.
而Visio并不适用于类建模(至少在我们看来).
类图建模有一个很好的免费解决方案吗?
谢谢!
class Account < ActiveRecord::Base
after_update :give_user_credit, :on => :update
def give_user_credit
credit = User.current_user.credit + 3.8
User.current_user.update_attribute(:credit, credit)
end
end
Run Code Online (Sandbox Code Playgroud)
当我使用它时服务器挂起,当我完全重新启动后回到应用程序时,我的信用额度为1000英镑.
这里发生了什么..
感谢:D
我有一个问题是得到一个文本框的值,它在视图中进入控制器.
在WebForms中它非常简单,它只需要在codebehind trouhg Id中调用文本框,但在MVC中似乎不可能这样,或者?
请帮帮我!
小心,拉格姆斯
我认为每个人都喜欢在Rails中做这样的事情是安全的:
Product.find(:all, :conditions => {:featured => true})
Run Code Online (Sandbox Code Playgroud)
这将返回属性"features"(数据库列)为true的所有产品.但是,假设我在这样的产品上有一个方法:
def display_ready?
(self.photos.length > 0) && (File.exist?(self.file.path))
end
Run Code Online (Sandbox Code Playgroud)
...我希望找到该方法返回true的所有产品.我可以想到几种混乱的方式,但我认为我们喜欢Rails也是安全的,因为大多数事情都不是很混乱.
我会说这对我来说是一个非常普遍的问题......我必须想象一个好的答案会帮助很多人.任何非杂乱的想法?
model ×10
asp.net-mvc ×3
activerecord ×2
c# ×2
ruby ×2
architecture ×1
attributes ×1
controller ×1
has-many ×1
linq-to-sql ×1
methods ×1
migration ×1
modeling ×1
schema ×1
view ×1
visio ×1