Google Trend를 이용해서, 최근에 사용되고 있는 웹 기술들을을 한번 살펴 보았다.
기술이라는 것이 단지 인기에 의해서 흥하고 망하는 것은 아니지만, 사람들이 관심을 끌고 있는 기술들이 무엇인지 안다면, 분명히 그 이유가 있다. 그리고 이를 안다면 개발하고자 하는 프로젝트에 적용할 때, 적지 않은 도움이 될거라고 생각된다.

내가 회사에서 관련 있는 프로젝트는 ExtJS를 기본 Javascript Framework로 사용하고 있는데, ExtJS는 라이센스가 유료이다. 그리고 많은 Component를 개발자에게 제공하지만, 이를 숙달할수 있도록 익히기 위해서는 약 2달정도의 공부할 수 있는 시간이 필요하다. 왜냐하면, Javascript와 CSS의 기본을 충분히 알지 못한다면, 각 Componet를 원하는대로 쉽게 제어하기 힘들기 때문이다.
그래서, 최근에는 JQuery를 검토하고 있고, 이는 생각보다 개발자드의 코드를 많이 줄여주고, 코드를 단순화 시키는데 도움이 된다. 

Google Trend를 통해, 이러한 기술들에 대한 사람들의 관심도를 알아보기 위해서 검색을 해보니, JQuery에 대한 관심도가 상승곡선을 타고있고 Prototype과 ExtJS는 상대적으로 낮은 traffic을 보여주고 있다.

     jquery: 6.40    prototype: 9.80    extjs: 1.90

 위 그래프는 JQeury의 관심도가 ExtJS보다 약 6배정도 높다는 것을 보여주고 있다. (ExtJS를 1이라고 볼때, JQeury는 6.40의 traffic을 보여주고 있다.)  Prototype의 traffic은 초기부터 현재까지 거의 일정하다. 이를 사랑하는 사람들이 꾸준한 애정을 가지고 있다고 할 수 있다.

다음은 개인적으로 관심을 가지고 있는 Microsoft의 ASP.NET MVC에 대한 사람들의 관심도를 알아볼 것이다.
최근에 ASP.NET 3.5의 Extention으로 마이크로소프트 사는 MVC프레임워크를 개발하고 1.0버전을 공식 발표했다.
이에 대한 사람들의 관심도는 기대 이상으로 보인다. 향후에 이를 이용해서 개발하는 개발자들이 꾸준하게 늘거라 생각한다. 그리고 MS에서는 Asp.net에서 제공하는 기본 Javascritp framework으로 JQuery를 제공하고, 이를 Visual studio에서 툴로서 지원하고 있다. 

최근에 많이 사용하고 있는 Spring MVC와 Structs를 비교해서 검색해 보았다.
Spring MVC는 꾸준하게 관심도를 유지하는 반면에, Structs는 시간에 지남에 따라 상대적으로 관심도가 줄어 들오 있다. 이에 반해 MS의 ASP.NET MVC는 최근에 발표된 이후로 많은 관심을 끌고 있음을 아래 차트를 통해서 알수 있다.
 
    spring mvc: 2.10    struts mvc: 1.00    asp.net mvc: 1.40  

위의 차트가 모든 것을 다 말해줄수는 없다. 최근에 발표되었기 때문에 MS의 ASP.NET MVC가 사람들의 관심을 끌고 있을 수도 있고, 검색 조건에 따라서 차트의 결과가 달라질 수도 있기 때문이다.
그러나 분명한 것은 개인적으로는 MS에서 발표한 MVC 프레임워크와 Scheffold 기능은 오픈 소스에서 진행되었던 여러 프로젝트의 장점들을 따서 만들었기 때문에 개발자들에게 도움이 될거라는 점이다.

어떤 기술을 선택할지는 개발자의 몫이다. 기간과 리소스와 개발자들의 기술 수준을 고려해서 프로젝트 초기부터 잘 검토한다면, 효율적인 개발이 이루어질거라 믿는다. 초기에 제대로 검토하는 시간과 노력없이 프로젝트를 진행해서 나중에 땜빵으로 누더기를 만드는 프로젝트를 여러번 보아왔다. 이 또한 개발자의 양심과는 대치대는 것이지만, 후 작업과 품질 좋은 코드를 원한다면, 초기에 많은 시간이 들여야 한다.

