2010년 5월 29일 토요일

HOONS 닷넷과 함께 하는 실버라이트 2

  • 출판사 리뷰

 http://shop.youngjin.com/commerce/main_noleft.asp?PROD_CD=9788931437973&big_cd=01&middle_cd=004

 

  • 구입시기

 2009년 1월 19일

 

  • 도서목차

 Chapter 01   실버라이트와 RIA

 Chapter 02   익스프레션 블렌드의 소개

 Chapter 03   실버라이트 애플리케이션의 이해

 Chapter 04   실버라이트 컨트롤

 Chapter 05   그래픽

 Chapter 06   애니메이션

 Chapter 07   스타일과 템플릿

 Chapter 08   Visual Studio 2008의 소개

 Chapter 09   실버라이트를 위한 C#의 이해

 Chapter 10   실버라이트의 구조화 이벤트의 활요

 Chapter 11   실버라이트 with Deep Zoom

 Chapter 12   실버라이트의 활용

 Chapter 13   실버라이트와 웹

 Chapter 14   실버라이트와 네트워크

 Chapter 15   실버라이트와 미디어

 

이 글은 스프링노트에서 작성되었습니다.

Head First : Software Development

  • 출판사 리뷰

http://www.hanb.co.kr/look.php?isbn=978-89-7914-622-6

 

  • 구입일시

2009년 1월 19일

 

  • 도서목차
  1. 훌륭한 소프트웨어 개발하기
  2. 요구사항 수집하기
  3. 프로젝트 계획하기
  4. 사용자 스토리와 태스크
  5. 충분히 구현 가능한 좋은 설계
  6. 버전 관리
  7. 작성한 코드 빌드하기
  8. 테스트와 지속적인 통합
  9. 테스트 주도 개발
  10. 이터레이션 마무리하기
  11. 버그
  12. 실제 세계

이 글은 스프링노트에서 작성되었습니다.

ASP.NET 2.0 웹프로젝트와 실전 프로그램밍

  • ASP 2.0 에서 사용되는 특별한 용도의 디렉토리들    MSDN 

    1. App_Code

    웹응용프로그램에서 사용하는 클래스들의 소스코드를 저장, 참조페이지가 요청될 때 자동으로 컴파일된다.

    2. App_Browsers

    요청을 처리할 브라우져별 정보를 정의한 파일을 저장

    3. App_Data

    웹 응용프로그램에서 사용하는 데이터 파일 저장, 예를 들면 mdb, mdf, xml 파일 등

    4. App_LocalResources

    마스터페이지, 사용자 정의 컨트롤, 리스소 파일(resx, resources) 을 저장

    5. App_GlobalResource

    웹 응용프로그램 전체에서 공유할 수 있는 자원을 정의하는 resx파일 저장  

    6. App_Themes

    페이지나 컨트롤에 적용되는 테마 관련 파일들을 저장

    7. App_WebReferences

    웹서비스와 관련된 프록시 클래스나 스키마등의 파일 저장

    8. Bin

    웹 응용프로그램에서 사용할 로컬 어셈블리를 저장

 

  • ASP 2.0 에서 페이지간 데이터 통신

    1. get방식으로 URL에 파라미터를 통해 전달

      2. post방식으로 form 전송

      3. 세션에 데이터 저장 후 사용, 세션 데이터가 서버로 저장되므로 서버측 자원을 소비

      4. 페이지간 포스트백을 이용

      5. 서버에서 System.Web.HttpServerUtility.Transfer 메서드를 이용

 

  • MasterPage 클래스의 속성

UserControl에서 상속받은 속성

추가속성

Master : public

최상위 마스터페이지는 null을 반환, 즉 상속받은 마스터페이지에 대한 MasterPage 개체를 반환 [ 중첩된 마스터 페이지인 경우만 유효값 반환 ]

MasterPageFile : public

