달력

022012  이전 다음

  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  •  
  •  
  •  
이 팁은 Visual Studio Codename "Orcas"에서 사용되는 C# 입니다.
제 생각에는 C# 3.0이라고 생각되어 개인적으로 C# 3.0 미리보기라고 한것입니다.

작업 환경
- Windows Server 2003 Standard Service Pack 2
- Visual Studio Codename "Orcas"

세번째 시간입니다.
이번엔 Extension Methods에 대해서 알아보도록 하겠습니다.
이번 역시 설명보다는 예제로 설명을 하도록 하겠습니다.

일단 예제로 이메일 주소를 가지고 있는 string이 있습니다.
이 이메일 주소의 유효성 검사를 하는 클래스와 함수를 만들고 사용을 합니다.

string email = "shblitz@shblitz.net";
if ( EmailValidator.IsValid(email) )
{
}

위 예제는 EmailValidator라는 클래스에 IsValid라는 함수를 만들어서 email의 유효성을 검사하는 예제입니다.

C# 3.0에서는 저런 방법이 아니라 string이라는 객체에 함수를 추가하여 사용할 수 있도록 할 수 있습니다.
그러면 아래와 같은 방법으로 사용이 가능할 것입니다.

string email = "shblitz@shblitz.net";
if ( email.IsValidEmailAddress() )
{
}

실제적으로 string 객체에는 위에서 보는 봐야 같이 IsValidEmailAddress() 라는 함수는 없습니다.
이 함수는 사용자가 추가한 함수 입니다.

그러면 이젠 어떻게 추가를 하는지 알아보도록 하겠습니다.

새로운 클래스 파일을 생성 하신 후 아래와 같이 확장 메소드를 추가합니다.

public static class ShblitzExtensions
{
    public static bool IsValidEmailAddress(this string s)
    {
        Regex regex = new Regex(@"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$");
        return regex.IsMatch(s);
    }
}

위 예제를 보시면 이 함수는 string 객체에서 사용하고 결과 값으로 bool을 넘기는 것을 확인할 수 있습니다.

다음은 Visual Studio Codename "Orcas"에서 실제 사용되는 이미지다.

사용자 삽입 이미지

위 이미지에서 보는 것과 같이 string 객체에 IsValidEmailAddress라는 함수가 추가된것을 볼수 있다.
그리고 일반 함수와는 다르게 아이콘 모양도 다르며 풍선 도움말에는 (extension) 이라는 문구가 보인다.

위의 예제는 string 이라는 객체에 한해서 사용할 수 있는 예제입니다.
다음은 모든 객체에서 사용할 수 있는 확장 함수에 대해서 알아보도록 하겠습니다.

먼저 확장 메소드를 만듭니다.

using System;
using System.Collections;
namespace ShblitzExtensions
{
    public static class ShblitzExtensions
    {
        public static bool In(this object o, IEnumerable c)
        {
            foreach(object i in c)
            {
                if(i.Equals(o))
                {
                    return true;
                }
            }
           
            return false;
        }
    }
}

위 예제는 어떤 객체 리스트에 내가 지정한 객체가 포함이 되어 있는지 확인하는 예제입니다.
그러면 이젠 사용을 해보도록 하겠습니다.

예제는 숫자와 문자열에서 사용하는 방법입니다.

using System;
using ShblitzExtensions;
public class ShblitzTest
{
    // string 형에서 In 함수를 사용하는 예제
    public void TestUsage1()
    {
        string[] strList = { "One", "Two", "Three" };
        bool bTest1 = "One".In(strList);
       
        string strTest = "Four";
        bool bTest2 = strTest.In(strList);
    }

    // int 형에서 In 함수를 사용하는 예제
    public void TestUsage2()
    {
        int[] iList = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
       
        bool bTest1 = 3.In(iList);
       
        int iTest = 11;
        bool bTest2 = iTest.In(iList);
    }
}

위에서 보는 것과 같이 여러 객체 형에서 사용이 가능하기도 합니다.
이와 같이 사용하면 전에 사용하던 유틸 클래스 자체를 확장 함수 형식으로 변경을 해서 사용하면 편할거 같다고 생각이 듭니다.

이것으로 세번째 팁도 마치도록 하겠습니다.
다음 팁은 언제 올라올지 모르겠습니다. 아직 제가 해보지 못했거든요..
제가 해보고 이해를 하게 되면 올리도록 하겠습니다..

작성자 : 상현넘™ [SHBLITZ.NET]
Posted by 상현넘™

댓글을 달아 주세요

이 팁은 Visual Studio Codename "Orcas"에서 사용되는 C# 입니다.
제 생각에는 C# 3.0이라고 생각되어 개인적으로 C# 3.0 미리보기라고 한것입니다.

