잠깐 ASP.NET MVC에 대해 정리를 하고 넘어가볼께요.

ASP.NET MVC는 많은사람들이 알고 있는 MVC패턴을 논리적/ 물리적으로 확정적으로 적용한 모델! 이라고 합니다.

또한 MVC가 (저도 그랬지만) ASP.NET의 발전된 모습이 아니라 다른 형태의 ASP.NET일 뿐입니다.

MVC와 구별되게. ASP.NET은 Classic ASP.NET이라고 하더라구요.

MVC는 웹 응용프로그램을 3개의 컴포넌트 역할로 구분합니다.

Model - 비지니스 로직수행, 데이터/ 정보 그 자체를 의미  (ASP.NET에서의 DataSet같은 녀석)

 

View - 모델의 로직이 수행된 결과를 노출, 화면에 출력하는 역할을 담당(.aspx나 .ascx페이지)

 

Controller - 모델과 뷰 사이의 중재자, 사용자로부터 입력/ 조작등에 대한 처리를 담당(.aspx.cs)




ASP.NET Classic과 ASP.NET MVC의 차이를 봐볼께요. 

   Classic ASP.NET ASP.NET MVC 
 Request Model PostBack   REST
 Data Model  Code-Behind  MVC
 MVC Model  MVC 1  MVC 2
 View -> Controller  Yes  No

여기서 View -> Controller는 View에서 COntroller로으 접근가능성에 대한 이야기 입니다. 
MVC는 기본적으로 View에서 Controller로의 접근이 안됩니다.
(물론 가능은 한데. 그렇게 하면 굳이 MVC를 쓰는 이유가 없다고 하더라구요)
 
 Classic ASP.NET   ASP.NET MVC 
 Page Controller  컨트롤러  Front Controller
 각각의 페이지를 처리하는
 개별 컨트롤러
   모든 HTTP 요청을 저리하는
 하나의 컨트롤러
 높음  기반프레임워크 의존도  낮음
 높음  모듈간 결합도  낮음
 낮음  컨트롤러 복잡도  높음
 분산  비지니스 로직  통합
 빠르고 간편한 개발(상대적으로)  개발 타입  구조적이고 체계적인 개발
 리소스 요청  URL 요청의 의미  컨트롤러 선택

이것만 봐도. MVC가 Classic ASP.NET보다 무조건 좋지는 않다는걸 알수 있어요.
어떤것이든 그렇겠지만.

상황에 따라 맞는걸 쓰는게 제일 좋죠~

출처 : 서동진님의 ASP.NET MVC 강의(링크는 동진님 블로그로ㅋ)
by 피요히코~ 2009. 4. 5. 23:18

이제 사용해볼 DB를 추가해 볼께요.

APP_DATA에서 새항목 만들기 한후에


SQL server 데이터베이스를 기본 이름으로 만들께요
그리고. 테이블을 만듭니다.


간단하게
idx/ Name/ Content/ RegDate를 만들었구요.
idx는 기본키로. 테이블명은 디폴트로 했습니다.

이제 LINQ to SQL클래스를 Model 폴더에 추가합니다.


역시나 이름은 디폴트입니다.

이제 서버탐색기를 열어서 좀전에 추가한 테이블을 추가할께요.


그냥 사용할 테이블을 화면으로 끌어오면 끝!
(참 쉽죠잉~)

이렇게만 하면 알아서 이거저거 만들어 줍니다.
(그게 정확히 뭔지는 나중에  LINQ 강좌 듣고 다시.. -_-ㅋ)
(Model밑에 만들어놓은 DataClasses1밑에 파일두개를 보면 되요~)

자. 여기까지 해서. DB를 사용할 준비까지 됐네요.

출처 : 서동진님의 ASP.NET MVC 강의(링크는 동진님 블로그로ㅋ)
by 피요히코~ 2009. 4. 4. 15:00

새프로젝트 만들기를 해서.
ASP.NET MVC Web Application 을 선택하고
이름을 지어주고하면 기본적인 MVC 프로젝트를 만들수 있네요. (간단하구만요)


프로젝트 생성후의 솔루션탐색기 화면
MVC니 당연하겠지만.
Controllers/ Models/ Views 폴더가 있군요.


전 아무것도 한게 없는데 이런 화면을 만들어 주네요.
으허허.

출처 : 서동진님의 ASP.NET MVC 강의(링크는 동진님 블로그로ㅋ)
by 피요히코~ 2009. 4. 4. 14:29

 MVC를 다운받고 싶다면.