항상 하는 이야기지만, 개발자는 코드로 이야기 해야한다.
Posted by 행복상자
며칠전에 ScottGu's 의 블로그에 올라온 을 보았다.
그가 몇몇 저자들과 함께 "ASP.NET MVC 1.0"이라는 책을 쓰고,  출판한지 약 1달이 넘었다. 이 책은 ASP.NET에서 웹폼과 함께 지원하는 MVC 프레이워크에 대해서 다루고 있는 최초의 책이라고 생각하는데, Scott Guthly는 자신이 집필했던 쳅터를 e-Book 형태로 무료로 다운로드 받을 수 있도록 했다.
bookcover[1](다운로드는 여기를 클릭하면 된다.)

이와 관련된 글은 "Free ASP.NET MVC eBook Tutorial" 을 참조하면 된다.

이번에 그의 Blog에서는 e-Book의 형태로 다운로드 할 수 있을 뿐만 아니라, HTML형태로 공개한다고 이야기 하고 있다.
아마도 그의 글이 작성된 시점은 HTML 버전으로 만들고, 이를 서버에 Upload한지 얼마 안되었다는 것을 그의 글을 통해서 엿볼수 있다.
요즘은 무엇이 그리도 바쁜지 그의 글이 업데이트 되고, 올라오는 횟수가 많이 줄었다. (빌 게이츠가 은퇴를 해서 그런가?)

그늘 그의 블러글를 통해서, HTML로 공개하고 있는 부분들은 12개의 파트로 나누어져 있다고 설명한다. 그리고 "nifty syntax highlighter" 를 사용해서 코드를 좀 더 보기 좋게 만들었다고 한다. 나는 그동안 위의 라이브러리가 무척 궁금하였었는데, 그의 글을 통해서 알게 되었다. "SyntacHighlighter 2.0"에 대해서는 나중에 시간나면 한번 분석해보고 사용해 보려고 한다. (우연찮은 기회로 알게 되어서 기쁘다.)

다음은 그가 공개한 12개 Part의 소제목에 대한 링크들이다.

이전의 블러그에서도 이야기했지만, Scott의 오픈소스에 대한 생각은 기존의 MS의 CTO들과는 많은 부분에서 확연히 차이가 난다. "JQuery"를 기본 자바 스크립트 Framework로 선택하고 이를 Visual Studio에서 inteligent기능을 통해서 지원하는 것만 봐도 알수 있다.

ASP.NET은 기존의 WebForm과 최근에 공개된 MVC 패턴을 모두 제공하지만, MVC는 웹 개발하는 개발자에게는 친숙하고 익숙한 패턴이기 때무에, WebForm을 넘어설 거라 생각된다.

훌륭한 개발자는 코드로 이야기하지만, 훌륭한 아키텍트(Architect)는 얼마나 복잡도를 줄이고, 단순화 시키느냐로 그의 역량을 엿볼수 있다.
마케팅적인 용어를 통해서 대단치도 않고, 불분명한 기술을 많은 개발자들과 IT 매니저들을 현혹시킬수 있지만, 진정한 가치는 역시 "사용해 보고 싶다"라는 욕구를 매번 새롭게 일으킬수 있어야 가능하다고 생각된다.
그래서 나는 MS의 이러한 긍적적인 변화를 Scott를 통해서 만들어가고 있다는 것에 대해 굉장히 기대하고 또한 잘 되길 바란다.

Posted by 행복상자

ScottGu's Blog에 올라온 글이다. 최근에 그의 블러그는 글이 올라오는 빈도수가 현저하게 적어졌는데, 아마도 ASP.NET의 새 버전 출시로 바쁘기 때문일 거라 추측을 하게 된다.

오늘 날자로 올라온 그의 블러그는 "Free ASP.NET MVC eBook Tutorial" 이라는 제목의 글을 공개했다.

