며칠전에 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 행복상자
오늘 ScottGu's의 Blog에 몇 가지 새로운 링크들이 올라왔다.
Microsoft의 최근의 많은 기술적 변화를 이끌고 있는 Scott Guthrie의 선택중에 가장 잘한 부분은 개발자들을 위한 새로운 툴들을 제공라려고 노력하고 있다는 것이다.
그리고, 새로운 기술들을 받아 들이고, 오픈 소스의 영향도 마다하지 않고 소화하려고 하고 있다. 물론 이는 기술적인 거대한 흐름의 하나이고 방향이기도 하지만, 이를 MS의 툴로 하나씩 만들어 가고 있다.

그중 잘하고 있는 것이 Dynamic Data에 대한 것이다. 그리고 앞으로도 가장 발전할 수 있는 기술이라고도 생각이 든다. 그리고 이러한 관전에서 보면, ASP.NET MVC도 역시 마찮가지이다. 앞으로 웹을 개발하고 기술을 익히려 한다면, 이부분을 사전에 공부하는 것도 많은 도움이 될것이다.

관련 링크는 다음과 같다.
           - http://www.asp.net/learn/3.5-SP1/


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 행복상자
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 행복상자

    회사에서 나의 업무는 Java쪽에서 주로 일을 한다. 그런데, 이상스럽게도 요즘 내가 찾아보는 자료는 대부분이 .Net 관련 자료들이고 MS와 관련된 기술들이다.

    사실, 일을 할때는 .Net이든 Java Side이건 가리지는 않는다. 양쪽 모두 발전하고 있는 기술들이고, 언제 고객의 요구가 변경될지도 모르기 때문에 항상 주지하고 지켜보고는 있지만, 요즘처럼 틈틈히 .Net쪽의 기술을 검토하고, 분석하지는 않았었다.

    최근에 새로 프로젝트를 시작할 일이 있어서, 미국의 연구소와 같이 일을 하고 있는데, 그 쪽에서 .Net과 Java의 장단점에 대해서 나열 할 때도, 현실적으로 기존에 구현된 구현부는 Java이기에 .Net보다는 Java를 지지하기도 했었는데, 이상하게도 .Net 관련 기술에 빠져들고 있다.

    아마도 기존의 MS는 폐쇠적익, 자기 기술에 대한 표준화에 대한 강한 의지 때문에 폐쇠적이고 자기 중심적인 면이 강했는데 반해, 요즘의 기술적 트렌드와 MS이외의 휼륭한 기술과 Framework을 받아들이는 적극적이고 긍정적인 면이 보기기 때문인것 같다. 기술적 관점에서 외적인 기술 트랜드에 대해 유연한 모습을 자주 보여주기 때문에 나의 관심도가 증가한 것 같다.

    Spring의 DI(Dependoncy Injection)와  IoC(Inversion of Container)는 Java 쪽의 Spring Framework를 접해본 사람들은 흔히 듣는 익숙한 용어들이다. 그리고 Spring Framework의 Core 부분이다.
    그런데, ASP.Net 3.5에서는 이에 대해 흔히 언급하고 있다. 그리고 DO와 IoC를 지원하다고 언급하고 있기에 나의 관심이 동했다.

    Spring.Net은 스프링을 만든 SpringSource(Interface21에서 사명 변경)에서 지원하고 있다.
    간략하게 설명하면, Spring Framework의 .Net 버전으로 생각하면 된다.  
    따라서 Spring Framwork의 핵심적인 부분은 모두 반영이 되어있지만, .Net의 언어적인 측면을 따라서 만들어져 있다.

    DI와 IoC는 스프링의 코어 부분이다. 이는 당연히 Spring.Core 모듈에 포함되어 있다.
    Spring.Aop모듈은 스프링 철학의 핵심이라고 할 수 있는 모듈간의 Dependecy를 줄이기 위한 AOP(Aspect-Oriented Programming)을 지원한다. AOP는 한국에서는 상황 중심 프로그래밍으로 알려져 있는데, 웹 개발자라면 한번쯤은 관심을 가져볼만 하다. 아니 Architect를 꿈꾸는 사람이라고 하면, 반드시 접해보는 것이 바람직할 것 같다.
     
    그리고, Database와 Data layer에 Access를 위해서 ADO.Net과 NHibernate를 사용하고 있다. 이부분은 Spring Framework과 많은 차이가 있을 것같다. 왜냐하면 ADO.Net도 나름대로 많은 장점이 있기 때문이다.

    Spring.Web 모듈은 MVC를 제공하기 위한 기능들을 지원한다.  ASP.Net 3.5의 Extention 기능으로 MVC를 지원하기로 한것은 이미 잘 알려져 있다. 이는 스프링 MVC와는 많은 부분이 다른다. 마치 Rails와 유사하다.

    자세한 내용은 아래에 Spring.Net의 링크를 이용하여 얻을 수 있다.
    Spring.Net은 Spring Framework ver 2.5의 모든 기능을 지원하지는 않는다. 예를 들어 Spring Dynamic Module(Spring OSGi)는 아직 지원하지 않는다. 공식적으로 사용 가능한 Spring.Net은 ver 1.1이다.

    Spring.Core – Use this module to configure your application using Dependency Injection.   

    Spring.Aop – Use this module to perform Aspect-Oriented Programming (AOP).  AOP centralizes common functionality that can then be declaratively applied across your application in a targeted manner.   An aspect library provides predefined easy to use aspects for transactions, logging, performance monitoring, caching, method retry, and exception handling.

    Spring.Data – Use this module to achieve greater efficiency and consistency in writing data access functionality in ADO.NET and to perform declarative transaction management.

    Spring.Data.NHibernate – Use this module to integrate NHibernate with Spring’s declarative transaction management functionality allowing easy mixing of ADO.NET and NHibernate operations within the same transaction. NHibernate 1.0 users will benefit from ease of use APIs to perform data access operations.

    Spring.Web – Use this module to raise the level of abstraction when writing ASP.NET web applications allowing you to effectively address common pain-points in ASP.NET such as data binding, validation, and ASP.NET page/control/module/provider configuration.

    Spring.Web.Extensions – Use this module to easily expose a plain .NET object (PONO), that is one that doesn't have any attributes or special base classes, as a web service, configured via dependency injection, 'decorated' by applying AOP, and then exposed to client side java script.

    Spring.Services – Use this module to adapt plain .NET objects so they can be used with a specific distributed communication technology, such as .NET Remoting, Enterprise Services, and ASMX Web Services.  These services can be configured via dependency injection and ‘decorated’ by applying AOP.

    Spring.Testing.NUnit - Use this module to perform integration testing with NUnit.

    Spring.Net 1.1이 나온지도 꽤 된것 같다. Spring Framework ver 2.5의 새로운 Picture가 반영된 버전은 언제 나올지 궁금하다.

    마지막으로 Spring.Net에 대한 동영상 자료는 아래 링크를 참조하면 도움이 될것이다.
    http://www.infoq.com/presentations/pollack-intro-spring


    Posted by 행복상자

    사실 오늘은 최근에 공개한 iPhone SDK 소개 키노츠와 데모 동영상을 보려고 PC를 열었다가  별 생각 없이 .Net MVC를 찾아들어가게 되었다. 의도한 것은 절대로 아니다.
    요즘에 나온는 많은 웹 프레임워크들은 경쟁적으로 자기들이 많든 MVC Framework의 우수함을 알리는데 열을 올리고 있다. 그리고 실제로 쓰기에 충분할 만큼 안정성과 성능을 보장해 준다.

    그러나 최근에 이도 종지부가 찍힌것 같다.(이는 절대적으로 내 개인적인 소견이다.) 새로 개발되거나 또는 기존 Framework가 버전업이 되면서 MVC Framework들이 유사해 지기 시작했으니 말이다. 이에 가장 큰 영향을 준 Framework는 역시 Rails이다. 개발자에게 필요한 것은(자신을 증명하는 것은), 마지막에 완성된 코드라고 누군가가 이야기 한것 같다. (아마도 최근에 한국에 찾아온 MS의 누군가 였었지요..)

    개발자에게는 생산성과 안정성이 가장 큰 이슈이다. 이것은 마케팅적으로 영업적으로 대외에 홍보하는 포장되고 형식적인 것이 아니라, 프로젝트를 함에 있어서 필수적인 것이다.
    웹 개발에 있어서는 배포된 Application의 성능과 안정성은 너무나 중요하다. (사실 이외에도 챙겨할 것들은 부지기수 이다.)

    그런 면에서 RobyOnRails는 가히 충격적이었다. 마치 Visual Basic을 처음 접할때의 충격과도 같았다. MVC를 지원하기 위한 Simple하고도 직관적인 구조와 개발자가 부담감 없이 익힐 수 있는 기본 명령과 사용법등은 누구를 위한 Framework 인가를 바로 알수 있게 해준다.

    지난 몇달전에 일민(Toby)이가 진행하는 KSUG 세미나를 통해, Spring 2.5에서 변화되는 Spring MVC 프레임워크의 변화를 접하게 되었는데, XML과 자바 Annotation 그리고 Auto Wiring를 이용하지만 그 근간은 Rails의 프레임워크라는 생각이 많이 들었다.

    많은 프레임워크가 서로의 좋은 기능을 통해서 발전하는 것은 개발자로서는 행복한 선택을 할 수 있어서 즐겁다.

    이야기가 길어졌는데, 오늘 내가 본 Micorsoft의 MVC 데모 동영상이다.  



    너무나도 쉽고, Rails와 유사히지 않은가?
    사실 회사에서는 요즘 .Net이냐 Java냐로 논란이 많다. 그래서 관심있게 본것이다.

    아래의 링크들을 이용하면 다른 데모도 볼수 있다.
          - Part 1 - Displaying Data 
          - Part 2 - Editing Data and Making Forms 
          - Part 3 - Advanced Techniques 
          - Part 4 - Testing

    Posted by 행복상자