Questions tagged [c#]
C# is a multiparadigm, managed, garbage-collected object-oriented programming language created by Microsoft in parallel with the .NET platform
4,947
questions
1
vote
3
answers
89
views
Refactoring Controllers publishing different events with MediatR library
I have Controller that basically publishes different Event based on some input criteria, simplified version of the logic is here:
[HttpPost]
public async Task<ActionResult> Create(...
0
votes
0
answers
98
views
Designing message handler
I am writing an application that receives different kinds of messages from an external device. The messages are of different types and they are received from the device in the form of a string.
For ...
0
votes
1
answer
195
views
How best to share common steps between services while allowing them to provide their own behaviour
I've started working on a C# codebase. There are three services which run the same set of steps of three kinds of objects, each returning IResult:
public IResult FooService(Foo foo) { ... }
public ...
0
votes
2
answers
675
views
What is considered best practice for managing dependency injection for multiple libraries with ASP.NET Core Web API?
Suppose we are building a REST API with ASP.NET Core. Suppose there are 3 projects in our solution:
The ASP.NET Core Web API project.
A class library project for the businnes layer.
A class library ...
5
votes
2
answers
2k
views
C#: Refactoring an oversized try/catch/finally
Recently I've come to discover that I've inherited one of the internal auxilliary programs used. I've made a few minor fixes and features to improve it in the past, but now I've been given a major ...
1
vote
0
answers
84
views
parent correlation id in message with rabbit queue and open telemetry
I have a rabbit queue that I use to communicate between applications.
I have a chain of three message.
App 1 generate and push a message in rabbit(message 1)
App 2 catch the message and generate ...
2
votes
1
answer
1k
views
Best practices for team development with NuGet projects in .Net
TL;DR I want to change the way our current enterprise code base is constructed to utilize NuGet packages for the inter-project references, but that seems to present some challenges when considering ...
0
votes
1
answer
143
views
Class Hierarchy for Generic Parameter Optimization Problems
I am working on a code library containing data structures and algorithms for solving parameter optimization problems. A parameter optimization problem is a problem of the form: given a vector of ...
1
vote
2
answers
238
views
DDD Logic implementation
Ive been tossing this around in my head for awhile. But I'm working on a project that consists of an Order, that has a OrderStatus. There is quite a bit of logic that revolves around the status and ...
2
votes
2
answers
182
views
Implementing reusable pipeline-style pattern involving different types
I've been struggling with refactoring my code to use a generalized design pattern for a theme I see being repeated. The biggest struggle is that each instance of this repeated code uses different ...
15
votes
6
answers
6k
views
Why is it necessary to mark classes as not inherited from? Can't an optimizer automatically detect that virtual calls are unnecessary?
In C# and C++, an apparent trend is in place to reduce / avoid inheritance:
C#: "Sealing types can improve performance."
https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/...
0
votes
0
answers
59
views
Where to add WebApi in a service repo design pattern project?
I am hoping someone has had to do this before and can help.
I have a multi tier MVC application that I need to add WebApi, in preparation for moving to .Net Core + react and a new set of controls for ...
0
votes
0
answers
26
views
Designing an Accepted/202 endpoint
I have an end point where a user can start an update operation. I don't want to make the user wait for the result. There are two possible outcomes:
The action is succesful - nothing to do for the ...
0
votes
1
answer
217
views
How to organize "master" data VS "working" data in MS SQL
I have this survey software that I'm writing and I'm wondering what would be the best design for my requirement.
I'm going to simplify it as best as I can.
I have these entities:
class Survey {
...
0
votes
1
answer
135
views
What C# Object Composition strategy would you apply for CoreObjects with a governing 'ObjectType' property
In a C# ASP.Net Core Web Application I have a Domain Model CentralDesignObject made up of many component objects & properties, producing a significant amount of derived/calculated values.
This ...
1
vote
2
answers
684
views
Clean Architecture: Loading data for the domain layer
Let's say my domain has a User Entity that has a many to many relationship with itself representing "Friends"
public class User
{
public int Id;
public IEnumerable<User>? ...
1
vote
1
answer
117
views
Correct way to represent acquaintance enforced by interface in UML class diagram
Suppose I have the following client code:
using System;
namespace InterfaceCompositionUml
{
internal class Program
{
static void Main(string[] args)
{
...
1
vote
4
answers
543
views
How can I keep accurate time in a Windows Forms (WinForms) application?
I am an inexperienced developer fresh out of college. I was handed a Windows Forms Application to work on.
The application previously relied on system time. They wanted me to make it so that we could ...
-1
votes
5
answers
108
views
Poolable classes with default custom properties/logic without affecting OOP hierarchy
I want to make my own pooling library.
By design, I want each poolable class to have a reference of the pool it came from, so ideally whenever the user wants to make a class poolable they'd have to ...
1
vote
2
answers
1k
views
MVVM: How and should I expose view models' models to other view models?
Many times while writing MVVM apps in C# I've come across this sort of problem where I need to expose the model in a view model so that I can get it in another view model and do something with it.
...
0
votes
3
answers
259
views
Can the application layer extend the domain models?
I write BFF (Backend For Frontend) and it's domain is to provide user info and microservices integration.
The User domain model looks like below:
public class User
{
public required Guid Id { get; ...
1
vote
2
answers
337
views
Where to put DLL specific settings?
I'm not sure how to manage configuration settings in a C#/.NET environment. For simplicity lets say I have 3 assemblies: My MainApplication is the project being started and containing the business ...
1
vote
4
answers
2k
views
Validating data classes with nullable properties that should never be null
When retreiving data with an api and saving it in a DTO, some values are nullable: null on initial class initialization but VS also warns you for this. For example, an employee:
public class ...
0
votes
2
answers
1k
views
Deserializing/Serializing a cached domain object breaks DDD principles
My application has to maintain a stateful object and update it periodically based on events received. I get an initial HTTP request to create this stateful object. After that the object has to be ...
1
vote
3
answers
173
views
Isolate or Redundant Test?
I have lots of code like the following. An "Entity" type that has some numerical properties. To be able to reuse the arithmetic I write the arithmetic functions against an interface. I use ...
2
votes
2
answers
3k
views
WPF MVVM - Pass data from child-view to parent
I'm trying to implement the MVVM-pattern in a new WPF-application.
I'm using the MVVM Community Toolkit to reduce boilerplate code that comes with the pattern.
In my application, I'd like to have a ...
0
votes
2
answers
235
views
Domain Project and Identity Project circular dependency
I am currently working on implementing the Clean Architecture pattern using Entity Framework. However, I've encountered an issue related to the design of my Domain project. In this project, I need to ...
0
votes
3
answers
944
views
Use of Visitor pattern rather than enums
Lets say that a enum exists:
public enum SomeEnum
{
FirstValue,
SecondValue
}
It's use is spread through the code and all sort of wonderful logic hangs off it.
If we now add another entry (...
0
votes
1
answer
139
views
Generic message broker based on WCF
I apologize in advance for a long-read question, but i'm hardly stuck here and don`t how to ask for help using fewer words.
I need to implement a middleware service which should be placed between two ...
1
vote
2
answers
2k
views
Why does IDictionary not implement IReadOnlyDictionary
I've recently just noticed that IDictionary does not implement IReadOnlyDictionary. I'm using two third-party libraries, one of which provides a ToDictionary() method which returns an IDictionary ...
5
votes
2
answers
237
views
Is there a way to avoid downcasting or improve design?
I have the following interfaces to allow me to generate "drawing" of some product.
public interface IProductDrawer
{
public string Execute(ProductScope scope, ProductConfig config);
}
...
-1
votes
3
answers
147
views
How to pass simulation information to a simulated device that uses a generic interface?
Currently, I am developing a software in C# (.NET 6) that tests devices after production. Therefore, it runs specific tests, e.g., voltage measurements, using the connected hardware. If the voltages ...
1
vote
2
answers
187
views
Is there a name for this pattern of sealing base classes to a strict set?
In C#, it's possible to create a strictly sealed set of classes that inherit from a base that cannot be further extended like so:
public abstract record MyBase
{
public sealed record A: MyBase;
...
-1
votes
7
answers
649
views
If you use Inversion of Control, what alternatives to obfuscated function calls exist?
Consider a class that follows the obfuscated function call anti-pattern. I've also seen these called "stupid classes". The definition of such a class is that it only has one public method ...
0
votes
0
answers
145
views
Dependency Injection Usage
I'm very new to DI, and must admit, am having a hard time understanding to what extent it should be used in an application.
Even in a basic project, you can have hundreds of classes that have ...
0
votes
2
answers
968
views
Mediator Pattern in c# - using a mediator to trigger policies
I'm wondering how i can implement what Im calling "business policies" in my code? For discussion purposes, let's say I have two separate contexts - synchronizeUsers and Licensing.
The ...
4
votes
2
answers
1k
views
Passing data through events to adhere to the Tell-Don't-Ask principle?
In my little WinForm app, intended to practice as a hobbyist, I'm using this code to pass data from the View to its Presenter:
public event Action<object, string, string?>? SearchInAlbums;
...
2
votes
3
answers
431
views
Is having many build-once factories a sign of bad dependency injection design?
I have a form. It contains things like grids. Users do things with these grids and what they do with them is sent to a SQL server. Clearly, the server is a volatile dependency and should be dependency ...
0
votes
0
answers
95
views
Options for C# machine to machine communication [duplicate]
I’m evaluating different options for communication between C# applications. My requirements are:
Central server where clients connect
Persistent connection, server should know when clients connect/...
0
votes
4
answers
683
views
How to safely store application data on shutdown?
I am writing a Windows Service using the Windows Background Worker Service template. Some data that I track needs to persist between application instances (i.e. after shutdown and restart).
Initially, ...
0
votes
1
answer
334
views
Is a message queue the right pattern to use for intra-module communication in a .net core application
Background Information
We have a .Net core application that uses Hangfire (pretty version of cron) jobs to batch process different types of data.
As a bogus example, we have one job that will run ...
0
votes
6
answers
1k
views
Is it best practice for each call to a SQL Server to be in its own class, even when using dependency injection?
I often see/write classes that contain every part of the application where the application will talk to a SQL server. For example, you may have a class like this
public class Data
{
private Func&...
-1
votes
2
answers
122
views
Flexible design approach vs maintainabilty/verifiability
Currently, I have to define a general design approach concerning the future extensibility of a software written in C#. The software is built in modular design: A main part doing the general handling, ...
2
votes
4
answers
1k
views
My concrete classes only have a constructor. Everything else comes from an abstract class. Is this bad practice?
I think that I've taken the Open-Closed and Single Responsibility principles too far. Previously, I had one huge static class containing every method that has C# talk to stored procedures on my SQL ...
0
votes
1
answer
70
views
API design with conditional compilation: stubs and exceptions vs public API change?
I am developing a package for the Unity game engine. I want to add additional functionality to my package if another specific package is present. I am faced with a dilemma I am not sure which of these ...
-1
votes
3
answers
2k
views
How to properly design database in accordance with DDD
My Domain layer contains below model:
public class ApiResource
{
public bool Enabled { get; set; } = true;
public string Name { get; set; }
public string ClientId { get; set; }
public ...
0
votes
1
answer
212
views
Dependencies traveling through hierarchical viewmodels
Often I want to open a new window from within some view.
I see opening a window as view logic. So I don't want code in my viewmodel that creates/opens/changes Windows or anything else that
interacts ...
0
votes
0
answers
181
views
SQL Database design for reusable components and classes
I am working on a small suite of enterprise applications, and I am trying to determine the best way to make them more consistent and maintainable across the board. The applications are .Net Blazer ...
0
votes
1
answer
402
views
Observer pattern using static events
I'm working on a game prototype: I have a Cell class which, given a mouse click on its collider, can raise an event that should be listened in two different modules: Camera and UI.
The Observer ...
-1
votes
1
answer
77
views
Optimal OOP security for PubSub - Should mutual consent be required?
I am implementing the Publish-Subscribe pattern.
I have class Broker and interfaces IPublisher, ISubscriber.
interface IPublisher {
broker: Broker;
publish(channel: Channel, data: object): ...