최상위 마스터페이지는 null을 반환. 상속받은 마스터 페이지의 경로 : PreInit 이벤트에서 MasterPageFile 속성 값을 다른 마스터페이지로 변경가능 [ 마스터 페이지를 동적으로 변경할 때 사용 가능 ]

ContentPlaceHolders : protected

마스터 페이지의 ContentPlaceHolder 컨트롤들의 ID를 저장하는 IList 타입의 컬렉션

ContentTemplates : protected

자식페이지에 정의된 Content 컨트롤에 대한 IDictionary형 컬렉션, 자식페이지의 Content 컨트롤을 렌더링하는 ITemplate 개체 포함

 

  • MasterPage 동적으로 변경하기

    1. 반드시 PreInit 이벤트에서 MasterPageFile 속성에 마스터 페이지의 새 경로를 설정

    2. 내용 페이지의 코드 블럭에서 변경

     

 

이 글은 스프링노트에서 작성되었습니다.

2010년 5월 19일 수요일

Spring Framework 3.0 달라진점

2006년 10월 스프링2.0이 릴리즈 되고, 2007년 11월에 스프링 2.5가 릴리즈 된 후, 이제 스프링 3.0의 시대가 시작되었다.

자! 스프링3.0에서 달라진 점이 어떤게 있는지 알아보자.

1. JAVA 5

2010년 5월 18일 화요일

MSDN Magazine April, 2010 (1)

Editor's Note

Scott Guthrie on Visual Studio 2010

These are whirlwind days for Microsot ’s Scott Guthrie. A corporate vice president for the .NET developer platform, he oversees development of Visual Studio, the Microsot .NET Framework, ASP.NET, Silverlight, CLR and more. Many of those products are in the “milestone” phase, with major new versions being released, or about to be released. That includes, of course, Visual Studio 2010 and the .NET Framework 4, which take flight in April. Silverlight 4 is on the way, too.

펼쳐두기..


And you thought your job was busy.

펼쳐두기..


Because this issue covers the launch of Visual Studio 2010, it made sense to talk to the man most responsible for getting it out the door. And Guthrie had much to say.

Visual Studio 2010, he says, “is a pretty big release. From a feature set and capability set, it’s pretty ambitious.” The goal from the beginning, Guthrie explains, was not just to create new features, but to answer the question: “How do we make existing developers’ lives easier?” To that end, he says, Visual Studio 2010 includes “so many new features that don’t require you to learn a whole bunch of new things.”

Using multiple monitors is one example. It’s something that isn’t a knock-’em-dead upgrade, but can definitely enhance productivity. Guthrie explains why it excites him: “Most developers have a multimonitor setup at work. Visual Studio in the past didn’t let you leverage those monitors. In Visual Studio 2010, they can tear of any code-editing window and drop it into the second monitor. It makes navigating through large products a lot easier.”

There’s even more  stuffed into Visual Studio 2010. Silverlight, for instance, is fully supported for the first time—and Guthrie says Silverlight 4 will be as well, as soon as it ships. Visual Studio 2010 also marks the debut of F#, a new .NET Framework-based language for large-scale parallel programming, such as that done in scientific and financial settings.

It’s those kinds of enhancements that, when taken as a whole, will make developers more productive. Guthrie puts it this way: [There are] a lot of things that people go ‘Finally! Yes, great, I’ve been asking for that!’”

Guthrie also notes that making sure Visual Studio 2010 was stable and fast out the door led to the month delay in shipping; as you may remember, it was originally scheduled to ship in March. User feed-back on the beta resulted in the slippage, he says: “We got feedback that performance and stability weren’t where they should be. We moved the dates to make sure we had confidence that we were building the right product.”

Guthrie believes Microsoft succeeded. Visual Studio 2010, he says, “makes developers much more productive and writing code a lot more fun.”

Magazine Revisions