말 그대로 책을 bookcover[1]자유롭게 다운로드 해서 볼수 있도록 해주겠다는 것인데, 사실인가 싶어서 링크를 클릭하고 다운로드를 실행시켰는데, 약 190페이지가 넘는 책을 받아 볼수 가 있었다.

다음 링크를 이용해서 책을 Download해서 받아 볼수 있다.
Download the free end-to-end tutorial chapter in PDF form

그의 Blog를 보면, 책의 저자는 4명이다. 오른쪽의 책 표지에 저자들이 보인다.
Scott Guthly는 이 책의 첫 부분을 저술하였으며, 그가 쓴 처움 부분이 무료로 공개하기로 한 것이다.

실제로 책에는
"Chapter 1 is licensed under the terms of Creative Commons Attribution No Derivatives 3.0 license" 라고 표시되어 있다.

우선 그가 준 선물에 무척 감사할 따름이다.
오늘 대충 책의 내용을 흩어 보았는데, 새로운 툴과 기술을 익히는 가장 좋은 방법을 예제를 따라서 실행해 보는 것이다. 그리고 그 예제를 익숙하게 재현한다면, 그 때 부터는 기술을 내것으로 만들수 있는 기본적인 준비가 된 것이다.

본 책은 ASP.NET에서 도입한 MVC 프레임워크를 이해하기 쉽도록, 셈플 프로젝트를 만들어서 하나 하나 개발자가 따라갈수 있도록 자세히 설명하고 있다. 물론 많은 이미지와 캡쳐한 이미지도 많아서, 쉽게 따라할 수 있을 것 같다.
그리고 책 중간에는, 웹 개발에서 빠질 수 없는 Database의 연동을 위한 LINQ에 대한 설명과 사용법도 나와 있어, 이에 대한 이해가 전혀 없는 사람도 따라하면서 새로운 기술들에 대한 이해도를 높일수 있다.

그리고 MVC 프레임워크의 도입과 동시에 개발자들이 쉽게 Controller를 재 구성 할 수 있도록 사용법을 설명하고, Routing에 대한 추가적인 설정 방법도 설명하는데, 사실 이 부분을 Rails 프레임워크의 구성과 매우 유사하다.
정확히는 모르겠지만, Rails의 프레임워크의 영향을 받았을 것라는 생각이 든다.

많은 말은 필요 없다. 다운로드 받아서, 실제로 새로운 MVC 프레임워크를 사용해 보고 코드를 작성한다면 백마디 말보다도 더 유익할 거라 생각이 든다.

아래는 책의 주요 목차들이다.

  • Create a database
  • Build a model with validation and business rules
  • Implement data listing/details UI on a site using Controllers and Views
  • Enable CRUD (Create, Update, Delete) data form entry
  • Use the ViewModel pattern to pass information from a Controller to a View
  • Re-use UI across a site using partials and master pages
  • Implement efficient data paging
  • Secure an application using authentication and authorization
  • Use AJAX to deliver dynamic updates
  • Use AJAX to add interactive map support
  • Perform automated unit testing (including dependency injection and mocking)


 

Posted by 행복상자
오늘 Microsoft사에서 새로운 ASP.NET MVC Design Gallery 를 오픈하였다.
이를 통해서 ASP.MET MVC 애플리캐이션을 개발할 때 쉽게 적용하고 사용할 수 있도록, html 디자인 temlets와 CSS Stylesheet를 제공한다. 이를 위해 관련된 파일들을 Zip 파일로 압축해서 제공하는데, Creative Commons Attribution 3.0 license 아래에서 무료로 사용이 가능하다.


Microsoft사에서는 사실 그동안 Form view 위주로 ASP.NET의 개발을 진행하여 왔다. 그리고 그 나름 대로의 장점도 많이 가지고 있지만, 코드와 디자인을 완전히 분리하기는 쉬운 작업이 아니였다.  
ASP.Net의 MVC 도입도 이러한 부분들을 보완하기 위함이라는 생각도 들지만, 향후 ASP.NET에서 가장 큰 관심을 쏟아 부을 것도 역시 MVC Framework의 지원일 거라고 확신한다.

