Tag: 洋葱架构

WebActivator PreApplicationStartMethod不起作用

我正在建设一个新项目。 我有一个名为“bootstrapper”的独立项目,它包含IOC和WebActivator。我的问题是包含WebActivator的类甚至没有在调试中加载! 可能是我错过了什么? [assembly: WebActivatorEx.PreApplicationStartMethod(typeof(IocConfig), “RegisterDependencies”)] public class IocConfig { public static void RegisterDependencies() { //………. } }

洋葱建筑

我正在为即将到来的内部应用程序设置一个项目结构,该应用程序试验了Palermo提出的Onion Architecture( http://jeffreypalermo.com/blog/the-onion-architecture-part-3/ )。 我遵循他的指导方针,但到目前为止我需要对项目结构进行一些validation。 在图表之前,问题: 我认为参考文献都是正确的(根据图表设置,箭头表示’有参考’),但有些validation会很好。 我应该在依赖性解析层中添加什么? 这是帮助者去的地方吗? 这引用了所有其他项目? Web服务和UI如何与DAL通信? (通过核心?怎么样?) 应该去哪里? [我知道的广泛问题……] 简化的概念图如下(文件夹代表名称空间):

通用存储库是否需要在任何地方应用基本实体类?

我正在使用ASP.NET MVC和Onion Architecture创建一个Intranet网站。 我一直在实现存储库模式,但我遇到了困难。 假设我有一个带有IDDocument的Document表。 那么这是我的回购(只有一种方法): class Repository : IRepository where T : class { private readonly PrincipalServerContext context; private DbSet entities; //Constructor and stuff here public T Get(long id) { return entities.SingleOrDefault(s => s.IDDocument == id);//Here is my problem } } 问题是我不能使用它,因为T不被识别为来自Document表。 解决方案是创建一个BaseEntity: public class BaseEntity{ public int ID{get;set;} } 然后我的文件POCO变成: public class Document […]

在ASP.NET 5和MVC 6中从Web项目中分离启动配置的最佳方法

使用MVC5,创建一个引用所有层的引导程序项目非常容易,从而将UI层与对基础架构逻辑的引用分离开来。 该项目将包含启动配置逻辑,例如设置IoC容器。 这样做的方法是定义一个启动类: public class Startup { public static void Start() { // startup configuration (IoC etc) goes here } } 然后在AssemblyInfo.cs添加一行: [assembly: PreApplicationStartMethod(typeof(Startup), “Start”)] 不幸的是,这种方法不再适用于asp.net 5.我简要介绍了文档,但我发现的只是框架在Web项目中查找名为Startup的类。 我还看了一下Microsoft.AspNet.Hosting 源代码 ,它似乎负责查找Startup类。 我可以看到对配置类的一些引用,因此有可能通过使用某种配置设置来加载程序集,但我无法确认或确定哪个设置。 此外,如果这是真的,当在Startup类中加载文件本身时,如何使用config.json文件确定Startup类? 是否有不同的配置启动程序集的选项,例如使用环境变量?

洋葱架构,工作单元和通用存储库模式

这是我第一次实施更多以域驱动的设计方法。 我决定尝试使用Onion Architecture,因为它专注于域而不是基础架构/平台/等。 为了从entity framework中抽象出来,我创建了一个带有工作单元实现的通用存储库 。 IRepository和IUnitOfWork接口: public interface IRepository { void Add(T item); void Remove(T item); IQueryable Query(); } public interface IUnitOfWork : IDisposable { void SaveChanges(); } IRepository和IUnitOfWorkentity framework实现: public class EntityFrameworkRepository : IRepository where T : class { private readonly DbSet dbSet; public EntityFrameworkRepository(IUnitOfWork unitOfWork) { var entityFrameworkUnitOfWork = unitOfWork as EntityFrameworkUnitOfWork; […]

洋葱建筑中的典型层次是什么?

我目前正在研究域驱动设计,并尝试将其应用于WPF项目。 我观看了一些教程video,并阅读了很多文章,例如: 同一层中的洋葱架构依赖关系:基础架构和Web通信 http://eohmicrosoft.blogspot.fr/2012/08/laying-it-out-onion-architecture.html 域驱动设计:域服务,应用服务 我理解对接口和控制反转的关注。 我读到有一些经常出现的层名(领域/核心用于表示知识领域,基础设施用于持久性,应用程序用于……我不明白),但它们会根据我阅读的文章而改变。 有些人甚至没有出现。 是否有可能拥有一个理论上在洋葱架构中需要面对所有需求和问题的所有层的列表,它们的意图(它们包含什么样的代码,它们试图满足什么样的需要) ,他们需要参考哪一层),好吗?