草庐IT

架构设计

全部标签

c# - 在我的项目中仅针对 Owned<T> 引用 Autofac 是不是糟糕的设计?

我最近成为Autofac的OwnedInstances功能的重度用户。例如,我用它来提供一个工厂来为我的数据库创建一个工作单元,这意味着我依赖于UnitOfWork工厂的类正在请求以下类型的对象:Func>这非常有用——非常适合keepingIDisposableoutofmyinterfaces--但它是有代价的:因为Owned是Autofac程序集的一部分,我必须在我的每个知道Owned的项目中引用Autofac,并在每个代码中加入“usingAutofac.Features.OwnedInstances”文件。Func具有构建到.NET框架中的巨大好处,因此我毫不怀疑将Func用

c# - 如何设计流畅的异步操作?

异步操作似乎无法与我更喜欢编写代码的流畅界面配合使用。异步如何与流畅结合?示例:我有两个方法之前返回了一个MyEntity但在更改为Async时效果不佳。在我异步化它们之后,我必须await任务的结果,但我必须为添加的每个步骤执行此操作:MyEntityXx=await(awaitFirstStepAsync()).SecondStepAsync();必须有更好的方法。 最佳答案 更好的方法是使用类似于LINQ的延迟执行。您可以拥有许多实际上什么都不做的方法,它们只是设置一些选项或存储一些逻辑。最后有一些方法可以实际执行之前存储的所

c# - 设计游戏对象

我最近开始使用MicrosoftXNA和C#开发一款自娱自乐的小游戏。我的问题是关于设计游戏对象和继承它的对象。我将把游戏对象定义为可以在屏幕上呈现的东西。因此,为此,我决定创建一个基类,所有其他需要渲染的对象都将继承该基类,称为GameObject。下面的代码是我制作的类:classGameObject{privateModelmodel=null;privatefloatscale=1f;privateVector3position=Vector3.Zero;privateVector3rotation=Vector3.Zero;privateVector3velocity=Vec

STM32示波器设计

目录前言1、硬件模块2、示波器基础知识2.1当头一棒就是,波形的概念2.2第二就是需要观察的波形参数2.3第三就是示波器参数2.3.1采样率2.3.2带宽2.3.4刷新率3、ADC采集和DAC输出3.1ADC采集实现3.1.1配置ADC采集为定时触发DMA采集模式3.1.2配置ADC关联的定时器3.1.3转换成有效值3.2DAC波形输出3.2.1选择定时器触发3.2.2配置定时器3.2.3生成波形数据4、波形刷新方案4.1初始化流程4.2生成波形数据4.3波形刷新方案1:消隐一条线,画当前线,而不是消隐完再画线方案2:特殊处理网格点方案3:计算像素点,整屏刷新5、触发模式6、存储深度前言出于产

c# - 设计建议。使用 DataTable 或 List<MyObject> 作为通用规则检查器

我有大约100,000行通用数据。此数据的列/属性是用户可定义的,并且是常用数据类型(字符串、整数、double、日期)。将有大约50个列/属性。我有两个需求:能够使用表达式计算新的列/属性例如Column3=Column1*Column2.最终,我希望能够通过回调来使用外部数据,例如Column3=Column1*获取温度表达式比较简单,数学运算,sum,count&IF是唯一需要的函数。能够过滤/分组数据并执行聚合例如Sum(Data.Column1)Where(Data.Column2=="blah")据我所知,我有两个选择:1.使用DataTable。=>上面的第1点是通过使用

c# - 采用 WF 的 Web 应用程序的最佳设计是什么?

我们目前正在构建一个使用非简单审批流程的应用程序,其中涉及多个级别的审批、返回、审核、通知等。由于上述要求,我们被要求使用工作流框架来提高流程透明度。在原型(prototype)上,我们已经成功地整合了工作流程并且运行良好。但是,我们无法确定应该对用户可用的操作。例如,我有以下接收操作:create()、managerApprove()、RAApprove()、ORMApprove()..现在,如果我按顺序调用它们,使用正确的用户名,它们就会工作。显然,如果我没有按顺序调用它们,那么它将抛出FaultException,因为它不处于正确的状态。问题是,我如何知道可以在UI中公开哪些功能

C#服务层设计模式

我们正在考虑创建一个新项目,并希望探索使用存储库和服务层模式,目的是创建松散耦合的代码,这些代码可以使用模拟存储库进行完全测试。请参阅下面的基本架构思想。我们将使用接口(interface)来描述存储库并将它们注入(inject)服务层以删除任何依赖项。然后使用autofac,我们将在运行时连接服务。publicinterfaceIOrderRepository{IQueryableGetAll();}publicclassOrderRepository:IOrderRepository{publicIQueryableGetAll(){returnnewList().AsQuerya

c# - 如何使用 Entity Framework 设计可配置的字段级权限

假设我们有一个关于某些车型的信息表,例如:如果我还需要规则是用户可配置的,我将如何最好地实现字段级访问权限以进行读取和写入操作?我正在使用MSSQLServer2016和EF6。基于该表,我们可能有以下用例,它们描述了对特定角色或组可见的字段:1)公共(public)数据的默认权限组2)基于实体的权限组3)基于自定义字段的权限组要求是,隐藏数据必须与NULL值不同,并且规则/权限必须是用户可配置的。我还需要对列表进行分页,这需要对可见数据进行正确排序。为此,我需要一种处理数据类型的方法。例如,build年份是一个不可为null的DateTime,但当该字段不可见时,需要将其设置为默认值

c# - 在 .NET Core 下的分层架构中自动创建 CRUD

我正在一个典型的三层架构下的新项目中工作:business、data和client,使用Angular作为前端。在这个项目中,我们将有一个我们想要自动化的重复性任务:CRUD的创建。我们要做的是生成模型和Controller(放置、获取、发布、删除)以及来自实体及其属性的其他基本项目信息。我最好的选择是什么?我曾考虑过模板T4,但我对它们的无知使我怀疑它是否是最佳选择。例如,来自这个实体:publicclassUser{publicintId{get;set;}publicstringName{get;set;}publicstringEmail{get;set;}publicIEnu

c# - 使用 MassTransit、RabbitMQ 和 SignalR 的分布式架构

我正在MassTransit的帮助下开发分布式应用程序和rabbitmq我必须提供在网页上生成报告的能力,无需通过单击按钮重新加载页面,我还应该调用Windows服务来准备数据(该服务处理每个请求30秒-1分钟)。我基于此示例的第一次尝试:https://github.com/MassTransit/Sample-RequestResponse[HttpPost]publicasyncTaskGenerateReport(stringsomeJsonData){varserviceAddress=newUri(ConfigurationManager.AppSettings["Base