그리고 영어가 자신있다면..

http://www.asp.net/mvc/


by 피요히코~ 2009. 4. 4. 12:49

어처구니 없는 실수지만.
가끔 하는 실수..

STRING에서 메소드를 사용하려고 할때
(가령 SPLIT, TRIM, REMOVE..)

단순히 String.Trim() 을 한다고 해서 해당 string값이 변경되는게 아니다..
다시 그 string에 넣어줘야만 적용이 되는것이다... 라는..

아주 단순하고 쉬운건데
계속 헷깔려 하다가 결국 디버깅하다가 발견하곤 한다. -_-ㅋ

한심한 나...
ㅠ_-
by 피요히코~ 2009. 3. 9. 15:24

제네릭(C# 프로그래밍 가이드)

업데이트: 2007년 11월

제네릭이 2.0 버전의 C# 언어와 CLR(공용 언어 런타임)에 추가되었습니다. 제네릭을 통해 .NET Framework에 형식 매개 변수라는 개념이 처음 소개되었습니다. 형식 매개 변수를 사용하면 클라이언트 코드에서 클래스나 메서드를 선언하고 인스턴스화할 때까지 하나 이상의 형식 지정을 연기하는 클래스와 메서드를 디자인할 수 있습니다. 예를 들어, 다음과 같이 제네릭 형식 매개 변수 T를 사용하면 런타임 캐스트나 boxing 작업에 따른 비용이나 위험을 초래하지 않은 채 다른 클라이언트 코드에서 사용 가능한 단일 클래스를 작성할 수 있습니다.


public class GenericList
{
	void Add(T input) { }
}
class TestGenericList
{
	private class ExampleClass { }
	static void Main()
	{
		// Declare a list of type int.
		GenericList list1 = new GenericList();

		// Declare a list of type string.
		GenericList list2 = new GenericList();

		// Declare a list of type ExampleClass.
		GenericList list3 = new GenericList();
	}
}

  • 제네릭 형식을 사용하면 코드 재사용, 형식 안전성 및 성능을 최대화할 수 있습니다.

  • 제네릭의 가장 일반적인 용도는 컬렉션 클래스를 만드는 것입니다.

  • .NET Framework 클래스 라이브러리에는 System.Collections.Generic 네임스페이스의 여러 가지 새로운 제네릭 컬렉션 클래스가 포함되어 있습니다. 이러한 클래스는 가능한 경우 항상 System.Collections 네임스페이스의 ArrayList 같은 클래스 대신 사용해야 합니다.

  • 고유한 제네릭 인터페이스, 클래스, 메서드, 이벤트 및 대리자를 만들 수 있습니다.

  • 특정 데이터 형식의 메서드에만 액세스하도록 제네릭 클래스를 제한할 수 있습니다.

  • 리플렉션을 사용하면 런타임에 제네릭 데이터 형식에 사용되는 형식과 관련된 정보를 얻을 수 있습니다.



출처:MSDN
by 피요히코~ 2009. 2. 27. 13:25
by 피요히코~ 2009. 2. 26. 18:47

TextBox ID : txtSearch
Button ID    : btnSearch

txtSearch.Attributes.Add("onkeypress", "if (event.keyCode == 13) {" + Page.GetPostBackEventReference(btnSearch) + "; return false;}");

이렇게 하면
TextBox에 포커스가 가 있을때 엔터를 누르면 해당 버튼의 클릭 이벤트가 발생한다.


참고사이트 KOXO
by 피요히코~ 2009. 2. 26. 16:10

 

1 27일 개최된 Microsoft TechDays Japan 2009 첫날 세션 “Silverlight의 미래는 오노 모토히사가 나와 Silverlight 2의 상세한 기능과 앞으로 추가될 기능들에 대해서 소개하였다.

 

Silverlight는 지금 어떻게 되어 있는건가?

Silverlight 2 2008 10월에 정식 릴리즈되었다. .NET 프레임웍의 부분집합형태로서 .NET 언어로 개발할 수 있게 된 것 외에 Silverlight Tools for Visual Studio 2008 SP1에 의해 VS상에서 비주얼한 개발도 되고 여러 컨트롤 컴포넌트도 표준으로 준비되어 기존 개발 노하우를 살려 효율적으로 개발할 수 있게 되어 실무에서 이용할 수 있게 되었다고 말하였다. 실제 북경 올림픽이나 오바마 대통령 취임식 중계등의 이슈도 나오기 시작하였다.

차기 버전인 Silverlight 3에서는 H.264/ACC코덱, 3D렌러딩, GPU 이용 지원이 예정되어 있다. 그 외, 리치한 데이터바인딩 기능, 컨트롤 확대, Linux대응(Monolight)등 한층 더 표현력 향상이 기대된다. 최근 Cloud 컴퓨팅이 주목받으면서 이에 알맞은 클라이언트쪽 성능향샹도 기대된다. 여기서 동향을 파악하고 싶은 RIA기술의 하나라고 말할 수 있을 것이다.

 

Silverlight 컨트롤

Silverlight 2에서는 버튼, 하이퍼링크, 체크박스, 데이터그리드 등 대표적인 응용프로그램에 이용되는 컴포넌트를 표준으로 제공하고 있다.

또한, Silverlight 3에 포함될 현재 개발중인 컨트롤은 Silverlight Toolkit으로 CodePlex에 공개되고 있다. 소스코드 이외, 문서나 샘플, 유닛테스트도 공개되어 있기 때문에, 실제로 다운로드하여 테스트해보는 것이 좋다. 정기적으로 릴리즈와 고객의 피드백을 통해 안정적인 상황에서는 자주 이용되는 것은 코어런타임으로서 포함되고 그 이외는 SDK Tools로서 릴리즈된다고 한다.

 

 fig03.jpg

소스코드 주석에 있는 <QualityBand> Stable이면 안정화버전, “Mature”라면 리테일버전

 fig04.jpg


일본어 지원하는 샘플페이지(한글페이지는 언제쯤 ㅠ_)

 

Silverlight Toolkit의 각 컨트롤

새로운 컨트롤은 WPF로부터 이식한 컨트롤과 Silverlight 독자적인 컨트롤 2가지로 나누어진다. 전자는 컴포넌트 레이아웃을 처리하는 DockPanel이나 컨텐츠를 전개하고 포함시키는 Expander, 네스트된 계층구조를 표시하는 TreeView등이 있다.

fig05.jpg 


DockPanel HTML <div>태그에 의한 레이아웃과 같은 배치가 가능


fig06.jpg
Expander,
아이콘을 클릭하면 4개 방향으로 전개할 수 있는 컨테이너

 

후자의 경우 입력내용을 보완하는 텍스트박스 AutoComplete나 다양한 그래프 표시가 가능한 Charting등이 있다. 컨트롤 개발팀은 WPF Silverlight를 같이 하고 있어, 이런 컨트롤의 WPF대응판도 준비중이라고 한다.

 fig07.jpg


AutoComplete, 입력보완 텍스트박스


fig08.jpg
Charting,
공통 데이터포멧으로 여러형태의 표를 표시

 

또한, 응용프로그램 외형 통일이나 변경이 쉽게 하는 스타일도 지원되어 현재 9가지 테마가 제공된다. XAML상에서 지정하는 것만으로 간단하게 테마를 적용할 수 있다.

 fig09.jpg


Theming, 스타일 통일이나 변경이 쉽게

 

Silverlight의 미래 및 모바일 대응

Silverlight 방향성으로서 많은 사용자들에게 사용되는 Reach라는 사용자 경혐을 제공하는 Rich 2가지 축이 되는 모바일 대응에 대한 내용도 소개되었다. Silverlight 2를 기반으로 Silverlight 2 for mobile CTP가 현재 2009년 제1/4분기에 나올 예정이고 2009년내에 릴리즈될 예정이라고 한다. 당초 탑재될 예정인 기기로는 Windows Mobile Nokia S60이라고 한다.

실제 에뮬레이터를 이용한 개발중인 데모를 봤지만, 에뮬레이터에서는 응용프로그램 시작에 시간이 다소 걸렸지만, 3D처리나 동영상 재생, 웹서비스 이용등은 PC의 브라우저에서 실행하는 것과 차이가 없었다. 실제 실용적인 레벨까지 개량된 것 같다.

추가로 개발언어 사용구분에 대해서는 가벼운 기능으로 실행 시간을 짧게 하고 싶은 경우 자바스크립트로 처리하고 고급기능을 이용하고 싶은 경우 실행시간이 좀 걸리지만, .NET 프레임웍 기반으로 구현하면 좋다고 한다.

 fig10.jpg


에물레이터와 PC브라우저의 3D이미지 표시



출처: Codezine

익스프레션 웹 사용자카페: http://cafe.naver.com/expressionweb

by 피요히코~ 2009. 2. 26. 11:51
by 피요히코~ 2009. 2. 26. 01:09