«c#» 태그된 질문

C #은 Microsoft에서 .NET 플랫폼과 병렬로 생성 한 다중 패러다임, 관리, 가비지 수집 개체 지향 프로그래밍 언어입니다.

2
웹 사이트를 단일 dll 또는 페이지 당 dll로 컴파일해야합니까?
다수의 클라이언트 사이트에 배포 할 새 프로젝트를 개발 중입니다. 이 프로젝트는 웹 기반 GUI를 "액세스 포인트"중 하나로 포함합니다. 웹 인터페이스의 속도는이 프로젝트의 우선 순위이며 보안에 이어 두 번째입니다. 과거에는 Visual Studio에서 항상 "웹 사이트"를 만들었습니다.이 웹 사이트는 게시 될 때 시스템 내의 각 페이지에 대해 하나의 dll과 하나의 aspx 파일을 …

5
참조로 전달 된 객체 수정이 나쁜 습관입니까?
과거에는 일반적으로 객체가 생성 / 업데이트되는 기본 방법 내에서 대부분의 객체 조작을 수행했지만 요즘 다른 접근법을 취하고 있으며 나쁜 습관인지 궁금합니다. 다음은 예입니다. User엔터티 를 허용하는 리포지토리가 있지만 엔터티를 삽입하기 전에 모든 필드가 원하는 것으로 설정되도록 메서드를 호출합니다. 이제는 메서드를 호출하고 Insert 메서드 내에서 필드 값을 설정하는 대신 개체를 삽입하기 …

6
불변 유형의 단점은 무엇입니까?
클래스의 인스턴스가 변경 될 것으로 예상되지 않을 때 더 많은 불변 유형을 사용 하고 있습니다 . 더 많은 작업이 필요하지만 (아래 예 참조) 멀티 스레드 환경에서 유형을보다 쉽게 ​​사용할 수 있습니다. 동시에 변경 가능성이 다른 사람에게 도움이되지 않더라도 다른 응용 프로그램에서는 변경 불가능한 유형을 거의 볼 수 없습니다. 질문 : …
12 c#  immutability 

