태그 보관물: entity framework

Repository and Unit of Work 디자인 패턴을 이용한 TDD(Test-driven Development)

다중 계층 아키텍처는 관심사 분리(SoC, Separation of Concerns) 원칙 구현의 하나로, 각 계층은 전체 프로세스 흐름 중 담당하는 작업에만 집중하여 프로그램 코드의 복잡도를 낮출 수 있습니다. 하지만 계층간 결합도가 높다면 여전히 낮은 테스트성(testability)으로 인해 단위 테스트와 테스트 주도 개발(TDD, Test-driven Development), 행위 주도 개발(BDD, Behavior-driven Development) 등의 방법을 적용하기 어렵습니다. 이 포스트의 주 목적은 비즈니스 논리에 대한 데이터베이스에 독립적인 단위 테스트를 작성하고 TDD를 적용하는 방법을 설명하는 것입니다.

계속 읽기

ASP.NET Identity 사용자 모델 확장

5/15/2014 추가 Microsoft ASP.NET Identity EntityFramework 패키지가 2.0.1 버전으로 업데이트 되었습니다. IdentityUser 클래스에 이메일 주소가 포함되었고 UserValidator 클래스를 사용해 이메일 주소 중복 여부를 검사할 수 있습니다.

사용자 모델

Microsoft ASP.NET Identity EntityFramework 패키지는 응용프로그램 사용자를 나타내는 IdentityUser 모델 클래스를 제공합니다. 최근의 ASP.NET 프로젝트 템플릿은 이 클래스와 EntityFramework을 사용해 개별 계정 관리를 구현합니다. 다음은 IdentityUser 클래스 정의입니다.

using Microsoft.AspNet.Identity;
using System;
using System.Collections.Generic;

namespace Microsoft.AspNet.Identity.EntityFramework
{
    public class IdentityUser : IUser
    {
        public IdentityUser();
        public IdentityUser(string userName);

        public virtual ICollection<IdentityUserClaim> Claims { get; }
        public virtual string Id { get; set; }
        public virtual ICollection<IdentityUserLogin> Logins { get; }
        public virtual string PasswordHash { get; set; }
        public virtual ICollection<IdentityUserRole> Roles { get; }
        public virtual string SecurityStamp { get; set; }
        public virtual string UserName { get; set; }
    }
}

제가 아쉬운 것은 모델에 이메일 주소가 포함되어 있지 않다는 점입니다. 사용자 계정 정보에 이메일 주소 속성을 추가하려면 조금 귀찮은 작업을 해줘야합니다. 이 포스트에서는 SPA(Single-Page Application) 프로젝트를 기준으로 사용자 모델을 확장하는 방법을 설명합니다. 계속 읽기

Entity Framework Code First 데이터베이스 삭제

Entity Framework Code First를 사용해 ASP.NET 개발을 하는 과정 중 데이터베이스를 완전히 삭제하고 새로 생성하고 싶을 때가 있습니다. 이때 App_Data 폴더의 파일을 삭제하는 것만으로는 충분하지 않습니다. 이렇게만 하면 Entity Framework Code First가 데이터베이스를 다시 생성하지 못합니다. 데이터베이스 서버에서 관련된 정보를 깨끗하게 삭제해야 합니다. Visual Studio에서 이 작업을 처리할 수 있습니다.

계속 읽기