2008.07.16 08:10



ASP.NET MVC Patten에 대해서 설명하는 동영상입니다.
 
신고
2008.07.09 13:42
사용자 삽입 이미지
MVC모델에 관해서 한 번쯤 들어 보신 분들이 많을 것 같습니다. 사실 MVC 모델이라는 것은 난데없이 하늘에서 뚝 떨어진 기술이 아니라 꽤 오래된 기술중에 하나 입니다. MVC모델이 제일 처음 나타난 것은 언어학 개론에서나 들어 본듯한 Small talk라는 언어에서 부터 였습니다.  하나의 프로그래밍 모델을 Model, View, Controller로 구별해서 코딩을 하면 전체적인 복잡성이 해소되고 유지 보수 및 테스트에 있어서 탁월한 효과를 나타 낼 것이라는 생각에서 시작한 것 같습니다.
 다시 말해서 Software 산업에서 일반화된 기술중에 하나이며 오랫 시간 동안을 거치면서 여러 언어들로 구현되고 입증된 패턴중에 하나라고 말 할 수 있습니다.

MVC 모델에서 이야기 하고 있는 Model, View, Controller의 역할을 다음과 같이 정의할 수 있습니다.

- Model: 일반적으로 해당되는 Application의 주요 데이터 모델을 이야기 한다. 특정 사용자 정의 클래스가 될 수도 있고 혹은 Entity가 될 수도 있다.
-View: 직접 데이터를 노출하기 위한 부분으로 이 부분을 통해서 실제 데이터를 노출하고 사용자와 Interface를 할 수 있게 하는 실질적인 UI부분을 말한다.
-Controller: Model과 View를 연결하거나 혹은 데이터를 가지고 와서 Model에 채워 넣거나 혹은 사용자가 입력한 데이터를 실제로 반영하는 등 실질적인 로직이 모두 포함되어 있는 곳이다.

사실 MVC의 가장 큰 테마는 UI와 논리 코드를 구분하는데 있습니다. UI 와 논리적인 코드가 함께 혼용되어 있을 경우에 유지보수와 단위 테스트가 매우 어렵고 난해해 지는 문제가 있습니다. MVC는 이와 관련한 문제를 해결할 수 있는 적절한 해법을 제공해주고 있는 점에서 높이 평가되고 있습니다.
 웹과 관련된 개발환경에서 MVC 모델이 각광받고 있는 이유는 웹이라는 환경이 온 갖 기술이 범벅되어 있기 때문인 이유가 가장 클 것입니다. 기본적으로 웹과 관련된 개발을 하기 위해서는 HTML과 Java Script는 물론이고 기반되는 CGI, ASP.NET(or ASP), PHP, JSP와 같은 웹 프로그래밍 기술, 그리고 N-Tier 구조나 Database에 이르기 까지 어느 하나 만만한 것이 없습니다. 그걸 패턴과 모델로 잘 구별해서 정리할 수 있는 MVC는 처음부터 웹을 위해서 설계해 놓은 것 같이 깔끔한 구조가 웹과 잘 맞아 떨어집니다.

 ASP.NET에서도  MVC모델을 사용할 수 없었던 것은 아니지만 공식적으로 ASP.NET에서 MVC를 지원하는 것은 이번이 처음입니다. 앞으로 ASP.NET과 관련된 강좌를 몇 회 진행할 예정입니다. ^^
신고
2008.06.18 11:46
WCF Development Improvements

.NET 3.5 SP1에서는 WCF와 관련된 개선사항도 꽤 많이 있다.
  • Hosting 되고 있는 응용 프로그램이 상당히 유연해 졌으며 서비스의 확장이 용의해 졌습니다.
  • WCF contract에서 ADO.NET의 Entity Framework이 사용할 수 있게 수정되었습니다.
  • Data Contract seializer, UriTemplate, WCF web programming model의 API 변경
  • Visual Studio 2008 SP1의 testClient 개선
  • WCF 서비스 프로젝트에서 Visual Studio 2008 SP1에서 Hosting Wizard 기능이 추가되었습니다.
  • 파샬 트러스터의 디버그 기능이 향상되었습니다.