작업 환경
- Windows Server 2003 Standard Service Pack 2
- Visual Studio Codename "Orcas"

두번째 시간입니다.
이번엔 Object Initializers, Collection Initializers에 대해서 알아보도록 하겠습니다.
이번 역시 설명보다는 예제로 설명을 하도록 하겠습니다.

일단 먼저 Object Initializers에 대해서 먼저 설명을 하도록 하겠습니다.

1. C# 2.0에서 Object Initializers 사용법

Person person = new Person();
person.FirstName = "Sanghyun";
person.LastName = "Han";
person.Age = 27;

C# 2.0에선 위 예제처럼 일단 객체를 생성하고 그 객체의 각 프로퍼티에 값을 넣어주는 형식입니다.
그러나 이런 방법을 C# 3.0에선 객체를 생성하면서 한번에 가능합니다..

근데, 제 나이까지 공개가 되어 버리네요.. ㅋㅋ

2. C# 3.0에서 Object Initializers 사용법
 
Person person = new Person { FirstName = "Sanghyun", LastName = "Han", Age = 27 };

보시는 바와 같이 아주 간단합니다.
객체 생성시 {} 안에 프로퍼티 = 값 이렇게만 해주면 되는거죠!!

더 확장으로 객체안에 다른 객체를 초기화 하는 방법입니다.
물론 위의 방법과 같습니다.

Person person = new Person
{
    FirstName = "Sanghyun",
    LastName = "Han",
    Age = 27,
    Phone = new Phone
    {
        Home = "02-2222-3333",
        Cellular = "010-2222-3333"
    }
};

위 예제를 보는봐와 같이 객체 안에서 다른 객체를 생성하고 그 안에 프로퍼티의 값을 넣어주면 됩니다.
역시 엄청 편하죠^^

그럼 이번에 좀더 확장된 개념으로 Collection Initializers에 대해서 알아보도록 하겠습니다.

방법은 컬렉션의 Add 함수를 사용하는 방법과 컬렉션 생성에서 바로 추가하는 방법을 알아보도록 하겠습니다.

1.  Collection의 Add 함수를 사용

List<Person> people = new List<Person>();
people.Add(new Person { FirstName = "Sanghyun", LastName = "Han", Age = 27 });
people.Add(new Person { FirstName = "Bill", LastName = "Gates", Age = 50 });
people.Add(new Person { FirstName = "Susanne", LastName = "Guthrie", Age = 32 });

일반적으로 컬렉션 객체를 생성하고 Add 함수를 사용해서 객체를 넣는 방식입니다.
객체를 초기화 하는 방법은 위에서 설명한 방법대로 하면 되는 것입니다.

2. Collection을 초기화 할때 사용

List<Person> people = new List<Person>
{
    new Person { FirstName = "Sanghyun", LastName = "Han", Age = 27 },
    new Person { FirstName = "Bill", LastName = "Gates", Age = 50 },
    new Person { FirstName = "Susanne", LastName = "Guthrie", Age = 32 }
};

방식은 객체 초기화와 비슷하다는걸 알수 있습니다.
역시 많이 편해졌네요^^..
이것으로 두번째 팁을 마치도록 하겠습니다.
다음엔 확장 함수에 대해서 알아보도록 하죠^^

작성자 : 상현넘™ [SHBLITZ.NET]
Posted by 상현넘™

댓글을 달아 주세요

이 팁은 Visual Studio Codename "Orcas"에서 사용되는 C# 입니다.
제 생각에는 C# 3.0이라고 생각되어 개인적으로 C# 3.0 미리보기라고 한것입니다.

작업 환경
- Windows Server 2003 Standard Service Pack 2
- Visual Studio Codename "Orcas"

첫번째로 Automatic Properties에 대해서 알아보도록 하겠습니다.
설명보다는 예제로 설명을 하도록 하겠습니다.


1. C# 2.0 즉, Visual Studio 2005에서 Properties 사용법

public class Person
{
    private string _firstName;
    private string _lastName;
    private int _age;
    public string FirstName
    {
        get { return _firstName; }
        set { _firstName = value; }
    }
    public string LastName
    {
        get { return _lastName; }
        set { _lastName = value; }
    }
    public int Age
    {
        get { return _age; }
        set { _age = value; }
    }
}

지금까지 여러분들이 프로퍼티를 만들때 위 예제처럼 만들었을겁니다.
변수를 만들어 놓고 그 변수에다 값을 넣고 빼는 방식으로...
그러나 C# 3.0에서는 좀 더 편하게 변경이 되었습니다.


2. C# 3.0 즉, Visual Studio Codename "Orcas"에서 Properties 사용법

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
}

