ASP.NET MVC - Validation(4)

.NET/MVC Basic 2010. 5. 27. 09:00

이제야 현실을 깨닫고 정신차리기 시작한 쎄스 인사올립니다^^ (하지만, 언제 다시 나사가 풀릴지는...헤헤) Data Annotation과 함께하는 유효성 검사 이번에는 유효성검사에 데이타 어노테이션 밸리데이터(이하, DAV)를 사용해보겠습니다. DAV는 Required 나 StringLength 같은 몇 속성만 추가하여 간단하게 유효성검사를 수행합니다. DAV 속성 사용하기 데이터 어노테이션 모델 바인더는는 밸리데이터 속성으로 유효성을 검사합니다. System.ComponentModel.DataAnnotations 네임스페이스는 다음의 밸리데이터 속성을 포함합니다. Range - 값의 범위를 나타내는거죠. RegularExpression - 정규식에 매치가 되는지 확인하는것이고요. Required - ..

Article Thumbnail
ASP.NET MVC - Validation(3)

.NET/MVC Basic 2010. 5. 26. 09:00

이번 시간은 컨트롤러에 있었던 유효성 검사 로직을 서비스 계층으로 옮기도록 하겠습니다. 관점의 분리가 향후 유지보수에 날개를 달아주길 기대하며... 서비스 계층에 유효성 검사를 일단 기분좋게 웃으면서 시작하시죠. ㅎㅎㅎ 관점을 분리시키자 ASP.NET MVC 어플리케이션을 빌드하게 될때, 컨트롤러 액션들안에 데이터베이스 로직을 두는것은 그렇게 바람직하지는 않습니다. 데이터베이스와 컨트롤러 로직이 혼합되게되면, 향후 유지보수가 더 어려워질것이기 때문이죠.(아니라고 생각된다면, 이번 포스팅은 안보셔도 됩니다ㅡ.ㅡ) 음.. 추천되는 것은 데이터베이스 로직을 리파지터리 계층에 두는 것이죠. 예를들어, TelDirRepository라고 이름지은 간단한 리파지터리가 있습니다. 이 리파지터리는 어플리케이션에서 디비에..

ASP.NET MVC - Validation(2)

.NET/MVC Basic 2010. 5. 25. 09:00

새로운맘으로 다시 시작하는 무책임 쎄스입니다. 그래서!!! 군말없이 바로 시작하도록 하겠습니다. IErrorDataInfo 인터페이스로 유효성검사하기 IErrorDataInfo 인터페이스를 이용하여 유효성 검사를 어떻게 하는지 알아보도록 하겠습니다. 일단 해보자 TelDir 테이블을 생성하고, 엔티티 프레임워크로 모델 클래스를 생성합니다. 그러면, 다음과 같은 엔티티가 표현되겠죠? 하도 많이 해서 지겨우실겁니다-_-;; 다른 예제를 생각해야하는데.. 제가 게을러서; 아이디어도 없고; 컨트롤러 클래스 작성하기 다음의 컨트롤러 소스를 보시죠. using System; using System.Collections.Generic; using System.Linq; using System.Web; using S..

Article Thumbnail
ASP.NET MVC - Validation(1)

.NET/MVC Basic 2010. 5. 24. 09:00