오늘 오픈된 Desigh Gallery도 그러한 지원의 한 부분이다. 그리고 ASP.NET MVC에서 Schefolding을 지원하는 것 역시 경이롭다. (LINQ to SQL, LINQ to Entity and NHibernate 까지 지원한다.)

 ASP.NET MVC는 MS쪽 웹기술을 이용하여 개발하고 있거나, 그럴 계획이 있다면 꼭 관심을 갖고 지켜보기 바란다. 이전의 Blog를 통해서도 이야기 했었지만, Rails의 Schefolding은 Web 기술 발전에 굉장히 많은 부분에 영향을 주고 있으며 앞으로도 줄 것이다.

'공부하는 것' 카테고리의 다른 글

Free ASP.NET MVC eBook Tutorial  (0) 2009.03.12
Microsoft Azure Platform  (0) 2008.12.29
ASP.NET MVC Design Gallery  (0) 2008.12.20
SpringFramework 3.0 Released (3.0.0.M1)  (0) 2008.12.07
New ASP.NET Chart Control  (1) 2008.12.04
SQL Server Express Network 연결 설정 방법  (0) 2008.12.02
Posted by 행복상자

스컷 구슬리의 Blog를 가보니 그는 정기적으로 자신의 웹 사이트 북마크들을 공개하고 있는 것 같다. ASP.NET, ASP.NET MVC, ASP.NET Dynamic Data에 대한 북마크인데 참고를 하면 기술흐름과 추이들을 손쉽게 이해할 수 있을 것 같다.

[ASP.NET]

 Bulk Inserting Data with the ListView Control: Matt Berseth continues his awesome posts with one that shows how to handle bulk-editing of data using the ASP.NET ListView control in .NET 3.5

Amazon의 Cloud Computing을 위해서 MS의 서버 제품군들을 이용하고 있는데, Amazon의 Open webservice제고 하기 위한 EC2 서버스 구축과 관련된 내용을 볼수 있다.

Using ASP.NET WebForms, MVC and Dynamic Data in a Single Application: Scott Hanselman has a nice post that demonstrates how you can have a single ASP.NET application that uses ASP.NET WebForms, MVC, WebServices and Dynamic Data.  You have the flexibility to mix and match them however you want, which allows you to always use the right tool depending on the specific job.

 ASP.NET WebForms, MVC, WebServices and Dynamic Data를 이용하여 Application을 작성하는 것에 대하여 설명하고 있다. Microsoft는 개발자가 WebForm과 MVC를 이용하여 개발 할 수 있도록 환경을 만들어 주는데, 이 두가지를 어떻게 적절히 사용할 수 있는지에 대하여 설명해 주고 있다.

 Modifying Data with the ListView's EditItemTemplate: Matt Berseth has a great post that talks about how to use the ASP.NET 3.5 ListView control to enable in-place editing scenarios - with total html markup control.

List View를 어떻게 수정해서 사용할수 있을지에 대한 샘플 코드를 통해서 설며앻주고 있다. 이는 서버 사이드에서 실행되는 코드로 요즘에 많이 알려져 있는 Javascript Framework에서 제공하는 것과는 다르다.

4 New Grouping Grid Skins: Vista, Bold, Win2k3 and Soft: Matt Berseth has another nice post that demonstrates how to skin the ASP.NET ListView control to enable some sweet data grouping scenarios.

새로운 4개의 그리드 Skin에 대한 이미지와 컨트롤의 사용에 대해서 설명해 준다.

 Unlocking and Approving User Accounts: Scott Mitchell posts another in his great series of articles on ASP.NET security (click here for all the articles in the series).  This article talks about how you can setup administration pages that allow admins to lock out and approve user accounts using the ASP.NET Membership system.

Admin 관리자가 사용자 계정을 사용유무를 관리하기 위한 페이지에 대해 이야기 하고 있다.
 Adding OpenID to you website in conjunction to ASP.NET Membership: Dan Hounshell has a nice article that discusses how to add OpenID authentication support to your web-site, and use it in conjunction to ASP.NET's built-in membership system.

