웹 개발 (60) 썸네일형 리스트형 [ASP.NET MVC5] Ninject로 의존성 주입(DI) 구현하기 의존성 주입(DI)이란? **의존성 주입(Dependency Injection)**은 인터페이스와 DI 컨테이너를 활용해 MVC 응용프로그램 내부의 구성 요소들을 서로 분리시키는 설계 방식이다. DI 컨테이너는 다음과 같은 역할을 수행한다:인터페이스 구현 인스턴스 생성: 객체가 의존하는 인터페이스 구현체의 인스턴스를 생성한다.생성자 주입: 생성된 인스턴스를 의존하는 객체의 생성자에 주입한다.결합도 감소: 클래스 간의 강한 결합을 제거하고 느슨한 결합을 구현한다. DI를 도입하지 않은 경우: 강한 결합DI를 도입하지 않으면 클래스 간의 결합도가 높아지고, 재사용성과 확장성이 떨어진다. 아래는 DI 없이 강하게 결합된 구조의 예제다. Product.csusing System;using System.Col.. [ASP.NET MVC5] 람다식을 활용한 필터링과 간결한 코드 작성 델리게이트를 사용한 필터링 Product 개체를 대상으로 델리게이트를 수행하여 원하는 방식으로 필터링할 수 있다. 다음은 기본 델리게이트를 사용한 필터링 예제다. 확장 메서드로 필터링 구현Func 타입의 델리게이트를 받아 필터링 조건을 적용하는 확장 메서드 Filter를 작성했다. public static IEnumerable Filter( this IEnumerable productEnum, Func selectorParam) { foreach (Product product in productEnum) { if (selectorParam(product)) { yield return product; } }} 이 메서드는 조건을 만족하는 Prod.. [ASP.NET MVC5] 확장 메서드 확장 메서드로 클래스 기능 확장하기 확장 메서드는 직접 변경할 수 없는 클래스에 새로운 메서드를 추가할 수 있는 편리한 방법이다.이번 포스팅에서는 확장 메서드를 이용해 타사에서 제공받은 Product 객체의 총합을 구하는 기능을 ShoppingCart 클래스에 추가하는 방법을 알아본다. 문제 상황Product 객체는 타사로부터 제공받은 클래스여서 소스 코드를 직접 수정할 수 없다.ShoppingCart 클래스에 담긴 Product 객체들의 **총 가격(Total Price)**을 구해야 한다.이 경우 확장 메서드를 활용하면 간단하게 문제를 해결할 수 있다. ShoppingCart 클래스 생성먼저, Product 객체를 리스트로 담는 ShoppingCart 클래스를 생성한다.ShoppingCart.c.. [ASP.NET MVC5] 자동 구현 속성 C#의 **자동 구현 속성(Auto-Implemented Properties)**은 간단한 getter와 setter를 정의할 때 코드의 간결성을 높여준다. 이번 포스팅에서는 ASP.NET MVC에서 자동 구현 속성을 활용한 모델 작성과, 이를 통해 간편하게 데이터를 다루는 방법을 살펴본다. 자동 구현 속성이란?자동 구현 속성은 다음과 같은 형태로 작성한다 public string PropertyName { get; set; } C# 컴파일러가 자동으로 내부 필드를 생성하고, getter와 setter를 제공한다. 모델에 자동 구현 속성 사용 프로젝트의 Models 폴더에 Product.cs 클래스를 생성한다. Product.csusing System;namespace LanguageFeatures... [ASP.NET MVC5] MVC 패턴과 샘플 프로젝트 MVC(Model-View-Controller) 패턴은 응용프로그램을 세 가지 주요 부분으로 나눠 관리하는 소프트웨어 디자인 패턴이다. 이 패턴은 **관심사의 분리(Separation of Concerns)**를 통해 유지보수성과 확장성을 높이는 데 중점을 둔다. MVC 패턴의 구성 요소모델(Model)사용자가 작업할 데이터를 담거나 표현한다.비즈니스 로직과 데이터 접근 계층을 포함한다.뷰(View)모델의 특정 부분을 사용자 인터페이스로 렌더링하는 데 사용된다.데이터를 화면에 표시하며, 사용자에게 전달될 정보만을 처리한다.컨트롤러(Controller)전달받은 요청을 처리하고, 필요한 모델을 이용해 작업을 수행한다.처리 후 사용자에게 렌더링할 적절한 뷰를 선택한다. 관심사의 분리MVC 패턴의 핵심은 각 역.. [ASP.NET MVC5] 동적 출력 웹 응용프로그램 플랫폼의 핵심 기능 중 하나는 동적 출력이다. ASP.NET MVC에서는 데이터를 뷰에 전달하고, 이를 동적으로 렌더링하는 다양한 방법을 제공한다. 이번 포스팅에서는 ViewBag을 활용해 동적 데이터를 뷰로 전달하는 방법을 알아보자. ViewBag을 사용한 동적 데이터 전달 MVC에서 컨트롤러에서 뷰로 데이터를 전달할 때, ViewBag을 자주 사용한다.ViewBag은 **동적 개체(dynamic object)**로, 임의의 속성을 자유롭게 추가할 수 있다.뷰에서는 ViewBag에 저장된 데이터를 쉽게 사용할 수 있다. 예제: 시간대에 따른 인사 출력using System.Web.Mvc;namespace PartyInvite.Controllers{ public class Hom.. [ASP.NET MVC5] 웹 페이지 렌더하기 이전 포스팅에서는 컨트롤러에서 단순히 문자열을 반환했다. 하지만 웹 애플리케이션의 핵심은 브라우저 요청에 HTML 응답을 생성하는 것이다. 이를 위해 ASP.NET MVC 5에서는 **뷰(View)**가 필요하다. 이번 포스팅에서는 뷰를 생성하고 렌더해보자. 뷰 생성과 렌더링 컨트롤러 코드부터 시작해보자.using System.Web.Mvc;namespace PartyInvite.Controllers{ public class HomeController : Controller { // GET: Home public ViewResult Index() { return View(); } }}return 값을 View()로 변.. [ASP.NET MVC5] 프로젝트 생성과 Hello World 출력하기 프로젝트 생성 1. Visual Studio에서 새 프로젝트를 생성한다.ASP.NET 웹 애플리케이션(.NET Framwork)를 선택한다. 2. ASP.NET Web Application을 선택한 뒤, MVC 템플릿으로 프로젝트를 생성한다. 라우팅ASP.NET MVC 응용프로그램은 URL 라우팅 시스템을 통해 URL과 컨트롤러 및 액션 메서드를 연결한다. 새 프로젝트를 생성하면, RouteConfig.cs 파일에 기본 라우트가 설정되어 있다.기본 라우팅 규칙://Home/Home/Index위 URL들은 모두 HomeController의 Index 액션 메서드로 전달된다. 기본적인 라우팅 설정은 다음과 같다.public class RouteConfig{ public static void Regis.. 이전 1 2 3 4 ··· 8 다음 목록 더보기