그런데 코딩된 UI 테스트 빌더를 사용하다 보면, 어설션을 추가할 수 있는 속성의 수가 매우 제한 적인 것을 알 수 있습니다. 예를 들어서, WPF의 리스트 박스에 항목이 몇 개 있는지를 나타내는 Count와 같은 속성에 어설션을 추가하고 싶은데, 그런 속성을 코딩된 UI 테스트 빌더를 사용하면 찾을 수가 없는 것이죠.
이럴 때는 코드를 통해서 어설션을 추가해야 합니다. 그래서 다음과 같이 UIMap.Designer.cs에 어설션을 추가합니다.
그리고 테스트를 실행하면, 다음과 같이 테스트가 통과하게 되죠.
하지만, 코딩된 UI 테스트 빌더를 이용해서 새 테스트를 추가하거나, 편집을 수행하는 순간 UIMap.Designer.cs에 추가한 코드는 날아가 버립니다. 이 때문에 UIMap클래스는 partial 클래스로 선언이 되어 있습니다. 디자이너가 생성하는 코드는 UIMap.Designer.cs에, 그리고 코딩된 UI 테스트 빌더를 사용해서 추가하기 힘든 코드는 UIMap.cs에 직접 추가하게 되는 것이죠. 그렇다면 위 테스트는 UIMap.cs에 다음과 같이 코드를 추가하면 간단하게 해결 됩니다.
그리고 테스트 메서드에서 CheckListItemCount를 호출하도록 코드를 추가해주면 되는 것이죠.
[TestMethod]
publicvoid CodedUITestMethod1()
{
// 이 테스트의 코드를 생성하려면 바로 가기 메뉴에서 "코딩된 UI 테스트에 대한 코드 생성"을 선택한 다음 메뉴 항목 중 하나를 선택하십시오.// 생성된 코드에 대한 자세한 내용은 http://go.microsoft.com/fwlink/?LinkId=179463을 참조하십시오.this.UIMap.SelectionTest();
this.UIMap.CheckListItemCount();
}
그러면, 의도 했던 테스트가 제대로 추가 되는 것을 볼 수 있습니다.
정말 오랜만에 썼는데, 쓰고 나니 별 내용이 없는 포스트 네요 ㅠ_ㅠ;; 다음에 또 찾아 뵙겠습니다.
ps. 예제 코드를 첨부해드립니다. 예제는 Visual Studio 2010에서 작성했습니다.
이번 시간에 다룰 것은 투명 이미지 입니다. 얼마 전 댓글로 문의하신 내용인데 답변을 달기가 조금 부족한 듯 싶어서, 이렇게 별도로 아티클(?)로 남깁니다.
예전에 Win32 API 로 알파가 있는 이미지를 표현하는 작업은 무척 번거로운 작업이였습니다. 이미지 색상에 알파가 고려되어지면, 각 색상 성분마다 알파 연산을 해주어야 합니다. 또한 RGB 각 성분이 8비트씩 사용하는데 A성분이 추가되어지면서, 다시 8비트의 추가 데이터들이 각 색상값들에 필요하게 됩니다. 용량이 커지면 성능에 문제가 생기게 되는 것은 당연한 일입니다.
그래서 이를 흉내내기 위한 대안으로 마련된 것이 ColorKey 라고 불리는 기법입니다. 이 기법은 이미지 내의 특정 색상을 표현하지 않음으로써 구현됩니다. 아래의 그림을 예로 들어보겠습니다.
이미지 내에서 배경이 모두 붉은 색으로 되어있습니다. 이런 경우에 붉은 색을 ColorKey로 지정해서 데이터를 읽지 않는 것입니다. 그러면, 캐릭터 관련 색상만 메모리에 기록되게 됩니다. 이 방법을 사용하면 24비트 비트맵만으로 캐릭터를 표현할 수 있습니다. 주의해야 할 점은, ColorKey 에 해당하는 색상 값을 아티스트들에게 사용하지 말 것에 대한 사전 협의가 있어야 겠지요.
아쉽게도(?) Direct2D에서 이 ColorKey 사용에 대한 API를 찾지 못했습니다. ( Direct3D 에는 있습니다.^^ )
사실 ColorKey 방식이 널리 이용되긴 하지만, 근본적으로 알파 처리를 이용하며 관련 효과를 모두 구현할 수 있습니다. 그렇기 때문에, 굳이 ColorKey 를 염두할 필요성은 없습니다.
이번에 샘플에 사용한 이미지는 알파가 있습니다.
우측의 흑백 이미지가 알파 성분만 표현한 이미지 입니다. 당연히 검은 부분은 알파 성분이 0 이기 때문에 해당 영역은 화면에 표현되지 않을 것입니다.
이번에 살펴볼 샘플은 아래와 같습니다.
똑같은 이미지 파일에서 데이터를 읽었지만, 위의 그림은 알파 처리가 되어서 동물 부분만 출력이 되었습니다. 하지만 아래 부분은 알파처리가 이루어지지 않아서 이미지 영역이 모두 출력되었습니다.
이번 결과의 차이는 WIC를 이용한 것입니다. 우리가 지금껏 무심코(?) 지나쳤던 WIC의 컨버터를 기억하십니까?
제가 이번 샘플을 위해서 약간 개량을 했습니다. 두 사용법에 별 차이는 없지만, GUID_WICPixelFormat... 부분이 보일 것입니다. 이 인자가 바로 두 이미지의 차이를 만들어낸 부분입니다. 즉, 컨버터에서 데이터를 어떤 포맷으로 읽어들일지를 설정하는 부분입니다.
첫번째는 알파처리를 수행하는 방법으로 데이터를 읽어들입니다. GUID_WICPixelFormat32bppPBGRA는 4개의 색상 채널을 가지고 채널당 8개의 비트를 가지고 있으며, 픽셀 당 32비트를 표현하며 UINT로 각 색상이 저장되어 있는 포맷을 의미합니다.
두번째 알파처리를 하지 않는 GUID_WICPixelFormat32bppBGR은 3개의 색상 채널과 8비트로 각 채널을 표현하는 32비트 픽셀 포맷을 의미합니다. 이 포맷도 UINT로 각 색상 성분을 표현합니다. 이 경우에는 알파 채널이 존재하지만, 실제로 읽어들이지 않습니다.
즉, 알파 채널을 무시하는 것입니다.
관련 포맷이 매우 방대하기 때문에, 여기서 더 이상 자세히 다루지 않습니다. 중요한 것은 이 컨버터 덕분에 별다른 수고 없이 알파 처리를 쉽게 수행할 수 있습니다.
Direct2D 가 사실 많은 부분을 우리가 모르게 자동적으로 처리하는 부분이 많이 있습니다. Direct2D에서는 프로퍼티를 생성하는 부분들이 많이 있습니다. 예를 들면 다음과 같은 것들입니다.
사실 이 프로퍼티 정보들을 별도로 설정하지 않으면, 자동적으로 Direct2D에서 처리를 해버립니다. 혹은 디폴트 생성자들이 모두 들어있습니다. 자동적으로 처리되는 부분들 이외의 기능이 필요하다면, 이들을 잘 제어해야만 하겠지요..^^
Direct2D의 변환과 관련된 API는 모두 변환을 수행할 중심점을 함수 인자로 요구를 합니다. 그렇다면, 이 중심점은 스크린 기준에서 정의되어지는 것일까요?
다음과 같은 다람쥐 그림이 있다고 가정해 보겠습니다.
이 그림은 ( 100, 100 ) 의 크기로 그려지기를 원한다고 가정해 보겠습니다.
그리고 우리의 모니터에 ( 300, 200 ) 위치에 그려지기 원하도록 설정하겠습니다. 그러면, 우리에게 변환을 위한 중점을 설정하기 위한 기준 좌표는 어떻게 설정되어야 할까요? 그림의 좌측 상단을 변환의 중점으로 원한다면 ( 300, 200 )으로 설정하면 될까요? 그림의 좌측 상단이 변환의 중점이 된다는 말의 의미를 잘 되새겨 보시기 바랍니다.
그림의 중심을 기준으로 중점을 설정해 두는 것이 훨씬 쉬운 개념으로 변환할 수 있습니다. 즉, 위의 그림에서 변환의 중심이 되는 좌측 상단은 좌표는 ( 0, 0 ) 이 되는 것입니다. 만약, 우측 하단이 변환이 중심이 되길 원한다면 ( 100, 100 )을 설정하면 됩니다.
앞서 살펴 보았던 샘플에는 이 의미를 그냥 넘겼지만 이번에 제공되는 샘플에서는 이를 고려해서 모두 작성했으니, 유심히 살펴보시기 바랍니다.^^
우리는 이 개념을 다음과 같이 지금까지 사용하고 있었습니다.
D2D1_RECT_F 정의의 변수가 보이시나요? 바로 이 dxArea 를 기준으로 변환이 되는 중점을 설정하는 것이 이해하기가 편리합니다.^^
이번 샘플은 지난 번 샘플의 연장에 있습니다. 지난 번 샘플에서 이번 내용과 관련된 부분을 추가 했습니다.
< Scale( 확대/축소 ) >
확대/축소 작업은 1.0을 기준으로 이루어집니다. 1.0 보다 작으면 축소가, 1.0보다 크다면 확대가 이루어 집니다. 이 작업은 D2D1::Matrix3x2F::Scale() API를 통해서 이루어 지는데, 역시나 변환의 중점을 요구합니다.^^
만약 좌측 상단을 기준으로 확대를 하면 다음과 같은 개념입니다.
< Skew( 찌그러뜨리기 ) >
마지막 변환은 찌그러뜨리기 작업입니다. 이는 Matrix3x2F::Skew() API를 통해서 설정할 수 있습니다. 함수 인자로 받는 것은 X축과 Y축의 찌그러질 각도와 역시나 기준이 되는 중점입니다.
역시나 변환이 되는 중점에 따라 결과가 변합니다. 아래의 그림은 30도씩 찌끄러뜨린 결과입니다. 첫번째는 X축만 적용한 것이고, 두번째는 Y축을, 세번째는 X와 Y축 모두를 30도씩 찌그러뜨린 결과입니다.
2010년겨울마이크로소프트는 XBOX 360의새로운사용자인터페이스로 프로젝트 명 나탈을 키넥트라는 이름으로출시했습니다(Kinect for Xbox 360). 이후키넥트는기록상가장빨리판매된가전기기로선정되었고,최근에나온마이크로소프트의제품중사용자에게가장빠른시간에인정받는제품으로 인정 받은 것 같습니다.
키넥트는상황인지컴퓨팅 중 NUI의일반사용자버전으로개발자, 과학자, 그리고해커들에게도상당히매력적으로보인것같습니다. 여기에의료와전시등다양한분야에서키넥트를활용한시나리오가거론되면서, Xbox360이아닌 PC에서의적용에대한다양한시도가일어나게됩니다.
너무 멋져요을 개봉된! 나는 필자 전에 이런 걸 배우는 가정 없다. 그래서이 주제에 대한 몇 가지 참신한 아이디어가있는 모든 사람을 찾을 수 좋네요. 정말이 일을 시작 주셔서 감사합니다. 이 웹 사이트는 약간 독창성과 웹, 누군가에 원한의 한 가지입니다. 웹에 새로운 것을 가져다 유용 직업!
지금 D2D1을 공부중입니다.
혹시나 해서 질문을 올려보는데요.
RanderTarge->DrawBitmap();//해주고
RanderTarge->SetTransform();//을 해주면 비트맵이 변화가 되서 나옵니다. 그런데 이때 궁금 한점이 여러장의 비트맵을 생성했을 경우 DrawBitmap에는 각각의 비트맵을 선택해서 생성을 할수가 있는데 SetTransform은 일괄적으로 바껴버리네요 이걸 어떻게 해야하는건가요???
너무 멋져요을 개봉된! 나는 필자 전에 이런 걸 배우는 가정 없다. 그래서이 주제에 대한 몇 가지 참신한 아이디어가있는 모든 사람을 찾을 수 좋네요. 정말이 일을 시작 주셔서 감사합니다. 이 웹 사이트는 약간 독창성과 웹, 누군가에 원한의 한 가지입니다. 웹에 새로운 것을 가져다 유용 직업!
너무 멋져요을 개봉된! 나는 필자 전에 이런 걸 배우는 가정 없다. 그래서이 주제에 대한 몇 가지 참신한 아이디어가있는 모든 사람을 찾을 수 좋네요. 정말이 일을 시작 주셔서 감사합니다. 이 웹 사이트는 약간 독창성과 웹, 누군가에 원한의 한 가지입니다. 웹에 새로운 것을 가져다 유용 직업!
처음 Visual Studio 2010 릴리즈 되었을 때는 HTML5 기능이 추가가 되지 않았습니다. 그래서 XML Schema 를 이용하는 방법으로 HTML 텍스트 에디터에서 HTML5 구문을 사용하기도 하였습니다. 하지만 이번 Visual Studio 2010 SP1에는 정식으로 HTML5 인텔리센스와 유효성을 검사할 수 있는 기능이 추가가 되었습니다.
이 기능을 활성화하기 위해서 도구->옵션의 텍스트 에디터->HTML->유효성에서 HTML5 유효성 검사를 지정할 수 있습니다.
HTML5가 지원하는 여러 구문을 인텔리센스에서 자연스럽게 보여줍니다.
더불어 CSS3 를 완벽하게 지원하지는 않지만, 일부분 CSS3를 지원해 줍니다. CSS3 기능은 앞으로 그 기능을 보강할 수 있는 확장 기능으로 Visual Studio Gallery 에서 배포가 되길 기대해봅니다.
너무 멋져요을 개봉된! 나는 필자 전에 이런 걸 배우는 가정 없다. 그래서이 주제에 대한 몇 가지 참신한 아이디어가있는 모든 사람을 찾을 수 좋네요. 정말이 일을 시작 주셔서 감사합니다. 이 웹 사이트는 약간 독창성과 웹, 누군가에 원한의 한 가지입니다. 웹에 새로운 것을 가져다 유용 직업!
배포 가능한 종속성(Deployable Dependencies) 는 이번 Visual Studio 2010 SP1 에서 새롭게 추가된 기능입니다. 웹 응용 프로그램을 서버로 배포하기 위해서는 필수 구성 요소들이 설치가 되어 있어야 하는데, 배포 가능한 종속성 기능을 이용하면 웹 응용 프로그램이 동작에 필요한 일부 컴포넌트를 바로 배포할 수 있도록 도와줍니다.
웹 응용 프로그램에서 마우스 오른쪽 버튼을 클릭하여 컨텍스트 메뉴를 활성화하면 다음과 같은 메뉴 항목이 추가가 되어 있습니다.
메뉴 항목을 선택하면 아래와 같은 창이 나타납니다. 이 창에서는 ASP.NET MVC3 에서 사용하는 Razor 컴포넌트와 SQL Server Compact 를 선택할 수 있습니다.
위와 같이 배포 시 포함할 종속된 어셈블리/컴포넌트를 선택하여 확인 버튼을 클릭하면, 다음과 같이 웹 응용 프로그램 프로젝트에 _bin_deployableAssemblies 폴더가 생성이 되고, 이 하위에 관련된 어셈블리가 추가가 됩니다.
웹 응용 프로그램을 게시를 하게 되면, 위의 _bin_deployableAssemblies 폴더의 어셈블리는 웹 응용 프로그램의 bin 폴더로 배포가 됩니다.
물론, 웹 배포 패키지로 .ZIP 파일로 생성을 하여도 종속성을 추가한 어셈블리는 BIN 폴더에 추가가 되며, 이 패키지를 이용하여 배포할 서버에 컴포넌트의 설치 없이 바로 배포할 수 있습니다.
다만 현재는 여러 가지 배포 어셈블리/컴포넌트를 지원하지 않고 아래의 3개지의 컴포넌트만 배포를 지원해 줍니다.
너무 멋져요을 개봉된! 나는 필자 전에 이런 걸 배우는 가정 없다. 그래서이 주제에 대한 몇 가지 참신한 아이디어가있는 모든 사람을 찾을 수 좋네요. 정말이 일을 시작 주셔서 감사합니다. 이 웹 사이트는 약간 독창성과 웹, 누군가에 원한의 한 가지입니다. 웹에 새로운 것을 가져다 유용 직업!
ASP.NET MVC3 가 릴리즈 되면서 이에 발맞추어 Visual Studio 2010 SP1이 개발 도구에서 ASP.NET MVC3를 지원합니다. 특히 ASP.NET MVC3 Beta 버전에서는 지원하지 않았던, ASP.NET MVC3의 중요한 기능 중의 하나인 Razor View Engine인데, Razor View Engine의 Syntax 및 Intellisence 도 함께 지원합니다.
새로운 프로젝트를 만들 때 ASP.NET MVC3 프로젝트 템플릿에서 Razor 뷰를 선택하면 Razor View Engine을 사용할 수 있습니다.
더불어 일반 ASP.NET MVC3의 ASPX 페이지 또한 새로운 뷰를 추가할 때 Razor 뷰로 추가하면, 기존 ASP.NET MVC3의 Razor Engine을 그대로 사용할 수 있습니다.
Web Platform Installer 통합
Visual Studio 2010과 Web Platform Installer(WPI) 가 통합이 되었습니다. Visual Studio 2010에서 WPI를 바로 실행할 수 있는 툴바가 추가 되었습니다.
앞에까지는 STL의 알고리즘에 추가된 것들을 다루었는데 이번에는
컨테이너 하나를 소개하겠습니다. 사실 이 컨테이너는 저도 얼마 전까지만 하더라도 새로 추가 된지 몰랐습니다.^^;
새로 추가된 컨테이너의 이름은 ‘forward_list’입니다.
이름을 들어보니 대충 어떤 컨테이너인지 감이 오시죠?^^ 네
이 컨테이너는 기존의 list 컨테이너와 비슷한 종류의 컨테이너입니다.
forward_list를 만든 이유
표준 라이브러리(STL)에는 이미 리스트(std::list) 라이브러리가 있습니다. 이것은 쌍 방향 리스트입니다. list는 사용하기는 편하지만 사용 메모리나 처리 속도에 조금 아쉬운 점이 있습니다. 또 대 부분의 상황에서 쌍 방향 리스트가 필요한 경우보다는 단 방향 리스트만으로 충분한 경우가 자주 있습니다. 이런 이유로 C++0x에서는 단 방향 리스트를 추가하기로 했습니다.
forward_list의 설계 방침
1. 특별한 이유가 없다면 forward_list는 기존의 list의 설계에 맞춘다.
2. 설계 상의 선택 기가 여러 개인 경우 성능(속도와 사이즈)을 최우선 한다(C의 구조체로 구현하는 경우와 비교하여 Zero Overhead로 한다).
3. std::list의
insert와 erase를 forward_list에서도
제공할 수 있지만 구현이 복잡해지고 성능 측면에서 좋지 않으므로 제공하지 않는다.
4. 다른 STL의 컨테이너들에 있는 size 함수를
제공하지 않는다. 이유는 요소 수를 보존하는 멤버를가지고 있으면 C언어에서
구현한 것과 비교해서 불필요한 메모리를 사용한다. 만약 이런 멤버를 가지고 있지 않으면서 size 함수를 지원하면 호출할 때마다 모든 요소를 세어야 하므로 계산량이 O(N)이
된다(그런데 유저는 다른 컨테이너와 같이 size의 계산량이
작을 것이라고 생각할 수 있다). 또 이미 unordered와
같은 연상 컨테이너도 기존의 요소를 만족하지 않고 있다.
STL의 list 컨테이너와 다른 점
forward_list는 기존의 list와 아래와 같은 점이 다릅니다.
1. forward_list는 단 방향 리스트(singly-linked-list)이다. 각 요소는 그 다음 요소를
가리키는 포인터를 하나만 가지고 있다(list은 양 방향 리스트).
2. (단 방향 리스트이므로)
list에 비해서 메모리를 작게 사용한다. 이것은 각 요소의 메모리만이 아닌 컨테이너 그
자체의 사이즈도 작다. int 형에 대해서 list는 12바이트라면 forward_list는 8바이트이다(64비트에서는 각각
24, 16).
너무 멋져요을 개봉된! 나는 필자 전에 이런 걸 배우는 가정 없다. 그래서이 주제에 대한 몇 가지 참신한 아이디어가있는 모든 사람을 찾을 수 좋네요. 정말이 일을 시작 주셔서 감사합니다. 이 웹 사이트는 약간 독창성과 웹, 누군가에 원한의 한 가지입니다. 웹에 새로운 것을 가져다 유용 직업!
기본적으로 웹 응용 프로그램을 개발할 경우 로컬에서 동작하는 ASP.NET Development Server 가 활성화가 됩니다.
그림 1 로컬 ASP.NET Development Server 가 동작하는 화면
웹을 개발할 때 Visual Studio가 제공하는 로컬에서 동작하는 ASP.NET Development Server 로 충분히 어려움 없이 개발을 할 수 있으나 웹 개발의 여러 가지 상황을 고려해 보면 기능이 충분하지는 않았습니다.
예를 들면, 기존의 로컬에서 동작하는 ASP.NET Development Server는 특정 웹 페이지나 XML 웹 서비스, WCF 서비스가 SSL(Secure Sockets Layer)로 동작한다거나 WCF의 NET.TCP, NET.PIPE 등의 바인딩을 사용할 수 없었습니다.
이런 여러 가지 기능적으로 IIS Express 를 사용할 경우 얻을 수 있는 이점이 많고, 기존 웹 응용 프로그램을 IIS Express에서 동작하도록 변경하기 위한 절차 또한 매우 간단합니다.
IIS Express가 설치되어 있다면, 웹 응용 프로그램에서 마우스 오른쪽 버튼을 클릭하여 IIS Express 사용을 선택하면 즉시 IIS Express 에서 웹 응용 프로그램이 동작하도록 할 수 있습니다.
그리고 다음의 확인 메시지에서 '예'를 클릭하면 바로 IIS Express로 웹 응용 프로그램을 개발할 수 있습니다.
IIS Express는 윈도우의 알림 영역에서 찾을 수 있으며 이 아이콘을 이용하여 여러 개의 호스팅 되고 있는 웹 응용 프로그램을 관리할 수 있습니다.
IIS Express를 사용하여 Visual Studio 2010에서 여러 가지 설정을 즉시 변경해 줄 수 있습니다.
그림 2 IIS Express 설치시 웹 응용 프로그램 속성
그림 3 기존 ASP.NET Development Server 속성
IIS 7과 IIS Express 버전의 비교표:
Area
IIS 7
IIS Express
Shipping mechanism
Ships with the OS.
Ships out-of-band. It is automatically included with WebMatrix but can also be installed separately.
Supported Windows editions
Limited number of Windows Vista and Windows 7 editions
Most editions of Windows Server 2003, 2008 and 2008 R2
All editions of Windows XP, Vista, Windows 7
All editions of Windows Server 2008 and 2008 R2
Supported .NET Framework versions
v2.0 SP1 and above
v2.0 SP1 and above (.NET 4.0 is required).
Supported programming languages
Classic ASP, ASP.NET, and PHP
Classic ASP, ASP.NET, and PHP
Process model
Windows Process Activation Service (WAS) automatically manages configured sites.
User launches and terminates sites.
Hosted WebCore (aka Hostable Web Core) support
Yes
Yes. IIS Express is implemented as a layer over HWC.
Supported protocols
HTTP, FTP, WebDAV, HTTPS, and WCF (including over TCP, Named Pipes, and MSMQ)
HTTP, HTTPS, and WCF over HTTP
Non-admin support
WAS must run with administrator user rights.
A standard user is allowed to complete most tasks.
Multi-developer support
None
Yes. Configuration files, settings, and Web content are maintained on a per-user basis.
Visual Studio support
Yes
VS 2010 SP1 Beta allows IIS Express to be used instead of Cassini. VS 2008 can also be manually configured to use IIS Express.
너무 멋져요을 개봉된! 나는 필자 전에 이런 걸 배우는 가정 없다. 그래서이 주제에 대한 몇 가지 참신한 아이디어가있는 모든 사람을 찾을 수 좋네요. 정말이 일을 시작 주셔서 감사합니다. 이 웹 사이트는 약간 독창성과 웹, 누군가에 원한의 한 가지입니다. 웹에 새로운 것을 가져다 유용 직업!
상관없이 판매하는 어떤 제품의, 그것이 흥미롭고 매력적인 외모면 더 많은 사람들이 그것을 사용하여 회사는 전문적이고 설득력보세요. 이 오해를 한 동안 그 많은 돈을 필요로 좋은 책자를 생산합니다. 지금은 훨씬 저렴합니다 홍보 자료의 작성을 만들 수 있습니다 우리 주변에 기술이 많습니다.
너무 멋져요을 개봉된! 나는 필자 전에 이런 걸 배우는 가정 없다. 그래서이 주제에 대한 몇 가지 참신한 아이디어가있는 모든 사람을 찾을 수 좋네요. 정말이 일을 시작 주셔서 감사합니다. 이 웹 사이트는 약간 독창성과 웹, 누군가에 원한의 한 가지입니다. 웹에 새로운 것을 가져다 유용 직업!
Visual Studio 2010에서 단위 테스트 프로젝트를 생성하면 .NET Framework 4.0 의 단위 테스트 프로젝트를 지원했습니다. 단위 테스트 프로젝트를 .NET Framework 3.5 로 변경을 하게 되면 올바로 단위 테스트가 수행되지 않았던 문제가 있었습니다. 바로 아래와 같이 .NET Framework 버전을 변경하게 되면 발생하는 오류 메시지입니다.
그림 1 Visual Studio 2010에서 .NET Framework 3.5 로 변경할 경우
때문에 MSBuild 4.0으로 .NET Framework 3.5 빌드 및 테스트를 하게 되면 올바르게 빌드가 되지 않는 문제가 있었습니다.
너무 멋져요을 개봉된! 나는 필자 전에 이런 걸 배우는 가정 없다. 그래서이 주제에 대한 몇 가지 참신한 아이디어가있는 모든 사람을 찾을 수 좋네요. 정말이 일을 시작 주셔서 감사합니다. 이 웹 사이트는 약간 독창성과 웹, 누군가에 원한의 한 가지입니다. 웹에 새로운 것을 가져다 유용 직업!
너무 멋져요을 개봉된! 나는 필자 전에 이런 걸 배우는 가정 없다. 그래서이 주제에 대한 몇 가지 참신한 아이디어가있는 모든 사람을 찾을 수 좋네요. 정말이 일을 시작 주셔서 감사합니다. 이 웹 사이트는 약간 독창성과 웹, 누군가에 원한의 한 가지입니다. 웹에 새로운 것을 가져다 유용 직업!
Visual Studio 2010 이전의 도움말 설명서(Help Documentation) 은 별도의 클라이언트 응용 프로그램으로 구동되었습니다. 하지만 Visual Studio 2010버전에서는 웹 브라우저를 통해 MSDN Online과 같은 화면으로 도움말 설명서가 로컬 웹 서버를 통해 구동이 되었습니다.
그림 1 Visual Studio 2008 도움말 설명서
그림 2 Visual Studio 2010 로컬 웹 도움말 설명서
두 가지 방식의 장단점은 다르겠지만, Visual Studio 2010 로컬 웹 도움말 설명서는 입력한 내용의 인덱스를 보여주지 않아 매우 불편했었습니다. 클래스 이름이나 네임스페이스 이름으로 검색할 때 AJAX 기술로 키워드의 인덱스를 보여주었더라면 그나마 좋았을 텐데 하고 불편함을 감수하기도 하였습니다.
Visual Studio 2010 SP1 에서는 로컬 웹이 구동되고 키워드가 인덱스 되지 않는 부분을 개선하여 기존의 로컬 도움말 설명서로 개선이 되었습니다.
그림 3 Visual Studio 2010 SP1 의 로컬 도움말 설명서
기존의 Visual Studio 2008 과 유사한 로컬 도움말 설명서 응용 프로그램으로 구동이 됩니다. 다만, 필자는 색인 창을 오른쪽에 도킹하여 쓰는데, 현재 Visual Studio 2010 SP1 에서는 도킹 기능은 제공하지 않습니다.
개선해야 할 점
기존의 웹 브라우저 방식보다 Help Viewer 1.1 이 낫긴 하지만, 여전히 사용자의 측면에서 불편하기는 마찬가지 입니다.
첫 번째, 여전히 로컬 웹 서버가 동작하여 도움말이 구동됩니다. 닫아버리고 싶은 왠지 모를 강박감…!
두 번째, 도움말의 폰트 크기가 제각각 입니다. 폰트도 작은데, 크게 키우면 너무 크고...
좌측은 Help Viewer 1.1, 우측은 MSDN 온라인 도움말.
세 번째, 샘플 코드 구조가 사정없이 깨집니다.
좌측, Help Viewer 1.1, 우측은 MSDN 온라인 도움말
네 번째, 개인적으로 인덱스 창을 오른쪽에 도킹하는데, 도킹 기능이 없네요^^;
다섯 번째, MSDN Documentation 2008 에서는 고유 URL 이 있는데, 지금은 도움말 에이전트의 URL 도 보여주지 않네요.
좌측은 MSDN Documentation 2008, 우측은 Help Viewer 1.1
너무 멋져요을 개봉된! 나는 필자 전에 이런 걸 배우는 가정 없다. 그래서이 주제에 대한 몇 가지 참신한 아이디어가있는 모든 사람을 찾을 수 좋네요. 정말이 일을 시작 주셔서 감사합니다. 이 웹 사이트는 약간 독창성과 웹, 누군가에 원한의 한 가지입니다. 웹에 새로운 것을 가져다 유용 직업!
너무 멋져요을 개봉된! 나는 필자 전에 이런 걸 배우는 가정 없다. 그래서이 주제에 대한 몇 가지 참신한 아이디어가있는 모든 사람을 찾을 수 좋네요. 정말이 일을 시작 주셔서 감사합니다. 이 웹 사이트는 약간 독창성과 웹, 누군가에 원한의 한 가지입니다. 웹에 새로운 것을 가져다 유용 직업!
"Visual Studio 응용프로그램모델링완전정복백서"는개발자에서더뛰어난개발자로안내하는효과적인백서입니다. 최종산출물인잘동작하는소스코드를위해, 모델링에대한배경과방법을개발자의관점에서설명합니다. 그리고 Visual Studio 2010를이용하여개발자가효과적으로모델링을할수있는환경을제시합니다.
개발자들이여, 이제는 "개발자는코드로말한다"는관념을버리십시오.현대의소프트웨어개발에서는언제까지당신의코드가나오기까지기다려주지않습니다.선택과집중의개발생태계에서당신이올바른방향을바라보고그첫발을내딛는다는것을아무도믿어주지않습니다.
ASP.NET 의가려운곳을긁어줄대안의프레임워크가나왔으니바로 ASP.NET MVC 프레임워크입니다. MVC 는각각담당하고있는일이있습니다. 컨트롤러는사용자요청의흐름을제어하고그에따른모델과뷰를선택하는일, 모델은데이터와유효성검사, 비즈니스로직을담당하는일, 뷰는컨트롤러에서전달받은데이터를 UI에서처리하는일을합니다. 이렇게모델, 뷰, 컨트롤러로명확하게분리된구조가여느복잡한어플리케이션도구조적으로좀더쉽게개발할수있도록도와줍니다. 여기백서를통해웹개발의도움을주는 M, V 그리고 C의각방생활을소개합니다.
두남자의 Visual Studio 2010 TDD(Test Driven Development)이야기
강보람 MVP (IT Flow 선임컨설턴트), 박세식 (유니위스) - 다운받기
TDD(Test Driven Development), 테스트주도개발은애자일한개발을지원하기위한하나의실천적도구입니다. 하지만, 단순히세부적으로어떻게해야되는것인지를묻는 'How'만으로는 TDD를제대로이해할수가없습니다. 어째서 TDD가소개되었으며, TDD를통해서어떤장점을얻을수있는지를이야기하는 'Why'와 'What'이동반되어야 TDD를이해할수있는기반을마련하는것이시죠. 여기두개발자가 TDD에대해나눈대화를흥미롭게재구성해기록한백서가있습니다. 이백서를통해서 TDD에대한 'Why', 'What' 그리고 Visual Studio 2010과웹개발에 TDD를적용한 'How'를같이얻으시기바랍니다.
너무 멋져요을 개봉된! 나는 필자 전에 이런 걸 배우는 가정 없다. 그래서이 주제에 대한 몇 가지 참신한 아이디어가있는 모든 사람을 찾을 수 좋네요. 정말이 일을 시작 주셔서 감사합니다. 이 웹 사이트는 약간 독창성과 웹, 누군가에 원한의 한 가지입니다. 웹에 새로운 것을 가져다 유용 직업!
SharePoint 2010의 목록에서 유효성 검사에 대한 다양한 내용이 있는데 앞에서는 코드를 통한 내용을 살펴보았습니다. 하지만 SharePoint 2010에서는 새롭게 열, 목록에 대한 유효성 검사를 제공하고 있습니다. 웹 페이지를 통해 손쉽게 설정할 수 있습니다.
먼저 열의 유효성 검사에 대한 내용을 알아보겠습니다. 해당 목록의 설정 페이지에서 검사할 열을 클릭하면 아래 부분에 열 유효성 검사라는 링크를 볼 수 있습니다.
확장하면 아래와 같이 보입니다. 간단하게 제목에 “test” 라는 말이 들어오면 메시지를 나타내보도록 하겠습니다. 수식은 유효한 식을 나열하는데 SQL 구문과 유사하게 작업할 수 있으며 수식이 거짓인 경우 사용자 메시지가 나타나게 됩니다.
실행해서 결과를 테스트합니다.
필수 열인데 값을 입력하지 않거나 정수 형식인데 문자를 입력하면 기본적으로 열 유효성 검사가 수행됩니다. 간단하게 열 유효성 검사를 확인할 수 있습니다.
이제 목록의 유효성 검사를 알아봅니다. 열 유효성 검사에서는 다른 열을 참조할 수 없습니다. 목록에서는 다른 열과 비교하여 검사할 수 있습니다. 목록의 유효성 검사는 해당 목록의 설정 페이지에 보면 일반 설정에 “유효성 감사 설정”이라는 메뉴를 살펴볼 수 있습니다. 클릭하면 아래와 같은 화면을 볼 수 있습니다.
공지사항의 만료 일자와 만든 날짜를 비교해서 만든 날짜보다 작을 경우 메시지를 나타내게 유효성 검사를 설정 할 수 있습니다.
너무 멋져요을 개봉된! 나는 필자 전에 이런 걸 배우는 가정 없다. 그래서이 주제에 대한 몇 가지 참신한 아이디어가있는 모든 사람을 찾을 수 좋네요. 정말이 일을 시작 주셔서 감사합니다. 이 웹 사이트는 약간 독창성과 웹, 누군가에 원한의 한 가지입니다. 웹에 새로운 것을 가져다 유용 직업!
댓글을 달아 주세요
정말 오랜만에 썼는데, 쓰고 나니 별 내용이 없는 포스트 네요 ㅠ