VB and C# Improvements

VB와 C# 개발팀도 몇 가지 개선 사항을 포함 시켰다고 합니다.

Visual Basic
Visual Basic project 에서 "XML to Schema" 아이템을 추가할 수 있게 되었습니다. 흔히 우리가 API등을 개발할 경우에 XSD Schema를 많이 다루게 되는데 이럴 경우 유용하게 사용할 수 있을 것 같습니다. 큰 변화라고 하면 여러 가지 XML 소스로 부터 XSD Schema Set을 생성할 수 있는 마법사가 제공되는 점입니다.
이와 관련한 자세한 내용은

http://msdn.microsoft.com/en-us/vbasic/bb840042.aspx 여기서 볼 수 있습니다.

물론 지금 버전의 XSD 브라우저도 VS2008 SP1에 포함되어 있어서 XSD Schema Set을 검색할 수 있게 되어 있지만 최종적으로  SP1이 출시될 때에는 "XML Sehema 이동"과 같은 기능을 통해서 XSD 브라우저를 열어서 VB 프로젝트에서 Schema Set을 표시할 수 있게 된다.

C#
C#은 시멘틱 코드 이슈와 같이 컴파일 이전에는 확인할 수 없었던 코드 이슈를 바로 출력할 수 있게 되었다.

사용자 삽입 이미지
<그림1>정확하지 않은 타입에 대한 이슈 표시
사용자 삽입 이미지
<그림2> LINQ와 관련된 이슈의 출력

LINQ는 와 관련되어서 Result View를 Debug 창에서 볼 수 있게 되었습니다. Debug 창에서 노드를 확장해서 LINQ문장을 평가하고 구체적인 내용을 확인할 수 있게 되었습니다.

Team Foundation Server Improvements

Team Foundation Server와 관련된 변경 사항은 아래 주소를 참조하시면 됩니다.
http://blogs.msdn.com/bharry/archive/2008/04/28/team-foundation-server-2008-sp1.aspx

정리
.NET Framework SP1 은 많은 변화가 있었고 단순한 버그 수정 수준이 아닌 새로운 요구사항들을 충실하게 반영한 결과물로 나온것 같습니다. SP1은 올 여름에 정식으로 나올 것 같고 영문 판에 이어서 곧 한글 판도 함께 출시 될 것 같습니다.

여기와 관련해서 오프라인 세미나를 진행했었는데 관련 웹 케스트를 보시려면
http://www.microsoft.com/korea/eseminar/content.aspx?page=1&num=1318&CateID=&searchstring=&category= 여기에서 볼 수 있습니다.

감사합니다.
사용자 삽입 이미지

신고
2008.06.17 11:30
Data Development Improvements

.NET Framework 3.5의 경우 새로운 개념의 Database와 관련한 기능들이 많이 포함되어 있습니다.
ADO.NET도 Entity Framework이 포함되어 있는 등 구조적인 변화가 많이 있습니다. 물론 기존에 활용하던 ADO.NET은 그대로 제공됩니다. Entity Framework의 경우는 Entity Data Model의 정의나 코딩이 가능하도록 제공되는 기능으로 관련된 Entity Designer가 함께 포함되어 있어서 모델링을 지원하게 되어 있습니다.

ADO.NET Entity Framework and LINQ to Entities:

ADO.NET Entity Framework 및 Visual Studio 2008 Entity Framework Designer는 상당한 유연성을 가지고 있어서 Database에 종류에 상관없이 동일한 방법으로 사용할 수 있게 되어 있습니다. 알려진 바에 따르면 (Orcale, DB2, MySQL, PostgreSQL, SQL Lite, VistaDB, Informix, Sysbase 등등) 모두 지원된다고 한다.
사용자 삽입 이미지
<그림 1> ADO.NET Entity Framework Designer

ADO.NET Data Services (formerly code-named "Astoria")