이번 포스팅은 유효성검사에 대해서 나눠보겠습니다. 유효성검사라 하면 필수입력값에는 꼭 데이터를 입력해야하고, 데이터의 타입이나 길이에 맞게 들어오게 체크하는 것을 말하겠죠? 자, 이번시간 ASP.NET MVC 가 알려주는 model state 와 validation 헬퍼 도우미에 대해서 알아보도록 하겠습니다. Model State 알기 모델 스테이트(Model State)는 정확히는 모델 스테이트 딕셔너리라고 해서, 유효성 에러들을 표시하기위해 사용됩니다. 예를들어, 다음의 소스를 보면 데이터베이스의 TelDir을 Add 하기 전에 TelDir의 속성들의 유효성을 체크합니다. 유효성 검사중에 이 프로퍼티들에서 fail이 나면 model state dictionary(컨트롤러 클래스의 ModelState를..

Article Thumbnail
ASP.NET MVC - Model(2)

.NET/MVC Basic 2010. 4. 4. 07:00

이렇게 글쓰면서 이런 경험 처음이야~ 를 느낀 저는.. 제글을 읽는 모든 분에게 고합니다;;; 제 글을 봐주시는건 참으로 고맙습니다. 허나, 제 글을 본인글처럼해서 블로그에 올리신다면.. 저는 어떻게 해야할까요? 그러지말아주세요. 꼭 부탁드립니다. 찔리시는 분이 있다면 삭제바랍니다. 삭제를 계속 안하신다면 신고해야겠죠? 이런기분 훌훌털고 다시 집중하도록 하겠습니다. 지난 시간에 이은 모델 생성이야기 두번째 글입니다. 이번시간은 LINQ to SQL을 이용해보도록 하죠^^ LINQ to SQL로 모델클래스 생성하기 지난시간 '엔티티 프레임워크로 모델 생성하기' 때에 데이터베이스와 테이블을 생성하였습니다. 그것을 그대로 사용하겠습니다. 궁금하시면 지난 포스팅을 참고하여주세요. LINQ to SQL 클래스 생..

Article Thumbnail
ASP.NET MVC - Model(1)

.NET/MVC Basic 2010. 3. 31. 09:00

이번 포스팅은 모델에 대해서 알아보도록 하겠습니다. 어서 시작하죠^^ 엔티티 프레임워크로 모델 클래스 생성하기 Microsoft Entity Framework는 O/RM 툴로서 자동으로 데이터베이스의 데이터 접근 계층을 생성해줍니다. 음.. 그러니까 데이터 액세스를 하는 클래스를 생성하는데 힘을 뺄 필요가 없게하는거죠. 일단, 간단한 어플리케이션 개발을 통해 알아가보도록 하시죠~ TelDir 데이터베이스 만들기 제 포스트 중 ASP.NET MVC - View(3) 를 참고하셔서 우선 만드시죠. 그때는 뷰에 중점을 뒀기 때문에 정말 그냥 보여주는 것까지만 해봤고요, 지금 시간은 그 이후에 작업을 해볼겁니다. insert, update, delete 작업이요. select는 해봤고요. ㅎㅎ 디비 생성을 마치..

Article Thumbnail
ASP.NET MVC - View(4)

.NET/MVC Basic 2009. 12. 11. 19:15

활기차게 시작해보겠습니다. 하나하나의 글이 성공으로 가는 지름길임을 믿으면서.. TagBuilder 클래스를 이용한 HTML도우미 만들기 ASP.NET MVC 프레임워크에는 HTML 도우미를 만드는 TagBuilder 클래스를 가지고 있습니다. 이름에서도 풍기듯이 이 클래스는 HTML 태그들을 쉽게 만들수 있게 도와줍니다. 자, 이제 이 TagBuilder 라는 놈을 만나러 가볼까요? TagBuilder 클래스 살펴보기 TagBuilder 클래스는 당연히 System.Web.Mvc 네임스페이스에 포함되어있는 클래스고, 5개의 메쏘드를 가지고 있습니다. 1. AddCssClass() - 태그에 새 class="" 속성 추가하기 2. GenerateId() - 태그에 id 속성 추가하기. 이 메쏘드는 자동적..

Article Thumbnail
ASP.NET MVC - View(3)

.NET/MVC Basic 2009. 12. 2. 07:21

갑자기 생각나네요. 제 좌우명.. '일신우일신' 매일매일 새로워지고 발전된 모습으로 살아가려는 몸부림의 일환으로 맘속에 담아두고 있는 말이죠. 근데 다른쪽 마음에서는 계속 쉬라고, 편히 있으라고, 괜찮다고,,, 성공을 향해 달려야 하는 제게 앉아 있으라고, 누워 있으라고, 자라고,,, 아흐~ 이놈에게 이겨야하는데 쉽지가 않네요. 어쩌다가 한번씩 이기는 형편이죠. 머.. 지금 이렇게 컴터앞에 앉아 글을 쓰고있는건 제가 이겼다는 증거겠죠? --; 전 위너입니다. 이겼습니다. 그냥 제 자신에게 나약해지지말자라는 각오를 위한 잡소리였습니다.ㅎㅎ 다시한번 새로운 마음으로 시작해 보도록 하죠^^ 이번에는 데이터베이스의 테이블에 있는 값들을 HTML로 출력해보겠습니다. 준비되셨죠?^^ DB 데이터를 테이블에 나타내기..

Article Thumbnail
ASP.NET MVC - View(2)

.NET/MVC Basic 2009. 11. 30. 23:26

안녕하셨죠? 지난번에 이은 뷰에대해 알아보기. 두번째 시간이네요. 이거 새로운 마음가짐으로 시작한지 얼마안되어 또 흩으러진 모습을 보였네요^^;; 오늘 제 친한벗이 또 한번 제게 채찍질(?)을 해댔죠. 고마움으로 받아들였습니다. ^^ 역시 항상 함께해주는 친구는 좋네요 ㅎㅎ 잡담은 그만하고 이제 시작할까요? 지난번에 HTML 도우미에 대해서 더 알아보기로 했었죠? HTML 도우미 만들기 HTML 도우미의 이점은 우리가 일반적으로 HTML 페이지를 만드는데 타이핑으로 쓸데없이(?) 쳐대야하는 태그들의 많은 양을 감소시켜줍니다. 예로 다음의 코드를 살펴보겠습니다. 위처럼 작성하는 것 대신에 다음과 같이 작성할 수 있습니다. 역시 이름그대로 우리의 개발을 빠르게 도와줄수 있는 메쏘드네요.^^ ASP.NET M..

Article Thumbnail
ASP.NET MVC - View(1)

.NET/MVC Basic 2009. 11. 23. 02:08

오랜만에 글을 쓰네요^^; 오늘일을 내일로 미루고미루다보니 ㅎㅎ 이렇게 되었네요;; 깊이깊이 반성하고 있습니다. 제 블로그 명이 What Is The Fun? 이었는데요 이제 개인적으로 재미도 찾았고 해서 블로그 명도 바꾸고(성공으로 가는 발자취) 디자인도 변경했습니다^^ 새로운 맘가짐으로 다시 시작해보려고요. 자~ 시작해볼까요? 뷰 알기 우리는 애플리케이션은 표현로직과 업무로직을 분리하는 것이 좋다는 것을 알고 있습니다. 이렇게 하지 않으면 이 두 로직이 이리저리 꼬이게되고(움찔--;) 약간의 수정조차 힘들게되는 유지보수의 어려움이 초래되죠. ASP.NET MVC 에서는 이를 강제적으로 분리합니다. 뷰는 단지 컨트롤러의 출력만 담당하게 됩니다. 최종적으로 브라우저의 보여줄 HTML 만 렌더하는 작업만 ..

Article Thumbnail
ASP.NET MVC - Controller(2)

.NET/MVC Basic 2009. 11. 11. 20:55

지난 포스팅에서 말씀드린대로 이번에는 컨트롤러와 액션을 생성하는 법에 대해서 이야기를 나누려합니다. 컨트롤러의 생성 간단한 방법으로 컨트롤러를 생성해보겠습니다. 솔루션 탐색기의 Controllers 폴더에서 마우스 오른쪽 버튼 클릭 > Add > Controller 메뉴를 클릭합니다. 다음 그림과같이 Add Controller 라는 창이 뜹니다. 친철하게 이름만 변경하게끔 유도하네요. Default1을 Example 로 변경 후 Add 버튼을 클릭하도록 하겠습니다. 여기서 명심할 것은 Controller는 무조건 이름뒤에 Controller라고 붙여줘야합니다. 그래서 컨트롤러 생성시 이름을 줄때는 Example 이 아닌 ExampleController 로 생성하도록 합니다. 규약이니 반드시 지켜야겠죠?^..

Article Thumbnail
ASP.NET MVC - Controller(1)

.NET/MVC Basic 2009. 11. 10. 07:06

예제를 진행하기에 앞서 이번에는 MVC에서 C를 담당하고 있는 컨트롤러에 대해 얘기를 나누려 합니다.^^ 군소리 없이 빠르게(?) 진행하도록 하겠습니다. 컨트롤러? MVC에서의 컨트롤러는 ASP.NET MVC로 만들어진 웹사이트에서의 요청건에 대한 응답을 담당합니다. 개개의 요청은 개개의 컨트롤러와 매핑이 되죠. 예를 들어 다음의 URL http://localhost/Product/Index/3 로 요청을 하면 ProductController를 호출하게 됩니다. ProductController가 이 요청에 대한 응답을 해야하죠. ProductController의 내용을 잠깐 보게되면 Controller 클래스에서 파생된 간단한 클래스네요. ASP.NET MVC 웹사이트의 요청에 응답해줄 컨트롤러를 상속받..

Article Thumbnail
MVC - 그 첫시작

.NET/MVC Basic 2009. 11. 6. 07:56

MVC가 뭐지? 풀어쓰면 Model View Controller 입죠. 이제 다 아셨나요? 그럼 이것으로 포스팅을 맞치도록 하겠습니다.^^; 요렇게 마무리하면 안되겠죠? 자.. 그럼.. 애플리케이션은 사용자환경, 비즈니스 로직, 데이터모델로 구성이됩니다. 뭐. 예를들면, 우리가 흔히보는 지금과 같이 제가 글을쓰고 있는 페이지.. 라디오버튼도 보이고요, 콤보박스, 드롭다운리스트, 뭐 이거저거 있네요. 이런 사용자 환경요소와 사용자의 입력에 대응하는 로직, 데이터모델(라디오버튼, 콤보박스에 포함된 데이터겠죠?)을 갖습니다. 그런데 저처럼 무식한 놈은 이러한 것들을 다 몽뚱그려서 한데 묶어 개발을 하게되죠^^; 이게 좀 문제가 된다는 겁니다.(전 여태껏 힘들게 개발하고 있었다는거죠.. 후~) 쉬운(?) 문제점..