Questions tagged «architecture»

体系结构包含解决方案的流程,工件和高级结构。

3
WPF MVVM为什么使用ContentControl + DataTemplate视图而不是直接的XAML窗口视图?
为什么这个? MainWindow.xaml: <Window x:Class="MVVMProject.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Grid> <ContentControl Content="{Binding}"/> </Grid> </Window> 将您的ExampleView.xaml设置为: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:vms="clr-namespace:MVVMProject.ViewModels"> <DataTemplate DataType="{x:Type vms:ExampleVM}" > <Grid> <ActualContent/> </Grid> </DataTemplate> </ResourceDictionary> 并创建如下窗口: public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); MainWindow app = new MainWindow(); ExampleVM context = new ExampleVM(); …
83 c#  wpf  xaml  mvvm  architecture 

4
胖模型/瘦控制器与服务层[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 7年前关闭。 改善这个问题 我使用.Net开发企业应用程序已有很多年了。我的应用程序通常具有一个域模型,其中包含映射到SQL DB表的实体。我使用存储库模式,依赖注入和服务层。 最近,我们开始从事MVC 3项目的工作,我们在争论应该在哪里放置哪种逻辑。我遇到了瘦控制器/ FAT模型架构,并且想知道服务层如何适合 选项1-服务示范 控制器很薄,在模型上调用方法。这些模型“知道”如何从数据库加载自身并与存储库或服务对话。例如,customerModel具有Load(id)方法,并加载客户和一些子对象,例如GetContracts()。 选项2-控制器与服务对话 控制器要求服务检索模型对象。加载/存储等逻辑在服务层中。该模型是仅包含数据的纯实体模型。 为什么选项1会是一个更好的选择,尤其是当我们谈论企业应用时,我的经验告诉我要分开关注点,将模型和控制器保持尽可能的薄,并让专门的服务执行业务逻辑(包括数据库交互) 感谢您的所有建议和对良好资源的引用。

7
像kayak.com这样的网站如何汇总内容?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 改善这个问题 问候,我一直在想一个新项目,并且想知道是否有人对像Kayak.com这样的服务如何能够如此快速,准确地聚合来自许多来源的数据有任何想法。更具体地说,您认为Kayak.com正在与API进行交互还是为了满足用户请求而爬行/抓取了航空公司和酒店网站?我知道对这种事情没有一个正确的答案,但我很好奇知道别人认为这是解决此问题的好方法。如果有帮助,请假装明天创建kayak.com ...您的数据来自哪里?

5
域对象,POCO和实体之间有什么区别?
我对他们的印象基本相同。模型对象也一样吗? 现在,在我的体系结构中,我有: class Person { public string PersonId; public string Name; public string Email; public static bool IsValidName() { /* logic here */ } public static bool IsValidEmail() { /* logic here */ } } class PersonService { private PersonRepository pRepository; PersonService() { pRepository = new PersonRepository(); } public bool …


6
MVC模型对象,域对象和DTO有什么区别
MVC模型对象,域对象和DTO有什么区别? 我的理解是: MVC模型对象: 为要通过相应视图显示的数据建模。它可能不会直接映射到域对象,即可能包含来自一个或多个域对象的数据。 客户端 可能包含业务逻辑。例如。验证,计算的属性等 没有与持久性相关的方法 域对象: 在问题域中对真实世界对象进行建模的对象,例如“保留”,“客户”,“订单”等。用于保留数据。 服务器端 没有业务逻辑 DTO(数据传输对象): 当层处于单独的进程中时(例如,从DB到客户端应用程序),用于在层之间传输数据的对象。当获取与多个域对象相对应的数据时,允许通过导线进行单个事务,而不是多个调用。DTO仅包含数据和访问器方法,并且不存在逻辑。数据用于特定的DB事务,因此它可能会或可能不会直接映射到域对象,因为它可能包含来自一个或多个域对象的数据。 在层之间传递时,在服务器端和客户端均使用 没有业务逻辑 没有与持久性相关的方法 因此,问题是: 以上理解正确吗?我是否缺少一些要点? 假设模型对象不需要额外的业务逻辑,是否有任何理由不将Domain对象用作MVC模型? 假设Model对象不需要额外的业务逻辑,是否有任何理由不将DTO用作MVC模型?

9
Fowler的“企业应用程序体系结构模式”仍然有意义吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 改善这个问题 我正在考虑购买Martin Fowler的“企业应用程序体系结构模式”。 从我看来,这似乎是一本很棒的书,一本对企业Java有偏见的架构书,正是我所需要的。 但是,在计算机时代,它已经很老了。2003年已经很久了,自那时以来,事情发展了很多。 因此,我想知道是否有人可以告诉我:这本书是否仍然有意义,是否值得阅读?

4
CQRS:命令返回值[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 改善这个问题 关于命令是否应该具有返回值,似乎存在无尽的困惑。我想知道是否只是因为参与者没有说明他们的背景或情况而引起的困惑。 混乱 这是混乱的例子... 乌迪·达汉(Udi Dahan)说,命令“没有将错误返回给客户端”,但在同一篇文章中,他展示了一个图,其中命令的确向客户端返回了错误。 Microsoft Press Store上的一篇文章指出“命令...不返回响应”,但随后给出了模糊的警告: 随着围绕CQRS的战场经验的增长,一些实践逐渐巩固并趋于成为最佳实践。在某种程度上与我们刚才所说的相反...今天普遍认为,命令处理程序和应用程序都需要知道事务操作的进行方式。结果必须是已知的... 吉米·博加德(Jimmy Bogard)说“命令总是有结果”,但随后又花了很多功夫来说明命令如何返回无效。 那么,命令处理程序是否返回值? 答案? 从吉米·博加德(Jimmy Bogard)的“ CQRS神话”中获取线索,我认为该问题的答案取决于您在说什么程序化/上下文“象限”: +-------------+-------------------------+-----------------+ | | Real-time, Synchronous | Queued, Async | +-------------+-------------------------+-----------------+ | Acceptance | Exception/return-value* | <see below> | | Fulfillment | return-value | n/a | +-------------+-------------------------+-----------------+ 验收(例如验证) 命令“接受”主要是指验证。假定验证结果必须同步地提供给调用方,而不管命令“完成”是同步的还是排队的。 但是,似乎许多从业者并不从命令处理程序中启动验证。从我所看到的,这是因为(1)他们已经找到了一种在应用程序层处理验证的绝佳方法(即,通过数据注释检查有效状态的ASP.NET MVC控制器)或(2)一种体系结构假设命令已提交到(进程外)总线或队列中。后一种异步形式通常不提供同步验证语义或接口。 …

15
什么是环复杂性?
我时不时看到的一个术语是“循环复杂性”。在SO上,我看到了一些有关“如何计算语言X的CC”或“如何用最小的CC来做Y”的问题,但是我不确定我是否真正理解它是什么。 在NDepend网站上,我看到一个解释,基本上是这样说的:“方法中的决策数。每个if,for,&&等都将CC的“分数”加+1)。真的吗?如果是,为什么呢?我可以看到有人可能希望将if语句的数量保持在相当低的水平,以使代码易于理解,但这真的是要解决的一切吗? 还是有一些更深层次的概念?

6
耦合与内聚
我试图将耦合和内聚的概念简化为一个简洁的定义。有人可以给我一个简短易懂的解释(比此处和此处的Wikipedia定义短)吗?他们如何互动? 谢谢。 有人有一个很好的简短例子吗?

2
MVCS-模型视图控制器服务
我已经使用MVC很长时间了,并且听说过“服务”层(例如在Java Web项目中),并且我一直在想,如果我找不到很多有关MVC的信息,那这是否是真正的架构模式它。 MVCS的想法是在控制器和模型之间具有服务层,以封装控制器中可能存在的所有业务逻辑。这样,控制器就在那里转发和控制执行。您可以在许多控制器(例如,网站和Web服务)中调用服务,而无需重复代码。

4
使用Node / Express构建企业应用
我试图了解如何使用Node / Express / Mongo(实际上使用MEAN堆栈)来构造企业应用。 在阅读了2本书和一些谷歌搜索(包括类似的StackOverflow问题)之后,我找不到使用Express构建大型应用程序的任何好例子。我读过的所有资料都建议按以下实体拆分应用程序: 路线 控制器 楷模 但我这个结构看主要问题是,控制器是神一样的物体,他们知道req,res对象,负责验证和有业务逻辑包含英寸 另一方面,路由在我看来就像过度设计,因为它们所做的只是将端点(路径)映射到控制器方法。 我有Scala / Java背景,因此我习惯于将所有逻辑分为3层-控制器/服务/ dao。 对我来说,以下陈述是理想的: 控制器仅负责与WEB部件进行交互,即编组/解组,一些简单的验证(必需,最小,最大,电子邮件正则表达式等); 服务层(实际上我在NodeJS / Express应用程序中错过了)仅负责业务逻辑和某些业务验证。服务层对WEB部分一无所知(即可以从其他应用程序位置调用它们,而不仅仅是从Web上下文中调用); 关于DAO层对我来说很清楚。猫鼬模型实际上是DAO,因此在这里对我来说最清楚。 我认为我看到的示例非常简单,并且仅显示Node / Express的概念,但是我想看看一些涉及许多业务逻辑/验证的真实示例。 编辑: 我还不清楚另一件事,就是缺少DTO对象。考虑以下示例: const mongoose = require('mongoose'); const Article = mongoose.model('Article'); exports.create = function(req, res) { // Create a new article object const article = new Article(req.body); …

7
最好在MVC中拥有大型控制器或多个控制器?
我们正在ASP.NET MVC中构建一个相当大的HR应用程序,到目前为止,我们的控制器变得越来越大。例如,我们有一个Employee控制器,并且包括了所有雇员视图(个人信息,雇员扣除额,家属等)。这些视图中的每一个都可能具有多个操作或子视图(例如CRUD)。每个动作都相对较小,但是控制器可能具有数十种功能。 是否有拆分控制器的最佳实践?与其让Employee控制器具有数十个视图,不如为每个子类型(即EmployeePersonalInfoController,EmployeeDeductionController,EmployeeDependentController)配备一个控制器会更好吗? 最后,这甚至有关系吗? 更新说明 我最初关心的是CRUD动作。例如,让我们考虑创建和删除... EmployeeController中的当前操作: CreateEmployee() DeleteEmployee() CreateEmployeeDeduction() DeleteEmployeeDeduction() CreateDependent() DeleteDependent() etc. 如果控制器拆分: EmployeeController Create() Delete() EmployeeDeductionController Create() Delete() EmployeeDependentController Create() Delete() EmployeeBenefitController Create() Delete() etc. 在第一种情况下,我们的约100个屏幕分为8-10个大型控制器。在第二个中,我可能会有约50个控制器。

16
动态数据库架构
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4个月前关闭。 改善这个问题 为动态逻辑数据库架构提供存储的推荐体系结构是什么? 需要说明的是:在要求系统为模型提供存储的情况下,其模型可能会在生产后由其用户扩展或更改,那么有哪些好的技术,数据库模型或存储引擎可以做到这一点? 一些可能性来说明: 通过动态生成的DML创建/更改数据库对象 创建具有大量稀疏物理列的表,并且仅使用“重叠”逻辑架构所需的表 创建一个“狭长”表,将动态列值存储为行,然后需要对其进行透视以创建一个“短,宽”行集,其中包含特定实体的所有值 使用BigTable / SimpleDB PropertyBag类型系统 任何基于现实世界经验的答案将不胜感激


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.