SP1에는 코드명 Astoria로 제공되는 유연한 프레임웍이 포함되어 있습니다. 이 프레임웍의 역할은 REST기반의 데이터 서비스를 쉽게 생성할 수 있게 해 줍니다. ADO.NET Data Service Framework은 표준적인 REST URI문법을 기반으로 데이터를 제공하고 HTTP기반의 작업을 제공할 수 있는 구조로 되어 있습니다.

여기까지만 봐서는 어떤 내용인지 와 닿지 않을 것 같습니다. 정리를 하자면 위에서 설명한 Entity Framework과 연결하면 Enttity 기반의 데이터를 쉽게 표준적인 형태로 공개할 수 있는 구조를 쉽게 개발할 수 있게 되었습니다.
신고
2008.06.17 07:19
WPF Performance Improvements

SP1 beta1에서는 WPF와 관련된 변화내용들이 상당히 많이 있습니다.
그 중의 대표적인 몇 가지를 추려 보면 아래와 같은 내용들을 볼 수 있습니다.

  • 자연스럽운 동영상 재생
  • Blur, DropShadow와 같은 Bitmap Effect 그리고 이런 효과들을 GPU 사용
  • 문자의 Rendering 속도의 개선인데 특히 Visual Brush에서 많이 개선
  • 2D Graphic 개선
  • 동시적인 Window의 성능 개선

이외에도 몇 가지 효과들이 함께 포함되었는데 이와 관련한 사항들은 아래에서 하나씩
짚어 보도록 하겠습니다.
아무튼 간단하게 볼 수 있는 WPF와 관련된 개선 사항은 ListView, ListBox, TreeView에서의 성능 개선을 들 수 있습니다. 스크롤시 성능 개선 사항이 40%라고 하고 있는데 내부적으로는 큰 개선이 있었던건 아닌것 같습니다. 어찌되었던 최적화를 통해서 스크롤의 성능 개선이 충분히 이루어진 것 뿐만 아니라 추가적인 혜택도 볼 수 있을 것 같습니다.

WPF Data Improvements

SP1에서는 Data Binding과 관련한 개선사항들이 있는데

  • 바인딩시에 StringFormat 을 사용할 수 있게 되었습니다.
  • ItemsControl은 List관련 컨트롤에서 하나의 아이템을 나타낼 때 사용하는 컨트롤인데 이와 관련된 바인딩이 개선되어서 관련된 행값의 속성 설정이 간단하게 처리됩니다.
  • Null값의 처리와 변환을 편집 가능한 컨트롤로 지원합니다.
  • 바인딩 항목에 대해서 Validation을 적용할 수 있습니다.
  • 멀티 선택이 가능합니다.
  • 항목의 편집, 추가, 삭제의 트렌젝션을 가능하게 IEditableCollectionView가 제공됩니다.
  • IEnumeratble 형식의 소스에 대하 바인딩 성능이 개선되었습니다.

올해 후반에 나올 기능으로는 Hook이라는 기능이 추가로 제공될 예정입니다. 이 기능을 사용하게 되면 가상 스크롤을 고유의 패널로 사용할 수 있게 되며 이를 통해서 WPF DataGrid를 구축할 수 있게 될 예정입니다.

WPF Extensible Shader Effects

SP1 Beta1에서는 새로운 음용효과와 아키텍쳐가 제공됩니다. WPF컨트롤이나 요소에는 좀더 시각적인 효과를 만들어서 적용할 수 있게 되엇습니다. 이런 효과들은 몇 가지 형태를 함께 사용할 수 있어서 좀 더 효과적입니다. 특히 이런 효과들의 처리를 CPU에서 처리하지 않고 Video Card에 내장된 GPU를 적극적으로 활용할 수 있게 된 점은 아주 고무적이라고 할 수 있습니다. 전체적으로 WPF의 표현은 좀 더 자유롭게 하면서 성능적으로는 더 가볍게 하는 장점이 있습니다.

간단하게 음영효과를 주기 위해서는 아래와 같은 코드를 입력하시면 됩니다.

사용자 삽입 이미지
<그림1> DropShadowEffect의 적용코드

사용자 삽입 이미지
<그림2> DropShadowEffect의 실행 모습