놀랍지 않습니까?? 소스 코드가 저렇게나 짧아지고 편해지다니...
그리고 프로퍼티가 일반적인 작업이 아닌 특별한 작업을 하는 경우는 C# 2.0에서 사용하던 방식대로 사용을 하시면 됩니다.
빨리 Orcas가 정식으로 나와서 사용을 했으면 좋겠군요^^

다음 팁은 객체와 컬렉션의 초기화에 대해서 알아보도록 하겠습니다.

작성자 : 상현넘™ [SHBLITZ.NET]
Posted by 상현넘™

댓글을 달아 주세요

사용자 삽입 이미지
미국과 시간차이 때문에 이 시간까지 버티면서 키노트를 보고 발표한 것들을 정리해봅니다:

이는 영어에 국한된 내용이고 차후에 SilverLight의 한글 지원에 관해서 조금 더 블로깅하겠습니다.

출처 : bkchung's WebLog

Posted by 상현넘™

댓글을 달아 주세요

vs.Eco  VS SDK for Orcas Beta 1 (April CTP) is now available

Visual Studio 2005 SDK 4.0 SxS(Side by Side) 사용할 있는 "Orcas" 베타1 SDK 나왔습니다. 등록을 하신 분들은 여느때와 동일하게 여기 다운로드 받을 있습니다.

달라진 점들은 대부분 이전의 4.0 SDK 툴과 예제들이 "Orcas" 베타1에서 돌아갈 있도록 수정되고 업그레이드된 것들이고, 이번에는 따로 떼어냈던 DSL Tools 다시 넣었다고 합니다. 여기 공개를 축하하는 동영상을 팀의 동영상을 보실 있습니다. 온라인 문서는 조만간 올라온다고 합니다. 자세한 내용은 위의 링크에서 보실 있습니다.

출처 : bkchung's WebLog

Posted by 상현넘™

댓글을 달아 주세요

Somasegar's WebLog : Visual Studio "Orcas" March CTP is available now

이전과 마찬가지로 VPC 인스톨본 두가지 형태로 제공됩니다: Orcas Related CTP Downloads

Somasegar 이야기대로 이번에는 처음으로 WPF 디자이너가 포함되었고, LINQ 기능이 향상되었고, Team Foundation Server 처음으로 공개됩니다. 달라진 점들을 (일부) 번역해보았습니다. 달라진 점이 굉장히 많으니 준비하시고~ :

  • LINQ
    LINQ
    프로젝트: CTP LINQ 프로젝트의 중요한 마일스톤입니다. LINQ 대해서 알아보시려면 여기.
    • VB 9.0 언어 지원: CTP 다음의 언어 기능들을 포함합니다:
      • Query Expressions: 기본적인 쿼리, 필터 그리고 순서(ordering) 지원
      • Object Initializers
      • Extension Methods
      • Local Variable Type Inference
      • Anonymous Types
      • XML literals
      • XML properties
      • New Line and Expression IntelliSense
    • C# 3.0 언어 지원:  CTP 5 LINQ CTP 포함되었었던 C# 3.0 모든 언어 기능을 포함합니다.
      • Query Expressions
      • Object and Collection Initializers
      • Extension Methods
      • Local Variable Type Inference and Anonymous Types
      • Lambdas bound to Delegates and Expression trees
      • Complete design-time support: Intellisense, Formatting, Colorization
    • LINQ to ADO.NET
      • LINQ ADO.NET 지원을 모두 추가하여 다양한 시나리오로 LINQ 사용할 있습니다: LINQ to SQL 프로그래밍 환경에서 데이타베이스 테이블을 직접 접근하는 기능을 제공하고, LINQ to Entities 개발자가 EDM 모델로 LINQ 사용할 있게 하며, LINQ to DataSet DataSet LINQ 사용할 있도록 해줍니다.
      • LINQ to Entities 개발자가 관계형 데이타베이스를 위해 프로그래밍을 경우, 개발하는 응용프로그램에서 사용하는 데이타를 기반 데이타베이스의 구조와 독립적인 형태로 사용할 있게 해줍니다. 엔티티 데이타 모델(EDM) 사용은 개발자가 관계형 데이타베이스에 저장된 데이타를 직접 매핑하여 사용하는 것이 아니라 응용프로그램이 사용하는 컨셉을 따르는 모델을 디자인할 있게 해줍니다. LINQ to Entities ADO.NET 프로바이더 모델을 사용하여 개발되어 백엔드의 Microsoft SQL Server 포함한 여러가지 다른 제품의 관계형 데이타베이스들을 지원합니다. CTP SQL Server SQL Server Compact Edition 두가지 LINQ to Entities 프로바이더를 제공합니다.
      • LINQ to SQL(이전에는 DLinq) 2006 5 LINQ CTP 비해 많은 향상이 있었습니다. System.Data.Linq.dll System.Data.Linq 네임스페이스에 위치합니다. 이번에 새로운 내용으로 DataContext 읽기 전용/Serialization 최적화된 보드의 제공과 DataShape 사용한 eager loading 기능 그리고 관계(relationship) 쿼리를 설정할 있는 기능입니다.
    • LINQ To SQL 디자이너
      • 디자이너 내에서 저장된 프로시져와 함수로부터 메서드를 생상할 있습니다.
    • 데이타베이스 스키마의 처리가 향상되었습니다.
    • 디자이너에서의 상속성 지원이 향상되었습니다.
  • LINQ over XML (XLinq)
    • System.Xml Bridge 클래스 추가 – LINQ to XML 트리에서 XPath XSLT, XSLT Transformation 사용하고 XML 스키마에 맞게 XElement 트리를 validate 있는 extension 메서드들이 추가되었습니다.
    • Event Model - LINQ to XML 트리가 효율적으로 GUI 동기화돨 있게 합니다. ) Windows Presentation Foundation 응용프로그램
    • 클래스 hierarchy 변화 - XObject 클래스 추가, XStreamingElement 클래스 (임시로) 제거
    • 여러가지 understandability / usability 향상 – API 깔끔하고 일관되도록 만들기 위해서 내부 리뷰, 사용성 연구, 그리고 외부 피드백으로 여러가지 작은 변화들이 있었습니다.
  • LINQ to Objects API
    • LINQ to Objects API 배열이나 제네릭 리스크등의 .NET 컬렉션에 쿼리를 있게해줍니다. API System.Core.dll System.Linq 네임스페이스에 포함되었습니다.