It’s not only Visual Studio 2010 and .NET that are getting upgraded this month. MSDN Magazine has experienced a number of changes. To begin with, we’ve incorporated the new Microsoft MSDN logo as the nameplate on the cover. The cover had not been updated in some time, and it’s always good to look at things in a new light. Plus,the “network wave” is way cool, I think. The more “artsy” readers may also notice that our color palette has been modii ed to align with the logo colors. It makes the magazine feel more cohesive.

A more subtle change on the cover is that we’ve increased the font size of the text. MSDN sports a text-heavy cover, and making it a little easier to read all that text is what we’re going for here.

Inside, the most immediate change you’ll notice is that we’ve added illustrations for our regular columnists like Charles Petzold, Dino Esposito, David Platt and others. h ese folks are our core contributors, and I hope that by seeing their images, you might feel a little more connected to them. After all, coders are people too!

If you’re using Visual Studio 2010, we’d love to hear from you on what you like—and don’t like—about it. We also want your feedback on the changes in the magazine—do they work for you? Should we have let  well-enough alone? What other changes would you like to see? Send all comments to mmeditor@microsoft  .com.

2010년 5월 12일 수요일

2) 서버버전 전문용어

서버버전 버전 관리 시스템에서 사용하는 전문용어를 정리하여 이후 혼동을 피하도록 할 필요성이 있다.

1. 저장소 (repository)
   : 버전관리시스템에서 작업한 모든 것을 저장하는 공간

버전관리시스템 마다 저장소로 사용하는 것이 다른다. 데이터베이스를 저장소로 사용하기도 하고 일반적인 파일들을 사용하거나, 데이터베이스와 파일을 혼용해서 사용하기도 한다.

2. 작업 복사 (working copy)
    :  저장소에서 가져온 파일을 로컬의 특정장소에 저장

다른 용어로 working directory or workspace 라고도 한다.

3. checking out
    : 작업을 위해 저장소에서 최초로 working copy를 하는 행위

4. export files
    : 저장소에서 단순히 export 시점에서의 파일들은 가져오는 행위

5. committing
    : 저장소에 working copy에 작업한 내용을 반영하는 행위

6. update
    : 저장소에서 반영된 변경된 내용을 working copy 반영하는 행위

때때로 update 용어와 check out 용어를 같이 사용하기도 한다.

7. externals
    : 프로젝트의 디렉토리 내에 또 다른 서브버전 저장소 위치를 포함시킴

8. file-specific numbering 과 repository-wide numbering
    - file-specific numbering : 변경된 파일 단위로 버전관리
    - repository-wide numbering : 논리적 변경 단위로 버전관리

서브버전은 repository-wide numbering 방식을 사용한다

9. tags
    : 특정 시점에 이름을 부여하여 기억하기 쉽게 함

10. trunk
    : 개발하는 코드의 중요 몸체이자 주요 라인을 의미하는 코드

11. lazy copies
    : branch를 만들기 위해 trunk에서 간단히 특정위치로 복사하는 행위

서브버전은 내부적으로 lazy copies을 구현하기 위해 원본에서 간단히 링크만을 저장한다.

12. strict locking
    : 동시 작업시 충돌을 피하기 위해 작업 중인 파일에는 읽기 권한만 파일에 부여하고 작업이 끝나면
      쓰기 권한을 부여하는 방식

13. optimistic locking
    : 동시 작업시 모든 작업자에게 쓰기 권한을 부여하지만 저장소 저장시 가장 최근에 변경사항을 업
       데이트 할 지에 대해 물어봐서 처리

서버버전은 optimistic locking 방식을 사용한다.




1) 서버버전 사용하기

우리는 프로젝트 진행하면서 생산되는 많은 코드를 관리하기 위해 의무적으로 버전관리 툴을 사용한다. 그렇지만 이에 대한 전반적인 학습부재로 제한적인 기능만을 사용하고 있기도 하지만 이 보다 더 심각한 문제는 필요성에 대한 자기 고찰이 없어 수동적인 사용만을 강요당하고 있다는 것이다.