1
큰 객체 계층 구조로 방문자 패턴 사용
문맥 객체 계층 구조 (표현식 트리)에서 "의사"방문자 패턴 (이중 디스패치를 ​​사용하지 않는 의사)을 사용했습니다. public interface MyInterface { void Accept(SomeClass operationClass); } public class MyImpl : MyInterface { public void Accept(SomeClass operationClass) { operationClass.DoSomething(); operationClass.DoSomethingElse(); // ... and so on ... } } 그러나 MyInterface의 구현 수가 상당수 (~ 50 …

4
데이터 액세스 계층 내의 비즈니스 개체
그래서 저는 TDD를 통해 데이터 액세스 계층을 만들었고 다소 우려에 접근했습니다. 차라리 잘못된 길을 시작하지 않기 위해 여러분들에게 내 생각이 깨끗한 건축물과 일치하는지 물어 보라고 생각했습니다. 내 데이터 액세스 계층 (DAL)의 방법은 매우 간단합니다. 그것들은 데이터베이스의 저장 프로 시저와 일치하며 (정리를 유지하기 위해 다른 방법으로 호출하지 않음) 프로 시저와 동일한 …


8
로깅 코드를 비즈니스 로직 외부에서 완전히 유지할 수 있습니까?
AOP의 도움으로 비즈니스 로직에서 로깅 코드를 제거 할 수 있습니다. 그러나 나는 간단한 것들 (즉, 로깅 방법 입력 / 종료 및 매개 변수 값)을 기록하는 데만 사용할 수 있다고 생각합니다. 그러나 비즈니스 로직에 무언가를 기록해야하는 경우 어떻게해야합니까? 예 : public void SomeDomainMethod(string id) { //Get user by Id User user …

4
논리적으로 절차적인 소프트웨어를 OO 언어로 작성하는 가장 깨끗한 방법
나는 전기 기술자이고 내가 무슨 짓을하는지 모르겠습니다. 내 코드의 미래 관리자를 저장하십시오. 최근에는 기능이 논리적으로 "절차 적"인 여러 개의 작은 프로그램 (C #)을 작업하고 있습니다. 예를 들어, 그중 하나는 다른 데이터베이스에서 정보를 수집하고 해당 정보를 사용하여 일종의 요약 페이지를 생성 한 후 인쇄 한 다음 종료하는 프로그램입니다. 이 모든 것에 …

5
엔터티 프레임 워크를 사용한 도메인 기반 디자인의 함정
내가 공부 한 DDD에 대한 많은 튜토리얼이 대부분 이론을 다루고 있습니다. 그것들은 모두 기본적인 코드 예제를 가지고 있습니다 (Pluralsight 및 이와 유사한). 웹에서는 소수의 사람들이 EDD를 사용하여 DDD를 다루는 학습서를 작성하려고 시도합니다. 잠깐 공부를 시작하면 서로 다른 점을 빨리 알 수 있습니다. 어떤 사람들은 앱을 최소한으로 유지하고 EF 위에 저장소 …

2
IComparable 인터페이스가 오래되었거나“유해”합니까?
IComparable 한 방향으로 만 작동 Employee수업 이 있다고 가정 해 봅시다 . Employees한보기에서 이름별로 정렬하고 다른 주소별로 정렬 하여 표시하려고 합니다. 어떻게 달성 할 수 있습니까? 하지와 IComparable적어도되지 않은 관용적 인 방법. IComparable 논리가 잘못된 곳에있다 인터페이스는를 호출하여 사용됩니다 .Sort(). Customer이름별로 정렬 된 보기에는 정렬 방법을 암시하는 코드가 전혀 없습니다. …
11 c#  sorting  comparison 

2
도메인 개체 생성을 테스트하기위한 단위 테스트
다음과 같은 단위 테스트가 있습니다. [Test] public void Should_create_person() { Assert.DoesNotThrow(() => new Person(Guid.NewGuid(), new DateTime(1972, 01, 01)); } Person 객체가 여기에 생성되었다고 주장합니다. 즉 유효성 검사가 실패하지 않습니다. 예를 들어, Guid가 null이거나 생년월일이 01/01/1900 이전 인 경우 유효성 검사가 실패하고 예외가 발생합니다 (테스트가 실패 함을 의미 함). 생성자는 다음과 …

5
메모리 관리 언어에 대한 참조 카운팅 패턴?
Java 및 .NET에는 메모리를 관리하는 멋진 가비지 수집기 및 외부 객체 ( Closeable, IDisposable)를 단일 객체가 소유 한 경우에만 신속하게 해제 할 수있는 편리한 패턴이 있습니다 . 일부 시스템에서는 두 구성 요소가 독립적으로 리소스를 소비해야하며 두 구성 요소가 모두 리소스를 해제 한 경우에만 해제해야합니다. 현대 C ++에서는 모든 문제가 해결 …

1
MVC 패턴을 C # WinForms 애플리케이션에 어떻게 적용 할 수 있습니까?
저는 MVC 패턴을 사용하여 GUI를 디자인 한 C ++ 개발자입니다. 최근에 C #으로 돌아가고 싶었고 Windows Forms 응용 프로그램을 설정했지만 이제는 MVC 호환 구조로 푸시하는 방법이 약간 없어졌습니다. 내가 현재하려고하는 것은 WinForms에 대해 주어진 클래스를 뷰로 "선언하고"백그라운드에서 모델 및 컨트롤러에 대한 클래스를 추가하는 것입니다. 그러나 버튼 클릭과 같은 이벤트와 상호 …
11 c#  mvc  winforms 

4
C #의 인터페이스에서 전제 조건 (LSP)을 지정하는 방법은 무엇입니까?
다음과 같은 인터페이스가 있다고 가정 해 봅시다. interface IDatabase { string ConnectionString{get;set;} void ExecuteNoQuery(string sql); void ExecuteNoQuery(string[] sql); //Various other methods all requiring ConnectionString to be set } 전제 조건은 메소드를 실행하기 전에 ConnectionString을 설정 / 초기화해야한다는 것입니다. 이 전제 조건은 IDatabase가 추상 클래스이거나 구체적인 클래스 인 경우 생성자를 통해 …

3
엔티티 프레임 워크 및 빈혈 도메인 모델 피하기
비즈니스 로직에서 때때로 다음과 같이 정의 된 메소드가 있습니다. User.ResetCourse(Course courseToReset) 문제는 User와 Course가 모두 Entity Framework 프록시 개체라는 것입니다. 즉, User 또는 Course에서 탐색 속성에 도달하면 데이터베이스에 큰 타격을 줄 수 있으며 이러한 개체는 IQueryable이 아니므로 정상적으로 반복됩니다. 이를 해결하기 위해 서명을 다음과 같이 변경했습니다. User.ResetCourse(MyDBContext db, Course courseToReset) …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.