.NET/ASP.NET

    [ASP.NET Core] - 10. Shopping mall project 만들기 - 5 (2nd)

    [ASP.NET Core] - 10. Shopping mall project 만들기 - 5 (2nd)

    ASP.NET Core Identity system에서 제공하는 인증과 권한은 ASP.NET Core platform및 개별 application framework에 깔끔하게 통합됩니다. 이를 이용해 Admin라 불리는 단 하나의 사용자만이 application의 관리자기능에 인증및 접근할 수 있도록 하는 기본적인 보안 설정을 만들것입니다. ASP.NET Core Identity는 application및 data로 접근가능한 권한 및 사용자 인증을 위한 더 많은 기능을 제공하고 있으며 그것 자체로 하나의 큰 framework이기 때문에 여기서는 기본적인 기능만을 살펴보려고 합니다. 이 글의 목표는 사용자가 application의 민감한 부분에 접근하게 되는 것을 방지하기 위해 무엇이 필요한지를 확인하는데..

    [ASP.NET Core] - 9. Shopping mall project 만들기 - 4 (2nd)

    [ASP.NET Core] - 9. Shopping mall project 만들기 - 4 (2nd)

    고객이 Product를 주문하기까지의 기능은 모두 완료되었습니다. 그러나 아직 한 가지 더 해결해야 할 문제가 남았는데 그것은 관리자가 주문과 Product를 어떻게 관리할 수 있냐 하는 것입니다. 이를 해결하기 위해 관리자 기능을 추가할 텐데 이번 예제에서는 Blazor를 사용하여 해당 기능을 추가할 것입니다. Blazor는 client-side JavaScript code와 ASP.NET Core에 의해서 실행되는 server-side code를 결합하는 것으로 영속적 HTTP 연결(persistent HTTP connection)을 통해 연결됩니다. Blazor에 관해서는 추후에 상세히 다루겠지만 분명히 알아둬야 할 것은 Blazor가 모든 Project에 적합한 것은 아니라는 것입니다. Blazo..

    [ASP.NET Core] - 8. Shopping mall project 만들기 - 3 (2nd)

    [ASP.NET Core] - 8. Shopping mall project 만들기 - 3 (2nd)

    이제 Cart까지 기능을 완성하였는데 지금부터는 외형적 기능이 아닌 내부적인 개선에 집중해 보고자 합니다. 1. Service를 통한 Cart model 개선 지난번에는 Cart를 위해 Cart Model을 정의하였으며 Session기능을 통해 어떻게 이 개체를 저장할 수 있는지를 살펴보았습니다. Cart는 예제 Project에서 무엇보다 중요한 기능이며 지속적인 관리는 Session data로서 저장하고 가져오는 동작을 수행하는 Cart Razor Page를 통해 이루어져야 할 것입니다. 예제에서의 접근방법에 대한 문제는 다른 Razor page나 Controller에서 이를 사용하고자 할 때 Cart개체를 저장하고 가져오는 Code가 중복될 수 있다는 것입니다. 이를 개선하기 위해 ASP.NET Co..

    [ASP.NET Core] - 7. Shopping mall project 만들기 - 2 (2nd)

    [ASP.NET Core] - 7. Shopping mall project 만들기 - 2 (2nd)

    Shopping mall project 만들기 - 2에서는 'Shopping mall project 만들기 - 1'에 이어서 CompuMall에 Navigation과 Cart기능을 추가하고자 합니다. 1. Navigation 만들기 사용자가 mall에 방문했을 때 Product를 Category별로 나열해 볼 수 있으면 원하는 제품을 찾기에 훨씬 유용할 것입니다. 이를 위해 다음 3가지 단계를 거쳐 해당 기능을 추가하고자 합니다. HomeController의 Index method를 변경하여 repository에서 Product 개체를 filter할 수 있도록 할 것입니다. URL scheme를 더 친화적으로 개선할 것입니다. Site의 한쪽 편에 표시할 Category List영역을 만들고 현재 선택한..

    [ASP.NET Core] - 6. Shopping mall project 만들기 - 1 (2nd)

    [ASP.NET Core] - 6. Shopping mall project 만들기 - 1 (2nd)

    이제까지 ASP.NET Core 개발에 필요한 여러 사항들을 알아보았으므로 이를 토대로 간략한 Project를 하나 진행해 볼 것입니다. Project는 Comuter 부품을 판매하는 Shopping mall로 사용자가 찾아볼 수 있는 제품과 제품의 category 그리고 특정 상품을 담아 둘 수 있는 Cart, 주문현황의 상세를 볼 수 있는 Checkout 기능을 만들어 볼 것입니다. 또한 Shopping mail자체를 관리하는 관리자기능도 같이 추가해 보고자 합니다. ASP.NET Core를 사용하여 가능한한 실질적인 Application을 만들어 봄으로서 Application이 만들어지는 전체적인 개념을 이해하고자 하지만 ASP.NET Core가 주된 주제이므로 Database와 같은 외부 syst..

    [ASP.NET Core] - 5. 단위 Test (2nd)

    [ASP.NET Core] - 5. 단위 Test (2nd)

    단위 Test는 Application의 개별적 요소를 독립적으로 분리하여 Test를 수행하는 것으로 Application의 오류를 최소화하는데 중점을 둡니다. ASP.NET Core는 단위 test를 쉽게 만들 수 있도록 설계되었으며 다양한 단위 test framework를 지원합니다. 1. Project 준비 단위 test를 사용해 볼 Project를 생성하기 위해 PowerShell을 열고 적당한 위치에서 아래 명령을 내려줍니다. dotnet new globaljson --sdk-version 8.0.202 --output UnitTest/UnitTest dotnet new web --no-https --output UnitTest/UnitTest --framework net8.0 dotnet new..

    [ASP.NET Core] - 4. 개발도구 사용하기 (2nd)

    [ASP.NET Core] - 4. 개발도구 사용하기 (2nd)

    이번 글에서는 Microsoft가 개발에 사용할 수 있도록 제공하는 개발도구에 대해 알아볼 것입니다. 현재 작성 중인 대부분의 글에서도 .NET SDK에서 제공하는 command-line 도구와 그 외 Microsoft가 배포하고 있는 추가적인 도구를 사용할 것입니다. 이렇게 하는 가장 큰 이유는 사용 중인 editor나 IDE와는 관계없이 ASP.NET Core개발에 필요한 모든 기능을 제공하면서 일관성 있는 결과를 얻을 수 있기 때문입니다. 특히 Visual Studio Code는 사용자 interface를 통해 개발도구의 접근성을 제공하고 있지만 ASP. NET Core개발에 필요한 모든 기능을 지원하지는 않고 있습니다. 아래표는 일반적인 상황에서 사용하는 명령을 나타내고 있습니다. 상황 명령 Pr..

    [ASP.NET Core] - 3. ASP.NET Core Application 예제 (2nd)

    [ASP.NET Core] - 3. ASP.NET Core Application 예제 (2nd)

    설명적인걸 우선시하기보다는 간단한 예제 project를 직접 만들어 봄으로서 전체적인 맥락을 우선 살펴보고자 합니다. 그 이후부터 각각에 대한 부분을 좀 더 자세하게 살펴보면 훨씬 이해하기 쉬울 것입니다. 1. 상황 설정 예제로 만들어볼 application은 대략 아래 기능을 가진 식당 예약 program이 될 것입니다. 식당소개 화면 예약접수 예약 현황 보기 2. Project 생성 PowerShell을 열고 Project를 생성할 위치(folder)로 이동한 다음 아래 명령으로 새로운 Project를 생성합니다. dotnet new globaljson --sdk-version 8.0.202 --output RestaurantReservations dotnet new mvc --no-https --o..