간단한 그림자 효과이지만 생각하기에 따라서는 다양한 효과로 함께 연출할 수 있다는 생각을 꼭 가지면 좋겠다는 생각이 듭니다. DropShadowEffect의 경우는 여러가지 객체들과 함께 사용할 수 있기 때문에 다양한 아이디어를 구사할 수 있는 장점이 있습니다.
사용자 삽입 이미지
사용자 삽입 이미지
<그림3> DirectionalBlurEffect를 사용해서 빠른 스크롤을 효과적으로 표현하는 예

이외에도 몇 가지 효과들이 더 추가 되었는데 이와 관련한 포스팅은 Greg Schechter의 블로그인
http://blogs.msdn.com/greg_schechter/archive/2008/05/09/a-series-on-gpu-based-effects-for-wpf.aspx 를 접속해 보면 자세한 내용을 확인 할 수 있다.

WPF Interoperability with Direct3D

WPF나 Direct3D는 모두 Direct X기반의 기술이다. Direct X기반의 기술들이라는 공통된 부모가 있으면서도 상호 운영에서 있어서 이제까지 한계점이 있었는데 SP1 부터는 직접적으로 이들을 함께 운영할 수 있는 방법을 제공해 주고 있습니다. 사실 Direct3D는 질감 표현이 뛰어난데 WPF와 DirectX를 함께 사용할 수 있기 때문에 여러가지 의미있는 도전들을 새롭게 생각해 낼 수 있게 되었습니다.
사용자 삽입 이미지
사용자 삽입 이미지
<그림 5> Direct X기반의 WPF와 Direct 3D의 상호 운영

VS 2008 for WPF Improvements

Visual Studio 2008 SP1을 통해서 WPF 프로젝트와 Designer가 많이 향상되었습니다.

  • 성능 개선
  • 속성 브라우저의 이벤트 탭
  • 속성 브라우저의 알파벳순 정렬
  • 폼 레이아웃에 대한 마진 설정 법
  • TabControl, Expander, Grid의 Designer 개선
  • XAML도 Update (코드를 리펙토링으로 초기화 함으로 가능함)
  • XAML로 선언된 지점으로 점프 및 참조 검색 지원

이외에 디버거도 런타임 오류가 일어나는 몇 케이스가 해결되었습니다.

사용자 삽입 이미지
<그림6> Visual Studio 2008 SP와 관련한 오류 케이스

신고
2008.06.13 12:24
Improvements for Client Development

Client 개발에 있어서 이번에 제공되는 SP1은 몇 가지 변화가 생겼는데 그 변화를 두 가지 단어로 표현하라고 하면 바로 "성능과 배포"라고 표현할 수 있습니다.
시간이 되면 영문이기는 하지만 Tim Sneath의 블로그에 있는 글을 확인하는 것도 도움이 됩니다.

http://blogs.msdn.com/tims/archive/2008/05/12/introducing-the-third-major-release-of-windows-presentation-foundation.aspx


Application Startup and Working Set Performance Improvements

한번 실행했던 프로세스를 다시 실행하는 작업을 'Cold Start'라고 하는데 SP1과 관련한 변화중에서 바로 'cold start'와 관련한 성능향상이 있습니다. 이전 컴퓨팅 환경과는 달리 요즘은 365일 24시간 가동되는 시스템이 많고 또 필요에 따라서 프로세스들이 오르락 내리락 하는 경우 들이 많은데 이런 부분들에 있어서 성능이 향상되었다는 점은 요즘 컴퓨팅 환경에 대한 충실한 반영이라고 보여집니다.
 사실 내부적으로는 큰 변화는 아니었던것 같습니다만 CLR NGEN 이미지의 변화를 주어서 디스크 IO패턴을 최적화 하고 JIT 코드 제네레이터를 변화시키는 등 해서 필요한 변화를 이끌어 냈다고 합니다.
 상대적으로 Life Cycle이 짧은 Web Application의 경우 이런 효과 좀 더 누릴 수 있을 거라는 생각이 듭니다.
일단 일반적으로 .NET Application의 경우는 startup이 40%, ASP.NET Web Application의 경우 10%의 성능 향상이 있었다고 합니다.