·  ADO.NET

  • Extended, more powerful data APIs with the ADO.NET Entity Framework
    • With the ADO.NET Entity Framework developers will be able to model the view of the data that is appropriate for each one of the applications they are building, independently of the structure of the data in the underlying database. The use of the Entity Data Model (EDM) enables developers to design models that follow the concepts built into the application, instead of having to map them to constructs available in relational stores. Once the model is in place, the powerful ADO.NET Entity Framework API is used to access and manipulate the data as .NET classes or as rows and columns, whatever is appropriate for each application.
  • Added paging and stored procedures for update (“update customization”) for ADO.NET Entity Framework:
    • Paging: the paging support in the ADO.NET Entity Framework allows developers to “page” over data in a database by indicating the start row and number of rows to be included in the result. Paging is available through Entity SQL (using the LIMIT AND SKIP keywords) and through the query-builder methods in the ObjectQuery <T> class (Top and Skip). In a future CTP the feature will also be enabled to be used in LINQ queries by means of the standard Take and Skip LINQ operators.
    • Stored-procedures for update customization: the Entity Framework by default automatically generates SQL statements for insert, update and delete operations when processing changes to entities in memory to be sent to the database. With the stored-procedures update customization feature developers have the option to override the automatic SQL generation and instead provide stored-procedures that will perform the insert, update and delete operations, which the system will call during entity change processing. Among other things, this enables scenarios where direct access to tables is restricted in the database and the only way to make changes to the data is through stored-procedures.
  • Microsoft Synchronization Services for ADO.NET
    • Provides an application programming interface (API) to synchronize data between data services and a local store. The Synchronization Services API is modeled after the ADO.NET data access APIs and gives you an intuitive way to synchronize data. It makes building applications for occasionally connected environments a logical extension of building applications where you can depend on a consistent network connection. For details please visit http://go.microsoft.com/fwlink/?LinkId=80742 .

·  Web

  • 이번 CTP에서 개발을 위해서 달라진 점들:
    • XHTML CSS 지원하는 새로운 ASP.NET 웹폼 디자인
    • ASP.NET AJAX 브라우저 DOM 위한 JScript intellisense
    • website web application에서 .NET Framework 2.0, 3.0 그리고 3.5 지원하는 멀티타게팅
    • website web application에서 사용할 있는 LINQ to SQL 디자이너

·  Client App-Level Services

  • 클라이언트 응용프로그램 개발자가 응용프로그램과 동일한 유저 프로필과 로그인 서비스를 사용할 있게 해줍니다. 이것으로 사용자는 응용프로그램의 종류와 상관없이 사용자 개인화와 인증에 백엔드 스토리지를 사용할 있습니다.

