태그 보관물: 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를 적용하는 방법을 설명하는 것입니다.

계속 읽기

Advertisements

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) 프로젝트를 기준으로 사용자 모델을 확장하는 방법을 설명합니다. 계속 읽기

프로그래밍 리소스 브리핑 – 2014 #1

목록

JavaScript

  1. koa.js – ES6 generator 기반 Node.js 웹 응용프로그램 프레임워크
  2. Grunt Devtools – Grunt를 위한 Chrome 개발 도구 확장
  3. node-webkit – Chromium과 Node.js 기반의 데스크탑 응용프로그램 개발 도구
  4. Breeze – JavaScript 데이터 접근 프레임워크
  5. Knockout.js Lesson – KnockoutJS 동영상 강의 시리즈
  6. A comparison of the two-way binding in AngularJS, EmberJS and KnockoutJS – Angular, Ember, Knockout의 two-way 바인딩에 대한 비교
  7. Node.js Tools for Visual Studio – Visual Studio의 Node.js 개발 도구
  8. Warming up with Ember.js – Code School의 Ember.js 강좌
  9. Edge.js – 단일 프로세스 내에서의 Node.js 코드와 .NET 코드 조합

.NET Framework

  1. C# for System Programming – Microsoft에서 높은 성능과 생산성을 목표로 준비중인 C# 기반의 새로운 언어
  2. .NET Fiddle – C#과 Visual Basic 용 fiddle 서비스
  3. JNBridge – 공유 메모리와 TCP 기반 Java와 .NET의 interop 솔루션
  4. C#을 싫어하는 이유, C#을 좋아하는 이유 – C#을 싫어하고 좋아하는 이유에 대한 질문과 답변들
  5. MVC interview questions with answers – ASP.NET MVC 취업 인터뷰 예상 질답 모음
  6. Entity Framework 5 vs. NHibernate 3.3 with Oracle 11g – Oracle 사용에 있어서의 Entity Framework과 NHibernate 비교
  7. one true error – 응용프로그램 오류 관리 서비스

기타

  1. ‘성당과 시장’ 번역서 무료 배포
  2. Visual Studio Online “Monaco” – 웹에서 실행되는 클라우드 Visual Studio의 첫 모습
  3. bento – 각종 웹 기술 학습 정보를 정리해 제공하는 사이트

계속 읽기

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

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

계속 읽기