이에 버전관리(version control) 또는 소스코드관리(source code control)에 대한 고민을 풀어 보고자 한다.

먼저 누구나 공감(?)할 수 있는 장점을 나열해 보자

1. 과거로의 여행의 자유 (불행하게도 미래는 안된다.. -,.-;;)
    - 자신의 작성한 코드의 한시간 전, 하루 전, 또는 한 달전으로 언제든지 롤백이 가능하다.

2. 코드의 보호
    - 팀단위로 작업시 한번씩 스팀팩 받아 본 경험이 있겠지만 열심히 만든 코드를 누군가 덮어쓰기를
      할 수 있는 여지를 만들지 않는다.

3. 코드의 발자국
    - 코드가 만들어진 역사를 편하게 볼 수 있다. ( 역사를 이해하면  미래를 예측할 수 있다나....)

4. 코드 작성과 동시에 제품 탄생
    - 약간에 과장이 있기는 하지만 하루하루 또는 일정한 단위로 자동 빌드 및 릴리즈가 가능한 시스템        에서는 반드시 필요하기는 하다.

5. 프로젝트 이력
    - 버전관리를 이용하면 프로젝트가 특정한 날짜에 어떻게 진행되고 있었는지를 알 수 있다. (개발자
       가 오늘은 몇라인을 코딩했을까? .. ^^!)

지금까지 글에서 버전관리를 위한 특정 프로그램을 언급하지 않았다. 이제 서브저번에 대해서 이야기 해보자. 왜 버전관리 툴롴써 서버버전을 사용하는 것일까?

서버버전 프로젝트는 CVS에 엄청난 경험이 있는 개발자들이 시작했다. 이들은 CVS 결점을 잘 알고 있었고 높은 성능과 현시대에 부응하는 버전 관리시스템을 설계했다.

서버버전의 특징적인 기능은 다음과 같다.

1. 서버버전은 파일들 뿐만 아니라 디렉토리와 메타데이터 까지 버전관리하는 객체로 본다.
   : 여기서 메타데이터는 파일과 디렉토리와 관련 있는 서버버전 프로퍼티 정의 파일이다. 따라서 이
     메타데이터가 관리됨으로써 서버버전이 어떻게 파일을 다루는지, 키워드 확장등을 광범위하게 제
     어 할 수 있다.

2. 서버버전은 atomic commit을 지원한다.
   : 서버버전은 사용자가 커밋을 하면 전체변화가 성공적으로 반영되든지, 아니면 취소되거나 롤백된
     다. 어중간한 상태는 없다. 이것의 이점은 모든 개발자가 저장소의 동일한 뷰를 바라볼수 있다는 것
     이다.  atomic commit 과정의 일부로써 서버버전은 모든 변경된 내용을 revision (= changeset) 이
     라는 불리는 것으로 그룹핑한다. 그리고 revision number로 할당한다. 이 그룹핑에 의해 많은 변경
     파일들이 하나의 논리적 단위로 관리될 수 있다.

3. 서버버전은 똑똑한 네트워킹을 지원한다.
    : SSH 지원, Apache Web Server 연동 지원등의 다양한 옵션과 효과적인 네트워크 프로토콜을 사
      용한다.

4. 부하가 적은 branching, tagging, Merging을 지원한다.
    : CVS의 경우 branching과 labeling은 서버에 접근해서 저장소의 모든 파일들을수정해야하는 부담
       스러운 작업이다. 이런작업을 효울적인 데이터베이스 모델을 이용하여 적은 비용으로 작업이 가
      능하다.

5. 서버버전은 다양한 플랫폼에서 운영가능하다.
    : 특히 윈도우 환경에서도 잘 운영되며, 다른 머신으로 이전 또한 한번에 가능하다.
      ( 진입장벽을 깨버린 중요한 요소이다. )