·  C# Workflow Rules

  • Workflow Rules 사용자가 코드와 비슷한 형태로 룰을 지정할 있게 합니다.
    • 룰에 C# 새로운 Extension 메서드 기능을 사용할 있습니다.
    • 룰에 연산자 오버로딩과 new 연산자를 사용할  있습니다.

·  XML

  • XML Tools: XSLT 디버거
    • Enables Input Data Breakpoints allowing the user to break the execution of the style-sheet whenever a certain node in input document is hit.
  • XML 에디터 성능 향상
    • Performance in the Xml Editor for Intellisense, schema validation etc is improved by implementing incremental parsing of the XML Document.
  • XML 에디터와 XSD 디자이너간의 부드러운 전환 
    • Improves the experience a user has when working with an XML Schema in textual and graphical mode at the same time.

·  MSBuild

  • 병렬/멀티프로세서 빌드
    • 병렬화할 프로젝트의 의존성(dependency) 정보를 사용하여 최대한 동시에 여러개의 프로젝트를 빌드
    • 빌드시 사용할 프로세서의 갯수를 지정할 있는 기증을 제공하여 개발자/빌더가 병렬성을 제어할 있도록 허용.

·  관리되는 빌드 프로세스의 UAC 매니페스트

  • 빌드 과정에서 최종 실행파일에 포함되는 메니페스트를 지원

·  IDE

    • 다음을 지원하는 Windows Presentation Foundation (WPF) 디자이너 (코드명 “Cider”) & 응용프로그램 :
      • WPF 프로젝트를 생성/수정/빌드/실행 그리고 디버깅
      • WPF 디자이너:
        • 디자이너에서 사용자 정의 컨트롤과 형식을 포함한 아무 XAML파일을 프리뷰
        • Window, Page, UserControl들을 디자인
        • Grid 기본적인 레이아웃 작업 실행
        • 프로퍼티 브라우저로 기본적인 속성 수정
        • Document Outline으로 문서의 구조를 쉽게 이해하고 네비게이트
        • 디자이너의 변화를 바로 XAML에서 있음.
      • XAML 에디터:
        • XAML intellisense 함께 수정
        • XAML 변화를 디자이너에서 바로 있음
        • WPF 컨트롤을 위한 디자인 타임 빌드
    • 윈도우 비스타 응용프로그램을 위한 IDE UAC 매니페스트
      • 윈도우 비스타 개발자가 쉽게 UAC 매니페스트를 임베디드 리소스로 포함

·  CLR

  • URI관련 클래스에 IRI 지원 (RFC 3987) 추가
    • 이로 인해서 리소스 식별자로 모든 언어를 지원하는 문자 집합을 사용할 있다.
  • Socket 클래스의 새로운 비동기 모델 지원
    • 새로운 비동기 모델로 현재의 I/O 모델에 비해서 I/O 오버헤드가 감소
  • Peer Networking 클래스
    • peer-to-peer network API들로 개발자가 협업 기능들을 기존의 응용프로그램에 쉽게 확장 가능.
  • WMI.NET Provider Extension 2.0
    • WMI.NET Provider Extension 2.0 simplifies and enhances the development of WMI providers in the .Net framework to enable the management of the .NET applications while minimizing the impact on the development time.
      • Delivers equivalent access to WMI features and functions available to native code providers.
      • Exposes property updates and methods to managed code.
      • Improved scalability for large collections of WMI entities.

·  Office

  • Enable ClickOnce deployment for Microsoft Office applications
  • Developers now have an easy to use and version resilient security model for their applications that will exist for future versions of Visual Studio and Office. With full support for ClickOnce deployment of all Office 2007 customizations and applications, developers and administrators now have the right tools and framework for easy deployment and maintenance of their Office solutions.

·  Team Architect

  • Top-down service design
    • Top-down system design allows an application architect/lead developer to perform the design of a business solution without having to be confronted with technology decisions. It enables the user to progressively refine a high-level system design, designing new sub-systems and applications in the context of the system in which they are to be used.
  • Architectural Roles on System, Applications and Endpoints
    • Enables an architect, while working on the high-level design of a system’s architecture using the System Designer, to introduce elements into the design that play a specific pre-defined architectural role(s) within architectural patterns.

·  Team Developer

  • Profiler Support for WCF Applications
    • Enable profiling of WCF based applications to improve application performance
  • Customize and extend code correctness policies
    • Code Analysis Check-in Policy improvements to communicate to a developer why the check-in policy failed and to provide guidance on how to pass the policy requirements.
  • Customize and extend code correctness policies
    • Code Analysis Check-in Policy improvements to communicate to a developer why the check-in policy failed and to provide guidance on how to pass the policy requirements.
  • Performance tune an enterprise application
    • Enables developers to run profiling during load and test procedures for a system, to see how it behaves, and use integrated tools to profile, debug and tune. This also enables performance base-lining, so that users can save a baseline profile and then, if the performance degrades, compare up-to-date traces to identify the source of the regression