Open ID 계정의 사용에 대한 설명과 소스 코드가 있다.

[ASP.NET MVC]
 MVC Membership with Preview 5: Troy Goode posts an update of his popular MVC Membership template that works with ASP.NET MVC Preview 5.  It provides a set of administration pages you can use for user/role management, as well as adds support for OpenID and Windows LiveID.
 MVC Flickr Xplorer: Mehfuz Hossain has a cool ASP.NET MVC sample application posted that enables a nice picture explorer for FlickR photos.

.NET MVC를 이용한 Sample 코드를 소개하고 있는데, Flicker의 사진 이미지를 볼수 있는 프로그램을 .NET MVE Preview3를 이용해서 만들었다.

[ASP.NET Dynamic Data]
 Simple 5 Table Northwind Example: Matt Berseth kicks off his ASP.NET Dynamic Data tutorial series with a nice post that shows how to build a simple 5 table application using ASP.NET Dynamic Data with .NET 3.5 SP1

Northwind 테이블을 이용하여 Dynanic Data 사용을 위한 예제들을 담고 있다.
 Dynamic Data And Custom Metadata Providers: Matt continues the series and covers the MetadataType attribute, and how you can use it to annotate your entities with additional metadata.
 Dynamic Menu for your Dynamic Data: Matt continues and covers how to add a data-driven menu to the site

2단 메뉴를 구성시 Dynamic Data를  어떻게 이용할 것인가에 대해 설명해 주고 있다.
 Customizing the Delete Confirmation Dialog: Matt continues and demonstrates how to build a nice UI experience when deleting records in a dynamic data application
 Experimenting with YUI's DataTable and DataSource Controls: Matt experiments with how to use client-side AJAX components together with dynamic data.

YUI의 테이블과 Dynamic Data를 같이 사용하는 방법에 대한 예제와 설명을 담고 있다.








Posted by 행복상자

Spring MVC는 Spring Framework중에서 웹 개발을 쉽게 할 수 있도록 도와준다.
국내에서 출판된 책들은 Source를 제공하기는 하지만, 책을 보고 Source를 실행하려고 하면 잘 동작하지 않는다. 물론 손으로 직접 쳐서 입력할때 오타가 있기는 하지만, 서버의 설정과 환경 구성에 대해서 충분하게 설명해 주지 못하기 때문이다.

이를 위해, www.springframework.org에서는 제공하고 있는 Spring MVC를 위해서, Developing a Spring Framework MVC application step-by-step
라는 제목으로 Spring MVC개발에 대해 설명하고 있다. 2003년에 작성된 것과 올 2008년에 작성된 것이 있다.

예제는 초보자를 위해서, 개발 환경 설정과, Ant의 Build.xml 만들기와 사용법등을 부과적으로 설명하고 있다. Ant를 사용하는 법도 부과적으로 얻을 수 있다. 이에 대한 목차는 다음과 같다.(2003년도 작성)

[목차] 
Part 1 – Basic Application and Environment Setup
Part 2 – Developing and Configuring the Application
Part 3 – Adding Unit Tests and a Form to the Application
Part 4 – Implementing Database Persistence

위는 2003년도에 작성된 예제와 Sample이고 tex t위주의 설명으로 되어 있지만,  MVC개발을 위한  설정 XML 파일을 어떻게 작성해야 하는지, 그리고 Dispatcher와 Controller 그리고, View에 대한 코드들에 대해 쉽게 이해할 수 있도록 예제와 더불어 쉽게 설명하고 있다.

그리고, 2008년도에 작성된 Spring MVC step-by-step의 목차는 다음과 같은데, 설명과 함께 캡처한 이미지를 제공하여 설명을 돕고 있다.

[목차]
 