New .NET Framework Client Profile Setup Package

.NET Framework기반의 Application을 배포할 경우에 항상 걸리는 문제가 .NET Framework를 어떻게 배포할 것인가 하는 문제가 있었습니다. 이번에 제공되는 SP1을 통해서 .NET Framework을 제공할 수 있는 새로운 형태의 배포 옵션을 지원하고 있습니다.

 새로운 형태의 배포 옵션은 '.NET Framework Client Profile'이라는 이름으로 제공됩니다. 이 옵션은 .NET Framework이 설치되지 않은 기기에 꼭 필요한 기능을 빠르게 제공할 수 있는 장점이 있습니다. .NET Framwork를 Full 옵션으로 제공할 경우 80M이상의 용량을 배포해야 하지만 새로운 옵션을 사용하게 되면 26M정도의 가벼운 용량으로 용량이 대폭 줄어 듭니다.  이렇게 용량이 줄어들었기 때문에 배포 패케지의 사이즈도 줄어들고 다운로드 시간 및 설치 시간도 줄어드는 등 다양한 변화가 발생하고 있습니다.
 그럼 어떻게 해서 이런 변화가 가능할까요? 기본적으로는 새로운 옵션을 적용하더라도 제공되는 파일들은 모두 동일합니다. 그렇지만 특별한 경우가 아니면 Client에서는 필요하지 않은 ASP.NET과 같은 서버 관련 기능들은 모두 제외되어 있습니다. 그래서 용량이 작은 것입니다. ^^

아무튼 필요에 따라서는 새로운 옵션을 적용해서 배포한 프레임웍에서 업그레이드를 할 수 있고 Application들은 풀 옵션이든 새로운 옵션이든 상관없이 재 컴파일을 할 필요는 없습니다.
사용자 삽입 이미지
<그림1>새로운 옵션으로 배포할 수 잇는 체크 박스가 추가되었다.

New .NET Framework Setup Bootstrapper for Client Applications 

.NET기반의 Application을 배포할 때 또 필연적으로 걸리는 문제가 Client에 .NET Framework이 설치되어 있는지 체크해야 하는 부분이 있습니다. "bootstrapper"라는 옵션이 SP1에서는 새로 포함되어 있는데 이 옵션을 사용하면 배포하는 Application을 위한 올바른 .NET Framework이 설치되어 있는지를 확인하는 기능이 자동화 될 수 있습니다. bootstrapper는 올바른 .NET Framework이 설치되어 있지 않을 경우 인터넷에서 자동으로 필요한 기능들을 다운받아서 설치할 수 있도록 되어 있습니다.
 한 가지 좋은 점은 이미 .NET Framework 2.0이 이미 설치되어 있다면 bootstrapper는 전체 풀 패케이지를 다운로드 하지 않고 추가로 설치해야 하는 파일만 다운로드 하기 때문에 훨씬 가볍게 동작할 수 있습니다.
 bootstrapper는 일종의 컴퍼넌트 형태로 제공되기 때문에 기본적인 설치 패케이지 이외에도 필요하다면 ClickOnce나 InstallShield와 함께 사용할 수도 있습니다.

ClickOnce Client Application Deployment Improvements