·  Team Test

  • Unit Test Generation Improvements
    • Improvements to unit test generation provide an easy way for the user to specify what methods to test, and generate test methods and helper code to do unit testing, as well as providing unit test support for generics.
  • Web Test Validation Rule Improvements
    • Web Test rules improvements enable testers to create more comprehensive validation rules for the application being tested. These improvements include the following functions:
      • Stop test on error
      • Search request and response
      • Add validation rule for title
      • Redirect validation
      • Provide test level validation rules
      • Expected HTTP code
      • Warning level for errors on dependents
  • Better Web Test Data Binding
    • This feature allows users to data bind .CSV and XML files, as well as databases to a web test, using a simple databinding wizard.
  • Improved Load Test Results Management
    • With this feature user can open or remove an existing load test result from the load test repository. User can also import and export load test results files.

·  Team Foundation Server

  • Team Build
    • Support multi-threaded builds with the new MSBuild.
    • Continuous Integration – There are many components to this, including build queuing and queue management, drop management (so that users can set policies for when builds should be automatically deleted), and build triggers that allows configuration of exactly how when CI builds should be triggered, for example – every checkin, rolling build (completion of one build starts the next), etc.
    • Improved ability to specify what source, versions of source, etc to include in a build.
    • Improved ability to manage multiple build machines.
    • Simplified ability to specify what tests get run as part of a build
  • Version Control support
    • Destroy- The version control destroy operation provides administrators with the ability to remove files and folders from the version control system. The destroyed files and folders cannot be recovered once they are destroyed. Destroy allows administrators to achieve SQL server disk space usage goals without constantly needing to add more disks to the data tier machine. Destroy also facilitates removing versioned file contents that must be permanently removed from the system for any other reason.
    • Annotate - Annotate is a feature that allows developers to inspect a source code file and see at line-by-line level of detail who last changed each section of code. It brings together changeset data with difference technology to enable developers to quickly learn change history inside a source file.
    • Folder Diff - Team Foundation Server now supports compare operations on folders, whereby the contents of the folder are recursively compared to identify files that differ. Folder diff can compare local folders to local folders, local folders to server folders, and server folders to server folders. It’s a great way of identifying differences between branches, files that you’ve changed locally, and files that have changed between two points in time.
    • Get Latest on Checkout - As an optional setting on a team project or on an individual basis, you can have Team Foundation Server always download the latest version of a file when you check it out. This helps ensure that you don’t have to merge your changes with somebody else’s when you check the file back in.
  • Performance and Scale
    • This release includes numerous improvements in performance and scalability of Team Foundation Server.

·  Visual C++

  • 네이티브 C++ 응용프로그램에 윈도우 비스타 "룩앤필" 쉽게 추가
    • Developers can use Visual Studio to build ISV applications that exhibit the Windows Vista “look & feel”. A number of the Windows Vista “look & feel” features are available simply by recompiling an MFC application. Deeper integration that requires more coding or design work on the part of the developer is also simplified with Visual Studio’s integrated support for the Windows Vista native APIs.

·  Windows Communication Foundation and Workflow Foundation

  • WF 디자이너와 디버거의 통합
  • WF & WCF 통합:
    • 새로운 WCF Send/Receive 액티비티
    • 향상된 Workflow Service 호스팅
  • WF Rules 향상:
    • 연산자 오버로딩 기능 추가
    • "new" 연산자의 지원을 추가하여 사용자가 WF Rules에서 객체와 배열을 new 있음
    • extension 메서드 지원으로 사용자가 WF Rules에서 extension 메서드를 호출하는 경험이 C#에서 코딩하는 방식과 비슷하도록
  • BasicHttpBinding사용시 WCF Partial Trust 지원
  • WCF 향상된 REST/POX 지원
  • RSS Atom 프로그래밍 모델
  • Atlas 통합으로 WCF 서비스에서 AJAX 스타일의 응용프로그램을 제작시 end-to-end 프로그래밍 모델 제공
  • OASIS specifications 지원: WS-AtomicTransaction 1.1, WS-Coordination 1.1, WS-ReliableMessaging 1.1, WS-SecureConversation 1.3, WS-Trust 1.3
  • WCF 서비스 Authoring 위한 새로운 템플릿
출처 : bkchung's WebLog
Posted by 상현넘™

댓글을 달아 주세요

Download details: Visual Studio Code Name "Orcas" January 2007 CTP

Download details Visual Studio Code Name Orcas January 2007 CTP (Installable Bits)