Overview
1. What's covered
2. Prerequisite software
3. The application we are building
1. Basic Application and Environment Setup
1.1. Create the project directory structure
1.2. Create 'index.jsp'
1.3. Deploy the application to Tomcat
1.4. Check the application works
1.5. Download the Spring Framework
1.6. Modify 'web.xml' in the 'WEB-INF' directory
1.7. Copy libraries to 'WEB-INF/lib'
1.8. Create the Controller
1.9. Write a test for the Controller
1.10. Create the View
1.11. Compile and deploy the application
1.12. Try out the application
1.13. Summary
2. Developing and Configuring the Views and the Controller
2.1. Configure JSTL and add JSP header file
2.2. Improve the controller
2.3. Decouple the view from the controller
2.4. Summary
3. Developing the Business Logic
3.1. Review the business case of the Inventory Management System
3.2. Add some classes for business logic
3.3. Summary
4. Developing the Web Interface
4.1. Add reference to business logic in the controller
4.2. Modify the view to display business data and add support for message bundle
4.3. Add some test data to automatically populate some business objects
4.4. Add the message bundle and a 'clean' target to 'build.xml'
4.5. Adding a form
4.6. Adding a form controller
4.7. Summary
5. Implementing Database Persistence
5.1. Create database startup script
5.2. Create table and test data scripts
5.3. Add Ant tasks to run scripts and load test data
5.4. Create a Data Access Object (DAO) implementation for JDBC
5.5. Implement tests for JDBC DAO implementation
5.6. Summary
6. Integrating the Web Application with the Persistence Layer
6.1. Modify service layer
6.2. Fix the failing tests
6.3. Create new application context for service layer configuration
6.4. Add transaction and connection pool configuration to application context
6.5. Final test of the complete application
6.6. Summary
A. Build Scripts


위의 순서대로 예제를 실행해 보았는데, 어렵지 않게 스프링 MVC에 대해 이해할 수 있었고, 개발시 환경 구성과 설정방법들에 배울 수 있었다.