ClickOnce와 관련한 변화들도 있는데 세세한 부분이라 아래 내용을 참조하시면 좋을 것 같습니다.

  • Support for the .NET Framework Client Profile (all ClickOnce features are supported with it)
  • ClickOnce applications can now be programmatically installed through a ‘Setup.exe’ while displaying a customized, branded install UX
  • ClickOnce improvements for generating MSI + ClickOnce application packages
  • ClickOnce error dialog boxes now support links to application specific support sites on the Web
  • ClickOnce now has design-time support for setting up file associations
  • ClickOnce application publishers can now decide to opt out of signing and hashing the ClickOnce manifests as they see appropriate for their scenarios.
  • Enterprises can now choose to run only Clickonce Applications Authenticode signed by ‘Known Publishers’ and block anything else from running
  • FireFox browser extension to support Clickonce installations using FireFox browsers
  • Windows Forms Controls

    사용자 삽입 이미지
    Windows Forms과 관련된 변화도 일부 있는데 새로운 벡터 도형 컨트롤이나 인쇄 DataRepeater 컨트롤 등이 이에 해당됩니다.

    신고
    2008.06.10 08:30
    .NET 3.5 SP1 Beta1에서는 웹괘 관련한 다양한 변화가 있었는데 그 중의 하나가 바로 툴의 기능 향상에 있습니다. 기본적으로 내재되어 있던 버그들이 해결되었고(BugFix) 개발툴의 성능이 향상된 점도 눈여겨 볼만 합니다.
    이번 서비스 팩에서 향상된 Visual Studio 2008의 면들을 확인해 보시려면 아래 주소로 접속해 보시면 됩니다.

    http://weblogs.asp.net/scottgu/archive/2008/02/08/vs-2008-web-development-hot-fix-roll-up-available.aspx
    사용자 삽입 이미지
    <그림1> VS 2008 Web Development Hot-Fix Roll-up Available

    성능이 향상되었는가 하면 Java Script와 관련한 내용도 있습니다. 우리가 흔히 C#과 같은 언어를 사용할 경우에 Visual Studio 2008상에서 자동으로 어느 정도 코딩 포멧이 맞춰지는 것을 알고 있습니다. 이와 같은 기능을 Java Script에서는 사용할 수 없었지만 이제부터는 사용이 가능해 졌다고 합니다.

    사용자 삽입 이미지
    <그림2> Java Script formatting
    <그림2>에서와 같이 JScript항목에서 각종 파라메터를 설정할 수 있도록 되어 있고 이 부분을 통해서 Java Script도 포멧을 설정할 수 있게 되었습니다.
     
     Java Script의 경우 사실상 Web과 관련된 작업에 있어서는 필수적인 요소라고 할 수 있습니다. 또 Java Script와 관련된 요구사항과 내용들은 사실 생각보다 구체적이고 집요하며 신뢰성 있어야 합니다.
     아마 여러분들은 대부분 자체적으로 java script를 구현해서 따로 파일로 만들어서 사용하시겠지만 필요에 따라서는 Open Source 형태로 공개되어 있는 Java Script Library 를 사용하는 것도 좋은 선택이 될 수 있습니다.
    예를 들면

    - JQuery (http://jquery.com)
    - Prototype (http://www.prototypejs.org)
    - Scriptaculous (http://script.aculo.us)
    - ExtJS (http://extjs.com)  
     
    이런 것 들이 있습니다. 물론 이런 것들이 만능은 아니겠지만 대부분 나름의 요구들과 특색을 잘 살려서 개발되어 있기 때문에 필요할 경우 잘 활용한다면 신뢰할 만한 성과를 쉽게 얻어내는데 일조 할 수 있습니다. 원래 Visual Studio 자체게 Java Script를 어느 정도 지원해 왔지만 이번 2008버전하고도 SP1에서는 좀더 꼼꼼히 지원되기 시작했습니다.
     인텔리센스는 말할 것도 없고 이제는 풍선 도움말 까지 자연스럽게 지원됩니다.
    사용자 삽입 이미지
    <그림3> Open Source Java Script Library의 지원
    사용자 삽입 이미지
    <그림4> Java Script Library 풍선 도움말 지원

    또 하나 재미있는 사실은 아직도 웹에서 ASP를 사용하고 있는 사이트가 제법 된다는 사실입니다. 물론 이 사이트들이 좀 더 효율적이고 견고한 프로그램 모델로 진보하기를 바라고 있지만 꼭 모든 사이트가 진보할 필요가 없는 것도 사실입니다.
     아무튼 아직 현존하고 있는 ASP사이트를 위해서 ASP파일들에 대해서도 인텔리센스가 지원되기 시작했습니다. 진작에 이런 기능이 나왔으면 ASP를 사용하던 시절 다소나마 좀 편하게 개발할 수 있었을 텐데 T.T
    사용자 삽입 이미지
    <그림5> Classic ASP 버전의 지원

    이외에도 Visual Web Developer Express라는 Visual Studio 버전이 있는데 이 버전은 무료로 공개되는 버전으로 웹 사이트 프로젝트를 개발할 수 있도록 제공되고 있습니다. 그런데 이 버전의 경우 웹 프로젝트를 개발할 수는 있지만 클래스 라이브러리 형태의 개발은 할 수 없도록 제약되어 있었습니다.
     하지만 이 역시 SP1이 제공되면서 이 제약이 풀렸습니다. 따라서 이 버전을 사용해서도 좀더 체계적인 작업이 가능하게 되었습니다.
     또하나 Visual Web Developer Express 버전은 클래스 라이브러리를 지원하지 못했기 때문에 개발할 수 없었던 두 가지 프로젝트 형태가 있는데 그게 바로 ASP.NET MVC와 Silverlight의 개발입니다. 이 역시 이번 서비스 팩을 통해서 지원되게 되었습니다.

    서비스 팩이 서비스 팩이 아닌것 같죠 추가된 기능만 봐서는 종합선물세트 수준인것만은 확실합니다. ^^
    신고
    2008.06.09 07:00
    ASP.NET AJAX와 관련한 변화들이 이번에 포함되어 있는데 약간의 성능 향상과 AJAX에서 History를 활용할 수 있는 확장 기능이 포함되어 있는 점입니다.

    아래로 접속해 보면 여기와 관련된 내용을 자세하게 볼 수 있습니다.
    http://weblogs.asp.net/davidbarkol/archive/2007/12/28/asp-net-3-5-extensions-history-control-tip.aspx

    사용자 삽입 이미지
    <그림1>David Barkol's blog

    AJAX에서도 History를 사용할 수 있다는 점은 경우에 따라서는 사용자들에게 재미있는 장점을 제공해 줍니다. 가량 예를 들어서 상황에 따라서 버튼이 나타났다 사라졌다 하는 것을 AJAX기반으로 만들고 이를 브라우저에 있는 History를 통해서 네이게이션 할 수 있게 됩니다.
    이것도 아래에 있는 주소에서 동영상을 확인해 보시면 쉽게 이해할 수 있을 것 같습니다.

    http://weblogs.asp.net/bleroy/archive/2008/01/04/screencast-how-to-enable-server-side-history-management-in-an-asp-net-ajax-application.aspx

    AJAX에서 볼 수 있는 또 다른 하나의 변화라면 스크립트 구성요소의 구성이 바뀌면서 서버로의 호출 횟수가 줄어들면서 성능 향상이 있는 점입니다. 아래 링크에 있는 동영상을 실행 시켜 보시면 관련된 데모를 보실 수 있습니다.

    http://www.asp.net/learn/3.5-extensions-videos/video-296.aspx

    동영상의 내용을 자세히 보면 서버 컨트롤 상에서 <CompositeScript>를 호출해도<asp:ScriptManager>가 한번에 포함해서 호출되기 때문에 호출하는 횟수가 줄어들어서 성능이 이만큼 향상되었다는 내용입니다. ^^

    신고
    2008.06.07 22:18

    .NET 3.5 SP1에는 새로운 URL기반의 라우팅 기법이 들어 있다. 이와 관련한 내용은 System.Web.Routing에서 찾아 볼 수 있는데 흥미로운 것은 이 역시 ASP.NET MVC와 관련이 깊다는 것입니다.
    (아마 조만간 ASP.NET MVC에 관한 내용도 한번 정리해야 할 것 같다. )

    말로하는 것 보다는 실제 화면을 보여드리면 싶게 이해를 하실 수 있을 것 같아서 아래 그림을 보여드리도록 하겠습니다.

    사용자 삽입 이미지
    <그림1>샘플 프로그램의 실행결과

    <
    사용자 삽입 이미지
    그림1>에서 웹 브라우저의 URL을 자세히 보시면 기본주소 하위에 cafegory/123/3cats/42라는 경로가 붙어 있는 것을 볼 수 있습니다. 그냥 보신다면 저 경로 자체는 별다른 의미가 없을 수도 있지만 사실 저런 물리적인 경로가 사실은 실제로 존재하지 않는 주소라는 것입니다.

    <그림2>의 프로젝트 구조를 보면 아무리 봐도 그런 경로를 찾아 볼 수 없습니다. 물리적인 경로가 아니라면 어떻게 해서 이런 경로가 나오게 된 것일까요?
    사실 이 경로는 소프트웨어적으로 생성된 경로 입니다. 그리고 이런 소프트웨어적인 경로를 사용할 수 있게 해주는 기능이 System.Web.Routing에서 제공되는 기능입니다.

    흥미를 가지고 조금만 살펴보시면 생각보다 쓸모 있는 기능이라는 생각을 가질 수 있는데 이 기능은 WebForm기반의 기존의 ASP.NET에서도 활용할 수 있지만 이 기능은 ASP.NET MVC를 위해서 추가된 기능입니다.









    <그림2> 프로젝트 구조

    사용자 삽입 이미지
    <그림3> Search.aspx
    그럼 이와 관련한 기능은 어디에 들어가야 하는 것일까요?
    함께 첨부해 드리는 샘플파일에서는 이런 기능은 global.asax에서 찾을 수 있습니다.


    사용자 삽입 이미지
    <그림4> Global.asax
    Global.asax에서 routes.Add() 메소드가 사용된 것을 볼 수 있는데 이 메소드를 통해서 필요한 경로가 추가된 것을 볼 수 있습니다.
    ASP.NET이 발전하면서 여러가지 새로운 개념들이 많이 추가되는데 잘 익혀두시면 필요할 때 큰 힘이 될것 같습니다. 본 아티클에서 설명해 드린 내용의 샘플 파일은 아래에 있습니다.


    감사합니다.
    신고
    2008.05.31 15:37
    .NET Framework 3.5 SP1에서는 Web과 관련된 기능이 개선되고 버그들이 해결되었습니다.
    웹과 관련된 변화 내용은 아래에서 확인할 수 있습니다.
    http://blogs.msdn.com/webdevtools/archive/2008/05/12/visual-studio-2008-sp1-beta.aspx (English)

    변화중에서 가장 특이한 변화 내용은 아래와 같은 Data Scaffolding과 관련된 기능입니다.
    Data Scaffolding은 Dynamic Data라고도 불리는 기능입니다.
    흔히 우리가 작성하는 대부분의 프로그램은 CRUD(Create Read Update, Delete)가 한 셋트인 프로그램이
    대부분입니다. Data Scaffolding는 이런 반복적인 작업을 많이 줄여줍니다.

    아래 첫 번째 동영상에서 Data Scaffolding에 대한 소개를 보실 수 있습니다.

     
    동영상에서 보면 LINQ기반으로 데이터를 정의하고 나면 기본적으로 해당 Table마다에 맞쳐서 자동으로 CRUD에 해당하는 페이지가 연결되는 것을 볼 수 있습니다. 아래에 있는 동영상을 차례대로 보시면 전체적인 내용을 이해하는데 도움을 받을 수 있습니다. 물론 국내의 변화무상한 고객들의 요구를 Data Scaffolding으로 얼마나 해결할 수 있을지는 미지수이기는 하지만 그렇게 정교한 요구사항이 없는 부분에 대해서는 손 쉽게 사용할 수 있는 유용한 기능으로 보여 집니다.



    Dynamic Data in Action


    위의 동영상들이 모두 English인지라 다소 보시기 어려울 수도 있지만 화면을 보시면 이해가 되실 것라는 생각을 하면서 다음에는 한글화된 동영상을 한번 더 제공해 드리도록 노력해 보겠습니다.
    그런데 동영상에 보시면 알겠지만 기본적으로 MVC 모델이 사용되는 것을 볼 수 있습니다.
    점점 ASP.NET MVC를 해야할 필요성이 증가하고 있는 것 같습니다.

    Dynamic Data와 관련된 정보는
    http://www.asp.net/dynamicdata/ 여기서 자세한 정보를 확인할 수 있습니다.
    신고


    티스토리 툴바