철수네 소프트웨어 세상 [본점]

소프트웨어와 관련이 있다면 뭐든지 – I no longer work for Microsoft.

Archive for 11월 2007

Silverlight 2.0!!

with one comment

.NET Web Product Roadmap (ASP.NET, Silverlight, IIS7) – ScottGu’s Blog

Somasegar’s WebLog  Quick update on Silverlight

Tim Sneath : Silverlight 1.1 is Now Silverlight 2.0

Silverlight 1.0은 이미 정식 버젼이 공개되어 Go-Live로 사용할 수 있고, Silverlight 1.1은 알파버젼으로 그 프리뷰를 보여주는 상태였습니다. Silverlight 1.1의 주된 변화는 소형 .NET Framework을 기반으로 다양한 향상을 꾀하는 것이었는데, 이런 변화를 0.1의 버젼 증가로는 정의가 될 수 없었습니다. 여담이지만 애초의 0.1로 증가하자는 제안은 메이저 버젼변화가 사용자들에게 인식되는 것에 대한 네거티브 해소를 위한 것이었지만, 반대로 너무 많은 변화를 0.1이라는 마이너 버젼 숫자로 챙겨야하는 부담이 있었습니다.

그런 이유로 Silverlight의 다음 버젼을 1.1이 아닌 2.0으로 변경하기로 하였습니다. 2.0이 되면서 Silverlight는 기존 1.0의 하위 호환성은 그대로 가져가면서도 너무나 많은 향상과 변화를 가져오게 됩니다. 기존의 브라우저 JavaScript의 지원 이외에 C#이나 VB등의 .NET Framework의 언어를 사용할 수 있을 뿐만 아니라 그 외의 다양한 .NET Framework에서의 개발 장점들을 수용하고 이들의 사용으로 상당한 퍼포먼스의 향상을 꾀하고 더 많은 것을 할 수 있게 됩니다.

Scott의 블로그에 포스팅된 몇가지 향상된 내용을 살펴보면 다음과 같습니다:

  • WPF에서 사용되던 여러가지 기능들(향상된 layout, databinding, template/skin등)
  • 더 많은 컨트롤들(TextBox, CheckBox, RadioButton, Grid, StackPanel, TabControl, Slider, ScrollViewer, ProgressBar, DataGrid등)
  • REST/POX/RSS/WS-*등의 프로토콜지원과 cross domain 네트워킹을 위한 라이브러리들
  • 그리고 .NET Framework에 있던 여러가지 BCL 라이브러리들(+LINQ to XML와 HTML DOM API등)

Silverlight 2.0은 내년(2008년) 1/4분기에 그 첫 베타 버젼을 공개할 예정이고 Go-Live 라이센스로 편하게 사용할 수 있도록 할 예정입니다.

Silverlight 2.0의 개발에 맞춰서 툴들도 확장(Extenstion)들이 제공될 것입니다. 며칠전 블로깅한 Silverlight Tools, ASP.NET Futures등과 같은 무료 부가 기능들과 차후 Expression 제품군의 지원등 다양한 내용들이 기다리고 있습니다.

2.0으로의 재브랜딩은 그만큼 큰 변화를 상징하는 것으로 앞으로는 “1.1”은 잊어버리시고 Silverlight 2로 기억해주세요~

(Cross posted to my msdn blog)

.NET Framework이 들어간다는 것은 단순히 Runtime에 VM을 추가했다는 것 이상의 의미가 있습니다. 첫째로 기존에 .NET Framework 개발자들이 익숙하게 개발할 수 있다는 것. 둘째로, .NET Framework이 포터블할 수 있다는 증명. 세째로, 확장 모델이 기존 응용프로그램의 개발 모델과 크게 다르지 않다는 것. 네째로, WPF 개발과 Silverlight 개발의 경험 갭이 줄어들었다는 것. 다섯째로, LINQ등의 새로운 기능들이 Strip 되지 않고도 출시된다는 점 등이 있겠습니다. 이외에도 HTML DOM API로 웹페이지를 쪼물딱거릴 수 있다거나, 가장 크게는 웹브라우저의 확장이 더 안전한 곳에서 이뤄질 수 있다는 점등등 수많은 여러가지 내용들도 들 수 있습니다. 이렇다보니 버젼으로 2.0도 모자른 숫자이지 않을까하는 오버도 생각해봅니다.ㅎㅎㅎ

Written by charlz

2007년 11월 30일 at pm 5:40

Uncategorized에 게시됨

.NET Framework용 Parallel Extensions 12월 CTP

leave a comment »

Somasegar’s WebLog : Parallel Extensions to the .NET FX CTP

Joe Duffy’s Weblog – Parallel Extensions CTP is available!

Download details Microsoft Parallel Extensions to .NET Framework 3.5, Dec07 CTP(다운로드)

Parallel Programming with .NET(블로그)

Parallel Computing Developer Center