Posted by 행복상자
ASP.NET의 로드맵이 CodeFlex에 올라와 있어서, 소개한다.
상세한 내용은 없고, 그냥 참고할 만한 내용이다.

  • Controller Class Refactorings to improve testability
  • Ajax Support
  • Security/Authorization Model
  • Refactor TempData Dictionary for improved testability
  • Helper Methods Improvements
  • Reusable Component Model
  • Silverlight Helpers
  • Various other refactorings and bug fixes

  •  

    Posted by 행복상자

    MVC(Model-View-Controller) 패턴은 일반적으로 UI가 있는 Application에서 사용되는 패턴이다. Data와 UI를 분리하기 위한 노력들은 코드의 재 사용성을 높이고, 시스템 변경시 유연하게 수정이 가능하게 해 주므로 다양한 방법으로 Application에 적용되어 왔다.

    ASP.NET MVC

         - Model
          : 일반적으로 Application의 주 로직을 담당하고나, DB를 이용하여, Application의
            데이타를 관리하거나, Business 로직을 포함하고 있다.  
        - View
        
    : 사용자의 Interface와 연관된 부분으로, Model 데이터를 보여주거나 User의
             입력 Data를 가졍온다.
        - Controller
        
    : User와 Interaction하고 Model과 View를 통해 원하는 결과를 얻을 수 있도록
           동작을 결정한다. 결과적으로 View를 통해 Model의 내용을 볼수 있도록 도와준다.


    ASP.NET의 MVC Framework도 여타의 다른 MVC프레임워크와 대동 소이하다. 단지 Microsoft에서 공식적으로 지원한다는 것이 다를 뿐이다. 이는 분명 실행 코드와 HTML을 분리해 줘서, 코드의 가독성을 높이고, 개발 속도를 올리는데 크게 기여할 것이다.



    images/mvc.jpg
    - ASP.NET MVC Framework는 TDD를 가능하게 도와 준다. 그리고 MOC 테스트를 위한 클래스와 모듈을 Framework에 기본 탑재함으로써, 좀더 유연하게 개발을 할 수 있도록 도와 준다. 보통 테스트를 위해 새로 만들 모듀을 Http Server에 올리고 내리는 작업은 시간을 죽이는 작업들이다. 이는 Framework이 컴포넌트들 대부분이 Interface기반으로 되어 있어서 가능한 점이다.
    - 또한, ASP.NET MVC Framework는 확장 가능하고, Pluggable 하다. 이는 각 모듈들이 다른 부분에 영향없이 상용 모듈을 사용할 수 있도록 도와준다.
    - SEO(Searc Engin Optimization)와 REST를 지원한다.
    - ViewStat와 Postback를 더 이상 사용할 필요가 없다.

    Request Flow
    일반적으로 ASP.NET의 wep form Applicaton들은 URLs과 Logical Disk 상의 파일들가 Mapping해서 사용하도록 한다. 그러나 ASP.NET MVC Framwork는 URLs와 Controller를 연계하여 사용한다. 그래서 Application이 시작할 때, Url Route Rule을 등록하고, 이 Routiog Handler는 Controller에 연계되어 요청이 있을시 사용된다.

    images/request.jpg




    참조 링크: ASP.NET MVC Framework Part 1

    Posted by 행복상자

    이른 새벽 아침부터, 노트북은 열고 ASP.NET MVC에 대한 자료들을 읽어 보았다.
    ASP.NET 3.5의 Extention 기능으로 제공할 예정이고, 기능에 대한 세부 소개는 다음 링크를 참조하면 된다.
         - ASP.NET Model View Controller Applications

    사실상, MVC 패턴은 ASP.NET에서 구현 불가능한 것은 아니였는데, 그런데 왜 갑작스럽게 ASP.NET에서 MVC를 논하냐고 이야기 한다면, 이제 MVC 패턴도 성숙기에 들어섰기 때문이 큰 이유일 것이다. 그리고 다른 이유는 ASP.NET에서도 다른 Java의 웹 프레임워크과 같이 개발자를 위한 새로운 Framwork를 제공한 필요성을 강하게 느끼고 있는 것 같다.

           - Test Faramework (Visual Studio 2008에 nUnit이 기본 제공됨)
           - Moc 객체를 쉽게 생석할 수 있도록 지원함
           - DI(Dependency Injection)과 IoC(Inversion of Control) 지원
           - SEO(search engine optimization) and REST(representational state transfer) 지원
           - Urll despatch를 위한 Controller 와 Routing

    위와 같은 내용들이 주요 특징 들이다. 자세한 내용은 위의 링크와 다음에 발취한 ASP.NET MVC Feature 참조하면 이해에 도움이 될것이다.
     
    The ASP.NET MVC framework provides the following features:

    • Separation of application tasks (input logic, business logic, and UI logic), testability, and test-driven development (TDD) by default. All core contracts within the MVC framework are interface-based and can be tested by using mock objects, which are simulated objects that imitate the behavior of actual objects in the application. You can unit-test the application without having to run the controllers in an ASP.NET process, which makes unit testing fast and flexible. You can use any unit-testing framework that is compatible with the .NET Framework.

    • An extensible and pluggable framework. The components of the ASP.NET MVC framework are designed so that they can be easily replaced or customized. You can plug in your own view engine, URL routing policy, action-method parameter serialization, and other components. The ASP.NET MVC framework also supports using existing Dependency Injection (DI) and Inversion of Control (IOC) container models. DI allows you to inject objects into a class, rather than relying on the class to create the object itself. IOC specifies that if an object requires another object, the first objects should get the second object from an outside source such as a configuration file. This facilitates testing.

    • A powerful URL-mapping component that lets you build applications that have comprehensible and searchable URLs. URLs do not have to include file-name extensions, and are designed to support URL naming patterns that work well for search engine optimization (SEO) and representational state transfer (REST) addressing.

    • Support for using the markup in existing ASP.NET page (.aspx files), user control (.ascx files), and master page (.master files) markup files as view templates. You can use existing ASP.NET features with the ASP.NET MVC framework, such as nested master pages, in-line expressions (<%= %>), declarative server controls, templates, data-binding, localization, and so on.

    • Support for existing ASP.NET features. ASP.NET MVC lets you use features such as forms and Windows authentication, URL authorization, membership and roles, output and data caching, session and profile state management, health monitoring, configuration system, the provider architecture, and other areas of ASP.NET.


     

    Posted by 행복상자