Visual Studio Code Name Orcas Release Notes (문제가 발생할 경우 꼭 읽어보세요)

코드명 Orcas의 2007년 1월 CTP가 공개되었습니다. 이번 공개에는 VM 이미지 이외에 실행파일 형태의 설치본도 제공을 하고 있습니다. 여느때와 마찬가지로 다양한 신나는 기능들이 추가되었습니다:

  • ADO.NET Entity Framework과 LINQ to ADO.NET를 통한 데이타 관련 API의 보강
    • With the ADO.NET Entity Framework을 사용하면 데이타베이스의 데이타 구조와는 독립적으로 각 응용프로그램이 데이타를 보는 방식에 적합하도록 모델링할 수 있게됩니다. Entity Data Model (EDM)은 개발자들이 관계형 저장소에 대응되도록 매핑할 필요없이 응용프로그램의 컨셉에 맞게 모델을 디자인할 수 있도록 도와줍니다. 모델이 만들어지면 응용프로그램의 구미에 맞게 강력한 ADO.NET Entity Framework API를 사용하여 데이타를 .NET 클래스로 접근할 수도 혹은 이전처럼 행과 열로 접근할 수도 있게 됩니다.
    • ADO.NET은 LINQ에 통합되어 LINQ를 다양한 시나리오에서 사용할 수 있도록 해줍니다. 예를 들어, LINQ to SQL은 데이타베이스의 테이블을 프로그래밍 환경에서 접근할 수 있게 해주고, LINQ to Entities는 개발자들이 EDM 모델에 LINQ를 사용할 수 있게 해주며,  LINQ to DataSet은 DataSet 클래스에 LINQ를 사용할 수 있게 해줍니다.
  • C# 3.0 언어지원: 이번 CTP에는 LINQ 5월 CTP에 포함되었었던 다음과 같은 C#3.0의 언어 기능들이 포함되었습니다
    • Query Expressions
    • Object and Collection Initializers
    • Extension Methods
    • Local Variable Type Inference and Anonymous Types
    • Lambdas bound to Delegates and Expression trees
  • LINQ to Objects API
    • LINQ to Objects API는 배열(Array)이나 제네릭 리스트(Generic List)등 모든 .NET 컬렉션으로의 쿼리를 지원합니다. 이 API는 System.Core.dll의 System.Linq 네임스페이스에 정의되어있습니다. namespaces inside System.Core.dll. LINQ에 대한 자세한 내용은 여기를 참조하세요.
  • ClickOnce 향상
    • 이번 CTP에서는 ClickOnce의 WPF(Windows Presentation Foundation) 응용프로그램의 배포 지원과 타 브라우저 지원 그리고 ISV 브랜딩 기능이 추가되었습니다.
  • Elliptic Curve Diffie Hellman과 Elliptic Curve Digital Signature Algorithm을 지원하는 암호화 기능이 관리되는(Managed) 클래스로 추가되었습니다.
    • 이 클래스들로, 암호화(Cryptographic) 관련 개발자들은 관리되는(Managed) 코드로 Elliptic Curve Diffie Hellman secret agreement와 Elliptic Curve Digital Signature Algorithm signing을 할 수 있게 됩니다. 이 클래스는 비스타의 새로운 CNG 호화 라이브러리에 포함되어있지만 .NET Framework 2.0의 암호화 클래스들의 패턴을 그대로 사용합니다.(참고: 얼마전에 CNG 라이브러리가 웹 다운로드로 제공되었습니다.)
  • 아웃룩 2007을 포함한 오피스 2007의 런타임과 디자인타임 지원
    • 관리되는(managed) 코드 애드인을 어느 버젼의 오피스/오피스 응용프로그램용으로 만들던지 혹은 어느 언어를 사용하던지에 상관없이 일관적인 개발 경험을 사용할 수 있게 합니다. 관리되는(Managed) 코드 애드인은 intellisence와 자동완성 기능등으로 strongly-typed 클래스 멤버를 사용할 수 있게 도와 줍니다. 부가적으로 버젼에 특화된 코드의 추상화와 버젼에 유연한 인프라의 지원으로 이 애드인은 여러 버젼의 오피스에서 실행될 수 있습니다.
  • 애드인과 그들의 AppDomains의 생명주기(lifetime)을 관리할 수 있는 향상된 지원
    • 애드인의 생명주기(lifetime)과 호스트와 애드인간에 교환되는 객체와 애드인이 실행되는 AppDomain을 관리할 수 있는 도우미(helper) 클래스를 추가했습니다. 파이프라인 개발자는 ContractBase와 LifetimeToken 핸들을 사용하여 호스트와 애드인이 .NET 리모팅으로 인해서 불가능하더라도 garbage collector에 의해 애드인이 액티베이트된 AppDomain을 포함한 모든 것을 제어할 수 있는 것처럼 사용할 수 있습니다.
  • 로그인/로그아웃, 롤 관리 그리고 프로필(Profile)을 위한 클라이언트 서비스 지원
    • ASP.NET 2.0은 인증, 권한위임, 개인화를 위한 새로운 응용프로그램 서비스가 포함되었습니다. 이들 대부분의 서비스는 ASP.NET에 엮이지 않고 웹과 상관이 없는 응용프로그램에서도 사용할 수 있습니다. 이번 CTP에는 이런 서비스들이 로그인/로그아웃, 롤 관리 그리고 프로필(Profile)을 위한 스마트 클라이언트 응용프로그램에도 사용할 수 있도록 해줍니다.
  • 윈도우 비스타의 이벤츠 추적기인 ETW로 이벤트를 로깅할 수 있는 trace listener
    • 비스타에서는 이벤트 추적(Event tracing)이 상당히 향상되어 윈도우 대부분의 로깅 방식들 가운데 가장 성능이 좋습니다. System.Diagnostics.EventProviderTraceListener는 비스타에서 managed tracing이 ETW에서 사용할 수 있는 이벤트를 제공할 수 있도록 해줍니다. 이는 고성능의 스레드 안전한 리스너(listener)입니다.
  • Jscript Intellisense 지원
    • Jscript 코드 포매팅과 인텔리센스로 더 향상된 에디팅이 가능해졌습니다. 이 기능으로 IDE가 행 완성(completion), 문법 컬러 하일라이팅과 인플레이스 문서등을 JScript 코드에 지원되며 ASP.NET AJAX등의 스크립트 모델와 연계됩니다.
  • Int64의 범위를 넘어가는 굉장히 큰 숫자를 지원하는 새로운 수치 형식(type) 추가
    • 모든 기존의 수치 형식은 제한된 범위가 있습니다. 이번 추가는 임의의 범위를 지정할 수 있는 최초의 형식(type)이고 필요에 따라 어떠한 큰 숫자라도 수용할 수 있습니다. 이 형식은 앞으로 다른 수치형과 산술형 기능들이 들어가게 될System.Numeric 네임스페이스에 같이 들어가 있습니다. 기본적인 산술 연산으로 Pow, DivRem, GreatestCommonDivisor등을 지원합니다. 이는 다음의 인터페이스들을 구현합니다: IFormattable, IComparable, IComparable<BigInteger>, IEquatable<BigInteger>. 또한 시리얼화가 가능하고 변형이 불가(immutable)합니다. 모든 기본 integral 형식으로부터의 implicit casts와 모든 수치형식으로부터/으로의 explicit casts를 제공합니다. 이에대한 자세한 내용은 BCL 팀 블로그를 참조하실 수 있습니다.
  • LINQ over XML (XLinq)
    • 2006년 10월 CTP에 들어있던 기능 이외의 LINQ over XML의 추가기능 지원: XLinq 트리간의 변환을 위한 XLST 적용, DOM 응용프로그램과의 XML 공유를 위한 System.XML의 reader/writer 인터페이스 지원, XLinq의 노드를 위한 System.XML schema validation 지원.
  • SQL Server Compact Edition (SSCE) - SQL Server Everywhere라는 이름에서 다시 Compact Edition으로 바뀌었습니다.
    • SQL Server Compact Edition (SSCE)은 데스크탑이나 디바이스 로컬의 OC(Occasionally Connected, 온라인 오프라인을 동시에 지원하는)형 클라이언트 응용프로그램의 관계형 데이타 저장소를 제공합니다. SSCE는 경량이고 임베드가 가능하며 클라이언트 응용프로그램과 함께 복잡한 관리작업 없이 쉽게 배포가 가능합니다. Timestamp (row version id) 데이타 형, 향상된 테이블 디자이너, 퀴리 처리기 향상과 로컬 트랜잭션 스코프등의 새로운 기능들이 추가되었습니다. (SSCE의 한글버젼은 며칠내에 나올 예정인 것 같습니다.)

(급 번역으로 번역이 조잡하니, 혹 이해가 가지 않는 부분이 있다면 바로 알려주세요^^;;) "Orcas"의 CTP는 기능들이 해당 시기에 공개가 가능할 경우에 추가가 되는 것들로 일정등에 맞추기 위해서 이전 CTP에 있던 기능이 다음에는 빠지거나 할 수 있습니다. 이는 정품에 기능이 존재하는가의 여부와는 관련이 없음을 알려드립니다.

출처 : bkchung's WebLog

Posted by 상현넘™

댓글을 달아 주세요