CPU 파워의 미래가 한 CPU에 여러개의 코어를 넣는(듀얼/쿼드 코어등) 방식을 하나의 큰 가능성으로 가닥을 잡은지 좀 지났지만, 소프트웨어에서 이를 활용하고 있는 %는 그렇게 높지 않습니다. 기존의 프로그래밍 모델들 자체가 태생이 동시에 실행되어 여러개의 코어를 지원할 수 있지 않은 이유로 작지 않은 변화를 필요로 하고 있습니다. 연구는 꽤 오랫동안 계속되어왔지만, 많은 사람들에게 있어서 그 필요성에 비해서 아직은 갈길이 멀다고 판단하는 것 같습니다. 하지만, C++계에서 유명한 Herb Sutter의 The Free Lunch Is Over A Fundamental Turn Toward Concurrency in Software에서 이야기하듯이 객체 지향의 다음 단계라는 동시성(Concurrency)은 분명히 언젠가는 해결해야할 난제임에는 분명합니다.

마이크로소프트에서도 이를 위해 지속적으로 투자를 해왔고, 그 투자 중 하나로 친숙한(?) .NET Framework에 이런 기능 넣어 더 쉽게 이를 접근할 수 있도록 하는 확장(Extension)을 마련하고 첫 CTP를 공개하였습니다. 이름하여 Parallel Extensions. 여기에는 언어 확장과 함께 이에 따라 실시간에 동시성을 제공하는 런타임을 포함합니다.

Parallel Extensions에서는 프로그래머의 동시성 접근을 위해서 3가지 방법을 제공합니다.

  • PLINQ를 사용하여 SQL과 같이 선언적인 방식으로 how가 아닌 what으로 접근하는 방법
  • 기존의 루프(Loop)나 코드 조각을 쪼개어 동시성을 제공하여 활용할 수 있는 방법(Parallel.For 등)
  • 쓰레드(Thread)와 비슷한 작업(Task) 단위로 나누어서 이들이 동시에 실행될 수 있도록 정의하는 방법(Task, Future 클래스)

개념 자체는 크게 어렵지 않고(개념보다는 실용적인 적용이 더 어려울 것입니다) 설치를 할 경우 도움말을 제공하므로 도움말의 팁과 함께 예제들을 실행해보기를 권합니다. 현재 C#과 VB을 지원합니다. 블로그에 지속적으로 이야기했듯이 CTP는 방향성을 보여주고 사용자의 피드백으로 그 방향이 맞는가를 검증하는 릴리스입니다.

(Cross-posted to my msdn blog)

MultiCore/ManyCore의 동시성을 위한 프로그래밍 방법에 관한 연구가 새로운 것은 아닙니다. 일반 소비자들의 PC에는 여러개의 CPU가 달린 Machine은 (가격의 이유로) 거의 사용되지 않았고, 근래 CPU 파워의 발전 속도를 타파하려는 노력으로 Multi-Core 방식으로 한 CPU에 코어를 여러개 넣는 방식이 주류 중 하나가 되면서 이제서야 일반적인 방식으로써 빛을 보기 시작하고 있는 것이라고 할 수 있겠습니다.

기존에 예를 들어 Thread를 사용한 프로그래밍은 일반화된 것이기는 하지만, 이는 일반적으로 라이브러리를 통한 방식이고, (태생은 CPU 시간을 쪼개는 construct였고) 주류 언어들 자체가 이를 Facilitate하는 것은 아닙니다. 한마디로 이 주류화되는 Multi-Core를 활용하는 것은 쉽지 않다는 것입니다. 동시성을 좀 더 활용하기 위해서는 라이브러리를 사용하지 않으면 게임/그래픽 개발자들처럼 어떤 경우 어셈블리를 사용해서 직접 옵티마이징하거나 더 많은 abstraction이 필요하거나 혹은 직접 제작해야 하겠고 게다가 디버깅이라는 녀석 또한 만만치 않습니다. 그래서 기존의 툴과 컴파일러 자체(그리고 그에 준하는 construct들)가 이를 지원하고 라이브러리가 더욱 주류화될 수 있도록 바뀌어야 하는 것은 하나의 숙명으로 느껴지기 시작한 것입니다.

참고: Intel의 Threading Building Blocks(오픈소스 사이트), OpenMP 스펙

Written by charlz

2007년 11월 30일 at pm 2:31

Uncategorized에 게시됨

거의 1년전 적은…웹 위의 크로스 플랫폼 전략

leave a comment »

웹 위의 크로스 플랫폼 전략

다시 읽어보니까 다듬을 곳이 많기는 하지만 읽을만 한 것 같다는 생각이 들었습니다. 좀 더 여유가 생기면 이어 나가야겠습니다.

오랜 침묵을 잠시 깨는 의미에서 묻어가는 포스트였습니다.^^

Written by charlz

2007년 11월 29일 at am 3:47

Uncategorized에 게시됨