세미나 참석 대상 : Web 개발자 & 디자이너, 그리고 Web 개발에 관심있는 모든 분들
“오늘 다시 웹 개발에 대해 이야기 하자!”
웹개발이 당연한 것이 되었다고 이야기들 하지만,
소셜과 모바일이 찾아 온 지금,
우리에게 웹을 하나씩 갖는 일은 어느 때보다 중요해졌습니다.
더 유연하게, 더 쉽게, 더 빨리, 더 싸게, 웹사이트를, 소셜 사이트를,
앱서버와 앱사이트를, 모바일 사이트를 모두 만들 수는 없을까요?
지금 전혀 새로운 지평이 펼쳐지려 하고 있습니다.
지금까지 우리가 알고 또 다루어 왔던 웹이 전혀 새로운 차원에서 유연하고 쉬워지려 하고 있습니다. ?
1월 21일 이 새로운 매트릭스로 여러분을 초대합니다.
웹개발의 신조류에 대해 이야기하자!
PHP에서 新ASP.NET, 소셜에서 모바일, 오픈소스활용에서 자체개발까지 이보다 쉬울 수 없는 웹개발 신조류
PDC2010이 미국 시간으로 2010년 10월 28일 목요일 오전 9시부터, 우리나라 시간으로 2010년 10월 29일 금요일 새벽 1시부터 이틀간 열립니다. 아래는 이번 PDC2010에서 소개되는 라이브 세션 및 사전 녹화 세션들의 요약 내용을 정리한 것으로, PDC2010 행사 종료 이후에 블로그에 관련 내용, 강의 자료, 동영상 등을 하나씩 소개하며 업데이트해나갈 예정입니다.
이번 PDC 2010에서 클라우드 컴퓨팅에 관하여 언급되는 세션의 수는 라이브 세션 총 13개와 사전 녹화 세션 8개로, 총 21개 세션에 걸쳐서 클라우드 컴퓨팅 전반에 대한 내용을 언급하게 됩니다. 아래의 세션들 중에서 굵은 글씨에 밑줄로 표시한 항목은 On-Demand 서비스로 제공될 때, 블로그 아티클 등의 형태로 추가적인 내용을 게시하거나, 한국어로 번역하여 내용을 공유할 예정입니다.
PDC2010 Key Note
- 발표: Steve Ballmer and Bob Muglia
- 미국 시간: 2010년 10월 28일 목요일 오전 9시
- 한국 시간: 2010년 10월 29일 금요일 오전 1시
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/6f853fa2-06f6-45e5-ac25-18c31cc4ba32
- 세션 요약: 첫째 날은 먼저 Bob Muglia와 Steve Ballmer가 진행하는 키 노트에서 Microsoft의 Cloud 와 관련한 놀라운 소식들을 들으실 수 있을 것으로 생각 합니다. 실제 클라우드 플랫폼을 이용하는 데 있어서 보다 성숙된 서비스들로 예상되며 클라우드 플랫폼을 고려한 업체라면 고민했을 만한 것들이 될 것 입니다. 다른 세션들을 보실 시간이 없더라도 이 키 노트만큼은 보실 것을 추천 드립니다.
** Live Sessions **
Building Windows Phone 7 applications with the Windows Azure Platform - 발표: Steve Marx (Kodiak Room)
- 미국 시간: 2010년 10월 28일 목요일 오전 11시 30분
- 한국 시간: 2010년 10월 29일 금요일 오전 3시 30분
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/58d670be-bd26-4ee3-9db1-5f2767eba4f8
- 세션 요약: Windows Azure 플랫폼과 함께 Windows Phone 7 용 애플리케이션을 개발하는 세션으로 Windows Azure 전문가로 많이 알려진 Steve Marx가 진행을 합니다. 윈도우 폰 7이 화두가 되고 있는 만큼 특정 Device가 이용하는 서비스를 클라우드에 올리는 시나리오로서 도움이 될 것으로 생각 합니다.
Learn how to build Windows Phone 7 applications that are backed by scalable cloud components hosted in Windows Azure. This demo-heavy session will cover best practices relating to communication, authentication, and data synchronization between phone applications and cloud components.
Building, Deploying, and Managing Windows Azure Applications - 발표: Jim Nakashima (Hood Room)
- 미국 시간: 2010년 10월 28일 목요일 오전 11시 30분
- 한국 시간: 2010년 10월 29일 금요일 오전 3시 30분
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/19c4c834-3cae-408c-96f0-e87bfad92cff
- 세션 요약: 이전 컨퍼런스에서 실제 데모를 엮은 좋은 발표를 보여줬던 Jin Nakashima의 발표로서, 실제적으로 Windows Azure를 개발 및 배포하는 과정을 보여줄 것으로 보입니다.
In order to take full advantage of Windows Azure and SQL Azure, you need to know more than just how to write the code. You need to know how to incorporate your application in a team environment, deploy, monitor, manage and retrieve diagnostic information back from the cloud. In this session, you will learn everything you need to know to be successful with a project that utilizes Windows Azure and SQL Azure including setting up your development environment, automating build, unit test and deployments to different deployment environments from staging to production, and managing credentials and user roles using the Windows Azure Portal.
Migrating and Building Apps for Windows Azure - 발표: Mohit Srivastava (McKinley Room)
- 미국 시간: 2010년 10월 28일 목요일 오후 2시
- 한국 시간: 2010년 10월 29일 금요일 오전 6시
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/94694704-1b10-49fd-a09d-574c8bb364b8
- 세션 요약: 키노트에서 발표할 기술을 이용해서 기존 애플리케이션들을 윈도우 애저에 올리는 것에 대한 내용이 다루어 집니다. 기존의 애플리케이션 이동이 얼마나 쉬운지 여부가 Windows Azure와 같은 Cloud 플랫폼에서는 가장 중요한 이슈가 되겠지요.
In this session you will learn how to run your existing applications on Windows Azure using some of the new features that we’ll announce during the keynote.
Composing Applications with AppFabric Service
- 발표: Karandeep Anand (Kodiak Room)
- 미국 시간: 2010년 10월 28일 목요일 오후 3시 15분
- 한국 시간: 2010년 10월 29일 금요일 오전 7시 15분
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/c3c5f2d9-0481-4be1-9742-4dfa4de184d0
- 세션 요약: Service Bus와 Access Control의 기능이 있는 Windows Azure AppFabric 서비스에 대한 세션 입니다. 새로 출시되는 서비스도 같이 소개가 될 것 같네요.
AppFabric provides a rich set of application platform services as part of the Windows Azure Platform to enable developers to create line of business applications that span multiple tiers and technologies. Learn how to create scalable web-based & hosted applications in the cloud, compose them with other cloud services (such as SQL Azure Database and other forthcoming new services) and integrate them with on-premises systems using Windows Azure AppFabric technologies like Service Bus and Access Control services. This session will also cover the roadmap of AppFabric Services and demonstrate how developers will get richer application building blocks, development tools & management capabilities to compose and manage a distributed application using the Windows Azure Platform. Come and see how AppFabric Services can be integrated in to your application development & management lifecycle to reduce time & cost.
Enabling New Scenario and Applications with Data in Cloud
- 발표: Dave Campbell (Hood Room)
- 미국 시간: 2010년 10월 28일 목요일 오후 4시 30분
- 한국 시간: 2010년 10월 29일 금요일 오전 8시 30분
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/64f43e11-f88f-4e59-954b-fadeaf5f3537
- 세션 요약: 달라스와 같은 데이터를 클라우드를 이용해서 새롭게 활용할 수 있는 방법에 대한 세션이며, 역시 새로 출시되는 서비스에 대한 이야기가 나올 것 같네요.
The cloud enables new scenarios for sharing and consuming data. In this session you will learn how to differentiate your applications by building them on top of Windows Azure platform and leveraging visualization and access to private, public and premium content available through Microsoft Codename “Dallas”. You will also learn how to use some of the new services and features announced at the PDC.
Connecting Cloud & On-Premises Apps with the Windows Azure Platform
- 발표: Yousef Khalidi (McKinley Room)
- 미국 시간: 2010년 10월 29일 금요일 오전 9시
- 한국 시간: 2010년 10월 30일 토요일 오전 1시
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/fe7e140b-de62-4768-9306-23d0bdcabc5c
- 세션 요약: 온프레미스 애플리케이션과 클라우드 애플리케이션의 연동이라는 화두로 진행되는 세션으로 Windows Azure AppFabric이 중심이 될 것 같네요.
Not every application or service can be hosted entirely in the cloud. Cloud services often need to provide a combination of cloud-based data access as well as connectivity to on-premises assets in a variety of geographies. Getting access to your on-premises or partner hosted assets securely has never been easier. In this session, learn how to securely connect applications today that span the cloud to on-premises world using Windows Azure AppFabric Service Bus and SQL Azure Data Sync Service. Also, gain insight into future scenarios and technologies for assembling these types of services.
Open in the Cloud: Windows Azure and Java - 발표: Vijay Rajagopalan (Cascade Room)
- 미국 시간: 2010년 10월 29일 금요일 오전 9시
- 한국 시간: 2010년 10월 30일 토요일 오전 1시
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/6ae95ba0-c185-4546-9d66-2604ac6b6cef
- 세션 요약: 오픈 클라우드로서 여러 개발 플랫폼들이 동작할 수 있는 Windows Azure의 모습을 Java 개발로서 보여주는 세션.
The Windows Azure Platform is an open and interoperable platform which supports development using many programming languages and tools. In this session, you will see how to build large-scale applications in the cloud using Java, taking advantage of new Windows Azure Platform features. You will learn how to build Windows Azure applications using Java with Eclipse, Apache Tomcat, and the Windows Azure SDK for Java.
Identity & Access Control in Cloud - 발표: Vittorio Bertocci (McKinley Room)
- 미국 시간: 2010년 10월 29일 금요일 오전 10시 15분
- 한국 시간: 2010년 10월 30일 토요일 오전 2시 15분
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/0099d03d-bbc4-4612-87e1-f7d4da8b8a78
- 세션 요약: 보안이 클라우드에서 매우 중요한 이슈가 될 것이므로, 이를 위해서 필요한 Windows Identity Foundation 및 Windows Azure AppFabric의 Access Control 확인 할 수 있는 세션
Signing users in and granting them access is a core function of almost every cloud-based application. In this session we will show you how to simplify your user experience by enabling users to sign in with an existing account such as a Windows Live ID, Google, Yahoo, Facebook, or on-premises Active Directory account, implement access control, and make secure connections between applications. You will learn how the AppFabric Access Control Service, Windows Identity Foundation, and Active Directory Federation Services use a claims-based identity architecture to help you to take advantage of the shift toward the cloud while still fully leveraging your on-premises investments.
Windows Azure Storage Deep Dive - 발표: Jai Haridas (Kodiak Room)
- 미국 시간: 2010년 10월 29일 금요일 오전 10시 15분
- 한국 시간: 2010년 10월 30일 토요일 오전 2시 15분
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/1c6f9726-11c6-4ed1-97e6-0bcaf7ee6660
- 세션 요약: 클라우드로 애플리케이션 옮길 때 가장 먼저 고려할 것중의 하나인 Storage 에 대해서 좀 더 깊이 있게 알아보는 세션
Windows Azure Storage is a scalable cloud storage service that provides the ability to store and manipulate blobs, structured non-relational entities, and persistent queues. In this session you will learn tips, performance guidance, and best practices for building new applications or migrating an existing applications that use Windows Azure Storage.
Inside Windows Azure - 발표: Mark Russinovich (McKinley Room)
- 미국 시간: 2010년 10월 29일 금요일 오전 11시 30분
- 한국 시간: 2010년 10월 30일 토요일 오전 3시 30분
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/18a38105-520f-486a-9e04-d956736e506d
- 세션 요약: 애저 개발 팀에서 이야기 하는 Windows Azure가 동작하는 하부 단의 이야기를 들려 줍니다. 매우 관심 가는 세션 입니다.
Join Mark Russinovich, now working on Windows Azure, for an under the hood tour of the internals of Microsoft’s new cloud OS. Topics will include datacenter architecture, cloud OS architecture, and what goes on behind the scenes when you deploy a service, a machine fails or comes online and a role fails
Building Scale-Out Database Solutions on SQL Azure
- 발표: Lev Novik (McKinley Room)
- 미국 시간: 2010년 10월 29일 금요일 오후 2시
- 한국 시간: 2010년 10월 30일 토요일 오전 6시
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/591d586f-3732-4bff-8ee2-857f27d74df4
- 세션 요약: 현재 SQL Azure의 경우는 최대 50G사이즈이지만, 보다 더 큰 용량이 필요한 서비스를 위한 세션
SQL Azure provides an information platform that you can easily provision, configure, and use to power your cloud applications. In this session we will explore the patterns and practices that help you develop and deploy applications that can exploit the full power of the elastic, highly available, and scalable SQL Azure Database service. The talk will detail modern scalable application design techniques such as sharding and horizontal partitioning and dive into future enhancements to SQL Azure Databases.
Building High Performance Web Applications with the Windows Azure Platform
- 발표: Matthew Kerner (McKinley Room)
- 미국 시간: 2010년 10월 29일 금요일 오후 3시 15분
- 한국 시간: 2010년 10월 30일 토요일 오전 7시 15분
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/1b08b109-c959-4470-961b-ebe8840eeb84
- 세션 요약: 보다 고성능으로 서비스를 운영할 수 있도록 CDN서비스를 이용하거나 최적화를 하는데 필요한 기술을 전달하는 세션
Windows Azure Platform enables developers to build dynamically scalable web applications easily. Come and learn how forthcoming new application services in conjunction with services like the Windows Azure Content Delivery Network (CDN) can help you build high-performance web applications in Azure while lowering your total costs by reducing the pressure on the data-tier. In this session, we’ll take some real world scenarios & design patterns to showcase how existing or new web applications can be quickly built to leverage these capabilities. We’ll also share some tips & tricks to improve performance when using web & worker roles in Azure and optimizing your overall application for maximum performance. Developers will be able to make their applications match increasing demand with increasing throughput by using caching and CDN will enable better performance & user experience for users who are farther from the source of the content.
** Pre-recorded **
Building Business Applications in the Cloud with CRM Online
- 발표: Andrew Bybee
Microsoft Dynamics CRM Online is all about providing compelling business applications to your customer and accelerating development of your applications in the cloud. The upcoming 2011 release has a wide array of new development capabilities such as Solution Packaging, Sandboxed Code, Built-in Dashboards, and much more. Watch this session to understand the innovation behind this new CRM Online release powered by .NET 4.0. Specifically, we’ll cover how to build a CRM Online Solution, take advantage of native SharePoint & Office integration and deploy your application to Dynamics Marketplace to reach a broader customer base.
Developing PHP Applications on the Windows Azure Platform - 발표: Vijay Rajagopalan
Microsoft’s Windows Azure Platform provides a comprehensive set of services for building and running scalable PHP applications targeting cloud. In this session we go on a coding tour using open source development tools (Eclipse, Command line), SDKs and applications (Drupal, WordPress) on the Windows Azure platform. On this tour, see how PHP web applications can use the scalable compute and storage services with Windows Azure, secure connectivity and data service techniques in the cloud using OData and Microsoft SQL Azure.
Integrating SharePoint with Windows Azure
- 발표: Steve Fox
SharePoint 2010 provides many ways to integrate with Windows Azure. From simple SQL Azure data-centric applications to complex workflow that leverages custom Azure services, there is great potential to integrate these two growing technologies. This session will provide a code-centric view of the ways in which you can integrate with Azure, covering areas such as web part development, data programmability, service consumption, and Business Connectivity Services integration. If you’re looking to take your SharePoint solutions into the cloud with Azure, then you can’t miss this session.
Building Offline Applications using the Sync Framework and SQL Azure
- 발표: Nina Hu
In this session you will learn how to build a client application that operates against locally stored data and uses synchronization to keep up-to-date with a SQL Azure database. See how Sync Framework can be used to build caching and offline capabilities into your client application, making your users productive when disconnected and making your user experience more compelling even when a connection is available. See how to develop offline applications for Windows Phone 7 and Silverlight, plus how the services support any other client platform, such as iPhone and HTML5 applications, using the open web-based sync protocol.
Management of your Access Control Service (ACS) Namespace
- 발표: Justin Smith
The Windows Azure AppFabric Access Control Service provides a simple way to add enterprise and web Single Sign On into your applications. In this session, we will discuss how you can configure ACS for a variety of scenarios. Topics covered include: ACS entity overview, namespace partitioning, credential management, federation management, and rule management. Basic knowledge of the Windows Azure AppFabric Access Control Service is a suggested pre-requisite.
Microsoft BizTalk Server 2010 and Roadmap - 발표: Sreeram Nivarthi
Learn how BizTalk Server 2010 and AppFabric together help you create composite applications (building on Windows Azure, Windows Server and SharePoint) which connect to existing line-of-business (LOB) systems. Understand future plans of how you will be able to compose applications using integration services – for applications running on Windows Azure, connecting to other services in the cloud, and with line-of-businesses & business partners in future. You will also learn future plans on how business users can get visibility into services built on AppFabric.
SharePoint in the Cloud: Developing Solutions for SharePoint Online
- 발표: Chris Mayo
With the most recent release of SharePoint comes the ability to build and deploy applications of many types and flavors. Using SharePoint Server 2010, you can develop a wide variety of applications for the enterprise using .NET, Silverlight, JavaScript, and much more. But with the release of SharePoint Online on our horizon, what are the possibilities and the boundaries here? And how is the design and development process different? If you want to develop for SharePoint Online, but are unsure about the boundaries then you’ll not want to miss watching this demo-heavy session.
Taking High Performance Computing to the Cloud - Windows HPC and Azure - 발표: Richard Ciapala
Scale-out or conveniently parallel HPC applications are well suited to running in Windows Azure. Windows HPC Server 2008 R2 SP1 provides a gateway for running existing HPC applications seamlessly on Azure. Learn how to develop Windows HPC Cluster SOA WCF-based applications, parametric sweep and MPI applications to run on Azure or a cluster. Different alternatives to handle data, storage, security, and troubleshooting these applications will be discussed. This session will also show developers how to set up a single box development environment for HPC Server applications, and how to provision compute nodes and Azure and monitor applications.
한국 Visual Studio 공식 팀에서 2010년 8월 28일 토요일 오후 1시 30분부터 5시까지 선릉역 부근 웹타임 교육센터에서 Visual Studio Camp #1을 엽니다. Native Developer Track에는 최성기님, 임준환님, 조진현님께서, .NET Developer Track에는 강보람 Visual C# MVP님, 박세식님, 오태겸님께서, Enterprise Developer Track에서는 김병진 Team System MVP님, 엄준일 Team System MVP님, 정홍주 SQL Server MVP님께서 알찬 내용으로 세미나를 꽉 채워주실 것입니다. Visual Studio 2010에 대한 새로운 기능뿐만 아니라, DirectX 11, WCF, C# 4.0, ASP.NET MVC 2에 대한 심도있는 주제들을 다루는 의미있는 시간이 될 것입니다. 세미나에 많은 관심과 참여를 부탁드리며, 참가 신청은 http://onoffmix.com/event/1676 에서 가능합니다. :-)
저희 "한국 Visual Studio 공식팀" 에서세미나를주최합니다.
저희 "한국 Visual Studio 공식팀" 은온라인팀블로그(http://vsts2010.net) 을통해다양한분야의전문가들이활동하고있습니다. 그리고그동안저희팀원들은다양한세미나경험을바탕으로많은강사진을구축하였습니다. 그경험을바탕으로저희팀에서주최하는세미나를진행하게되었습니다.
다가오는 2010/08/28일에첫 Visual Studio Camp #1 을진행하오니많은성원부탁드립니다.
- 주최 : 한국 Visual Studio 공식 팀
- 일시 : 2010년 8월 28일토요일오후 1:30~5시
- 장소 : 웹타임교육센터
- 참가비 : 무료
세미나 아젠다
Native 트랙
.NET 트랙
Enterprise 트랙
14:00 ~ 14:50
Visual Studio 2010 : C++0x와 Windows 7
최성기
그것이 알고싶다 - C# 4.0의 변화, 그 진실은 무엇인가. 희망인가? 또 다른 혼란인가?
강보람 C# MVP
VS Team Foundation Server 2010 의 새로운 변화
김병진 Team System MVP
15:00 ~ 15:50
비주얼 스튜디오 2010 의 Concurrency Runtime 을 이용한 멀티 코어 제대로 활용하기
임준환
좋은 프레임워크 있으면 소개시켜줘 - ASP.NET MVC
박세식
소프트웨어품질향상을위한다양한테스트기법
엄준일 Team System MVP
16:00 ~ 16:50
DirectX11 을 기다리며...
조진현
Beginnig WCF
오태겸
SharePoint 2010 Enterprise 솔루션 개발
정홍주 SQL Server MVP
발표 내용 소개
Native 트랙
Visual Studio 2010 : C++0x와 Windows 7 그동안 .NET 영역으로 적잖이 편중되었던 Visual Studio의 버전업에 비해 이번 2010 버전에서는 Native Code 개발환경에서도 많은 변화가 찾아왔다. C++0x 표준 반영에 의한 문법의 변화, 새로운 라이브러리 제공(Concurrency Runtime Library), Windows 7의 최신 기능들을 제어하기 위한 SDK의 업데이트 등이 그것이다. 본 세션을 통해 C++의 문법적인 변화와 Windows 7 기능 구현을 위한 SDK의 업데이트 사항들을 정리해본다.
비주얼 스튜디오 2010 의 Concurrency Runtime 을 이용한 멀티 코어 제대로 활용하기 요즘 가정의 PC 에 멀티 코어 프로세서가 많이 보급되어 있습니다. 하지만 실제로 PC 에 설치된 코어들을 모두 사용하는 애플리케이션들은 많지 않습니다. 이렇게 낭비되는 자원을 C++ 개발자가 쉽게 사용할 수 있도록 도와주는 Concurrency Runtime 을 비주얼 스튜디오 2010에서 제공합니다. 이 Concurrency Runtime 을 어떻게 시작해야할지 알아보겠습니다.
DirectX11 을 기다리며...
조금씩 정보가 공개되면서 많은 변화를 예고하고 있는 DirectX11 에 대해서 살펴 볼 것입니다.특히나 Tessellation, DirectCompute, Multi-threading 을 위한 기본 개념과 작업들에 대해서 체크해 볼 것입니다.
.NET 트랙
그것이 알고싶다 - C# 4.0의 변화, 그 진실은 무엇인가. 희망인가? 또 다른 혼란인가? PDC 2008에 울려퍼진 C# 4.0의 소식. 그 소식을 듣고 많은 사람들은 기대와 혼란을 가지게 되었다. C#은 분명히 정적 언어인데, 동적 언어에나 있을 법한 기능을 추가한다니? 이제와서 뒷북일 수도 있는 C# 4.0의 변화에 대한 진실, 그 마지막 시리즈가 이제 시작된다. :)
좋은 프레임워크 있으면 소개시켜줘 - ASP.NET MVC 그동안 아주 미묘하게 아쉬웠던 ASP.NET. 가려운 곳을 긁어줄 대안의 프레임워크가 나타났다.웹 개발자들 한테 참~ 좋은데, 웹 개발자들 한테 정말 좋은데, 이걸 말로 그냥 할 수 없어서,이번 기회에 소개한다.
Beginnig WCF WCF는 서비스 지향 프로그래밍을 위해 마이크로소프트에서 개발 및 지원하는 기반 기술이며, 기존의 .NET 웹 서비스에 비해 유연성과 확장성이 뛰어나 최근 많은 관심을 받고 있습니다.본 세션에서는 WCF가 무엇인지? 어떤 장점이 있는지? 그리고, WCF 를 이용하기 위해선 무엇이 필요한지? 에 대해 함께 알아보고, 마지막으로, WCF의 활용 예를 알아보도록 하겠습니다.
Enterprise 트랙
VS Team Foundation Server 2010 의 새로운 변화
Visual Studio Team Foundation Server 2010의 혁신적인 변화와 개선 부분, 프로젝트 및 형상관리와 Agile의 Scrum 을 이용한 방법론을 알아보고, 단지 소스 체크인/아웃만 하는 Visual Source Safe에서 업그레이드 하는 방법에 대하여 알아봅니다.
소프트웨어품질향상을위한다양한테스트기법
소프트웨어는 개발 및 릴리즈 과정까지 수 많은 과정을겪는데, 소프트웨어가 점진적으로 진화함에 따라 결함의 발생률이증가합니다. 이를개선하기위한테스트기법중단위테스트, WhiteBox 테스트, 화면테스트, 성능테스트, 부하테스트등다양한테스트기법을알아봅니다.
SharePoint 2010 Enterprise 솔루션 개발
SharePoint 2010은 기업 협업 플랫폼으로 개발자들은 VS 2010을 이용하여 더 생산성 있고 효과적인 SharePoint 2010 개발을 진행할 수 있습니다.본 세션에서는 SharePoint 2010 개발에 대한 가장 필요한 내용을 구체적으로 알아보며 이를 통해 가장 많은 요구사항에 대한 실무 솔루션을 구성하는 방법에 대한 내용을 알아보겠습니다.
발표자 소개
Native 트랙
최성기 / Visual Studio 공식 팀 엔씨소프트에서 온라인 게임 서버를 개발하고 있으며, 비주얼 스튜디오 2010 공식 팀 블로그 (http://vsts2010.net) 에서 MFC와 윈도우7 카테고리를 맡아 스터디를 하고 있다. 최근 UX 시장의 핫이슈인 ‘멀티터치’에 대해 많은 관심을 갖고 있다.
임준환 / Visual Studio 공식 팀
Visual Studio 2010 공식 팀 블로그( http://vsts2010.net ) 에서 C++, 게임 관련 필자로 활동하고 있다.
조진현 / Visual Studio 공식 팀
현재클라이언트게임프로그래머로써재직중입니다. Visual Studio 2010 공식팀블로그(http://vsts2010.net) 에서 DirectX11 부분에서활동중입니다.
.NET 트랙
강보람 / Visual Studio 공식 팀 시삽 / Microsoft C# MVP
Visaul Studio 공식팀의 닷넷 파트 시삽을 맡고 있으며, Visual C# MVP이다. MSDN 주간 세미나, Techdays 2009, 2010 Spring, REMIX 10에 참여했으며, '그것이 알고싶다'를 2004년 부터 거의 빼놓지 않고 다 본 경력의 소유자이다. 개인블로그 '워너비의 소프트웨어 팩토리'(http://blog.naver.com/netscout82)를 운영중이며, 프로그래밍과 전혀 상관없는 이야기를 쓰고 있다.
박세식 / Visual Studio 공식 팀
아직까지는 꿈많은 유부남 청년이다. 아이가 생기면 시간이 없다는 말에 몸서리 치면서 노력중이다. Visual Studio 공식 팀 블로그에서 ASP.NET MVC 관련 포스팅을 하고 있고, 개인블로그 sses's blog(http://sses.tistory.com)를 운영중이다.
오태겸 / Visual Studio 공식 팀
오태겸, 현재 Hostway 에서 근무하고 있으며, 개인 블로그(http://ruaa.tistory.com)와 Visual Studio 2010 공식 팀 블로그(http://vsts2010.net)에서 WCF 카테고리를 통해 있는 지식, 없는 지식 총 동원해가며, WCF에 관한 포스팅을 하고 있다.
Enterprise 트랙
김병진 / Visual Studio 공식 팀 시삽 / Microsoft Team System MVP / MCT
김병진 MCT/Microsoft MVP로 Visual Studio 2010 팀 블로그(http://vsts2010.net)에서 활동하고 있으며, ALM 교육과 컨설팅을 통해 Microsoft 의 기술과 플랫폼기반의 개발과 설계 관련하여 강의과 컨설팅을하고 있으며, 우리나라 소프트웨어 공학의 발전을 위해 열심히 노력하고 있습니다.
엄준일 / Visual Studio 공식 팀 대표 시삽 / Microsoft Team System MVP
엄준일 Microsoft Team System MVP 로 활동 하고 있으며, 개인 블로그(http://blog.powerumc.kr) 와 트위터(@powerumc) 를 통해 .NET 기술을 전파하고 있다. 그리고 Visual Studio 2010 공식 팀 블로그(http://vsts2010.net) 의 대표 시삽으로 팀 블로그와 트위터(@vsts2010) 를 운영하고 있다.
정홍주 / Visual Studio 공식 팀 / Microsoft SQL Server MVP
웹타임 교육센터에서 SQL, .NET 강의와 .NET, SharePoint 컨설팅을 하고 있다.Microsoft SQL Server MVP 로 활동 하고 있으며 데브피아의 SQL Server 2005 시샵이다.SharePoint 2010 책을 집필하고 SharePoint 2010 관련 동영상과 미니클립을 서비스하고 있으며 현재 Visual Studio 2010 공식 팀 블로그(http://vsts2010.net) 에서 SharePoint 2010 관련 블로깅을 하고 있다. 향후 SharePoint 2010 개발 관련 여러 내용을 Open Source 할 예정이다.
클라우드 컴퓨팅, Rich Internet Application, 모바일 등 최신 IT 기술이 요즈음 이곳저곳에서 많이 회자되고 있는데요, 이러한 기술들을 Microsoft의 관점에서 해석하고 새롭게 접근하는 흥미로운 Tech 행사가 6월에 새롭게 열릴 예정입니다. 최신 IT 기술과 닷넷 플랫폼 개발에 관심이 많으신 개발자 여러분들의 많은 관심과 참여 부탁드립니다.
두 번째 닷넷 개발자 컨퍼런스 행사가 열립니다. 닷넷 기술 개발자 여러분들의 많은 관심과 참석을 부탁드립니다. 특히, Microsoft의 최신 웹 기술 및 Rich Internet Application 기술에 관심이 있으신 개발자 및 디자이너 여러분들께서는 이 행사에 꼭 참석하셔서 좋은 정보를 얻어가시면 좋겠습니다.
IT 업계의 최신 트렌드와 함께, 2010년에 가장 주목받을 수 있는 기술 분야들을 한꺼번에 정리하는 IT 트렌드 2010 웹 사이트가 런칭되었습니다. 이 웹 사이트에서는 Microsoft의 최신 기술들을 바탕으로 10가지 테마를 소개합니다. "클라우드 컴퓨팅", "그린 IT", "3스크린 전략 및 새로운 UX 기술", "가상화", "마켓플레이스", "모바일", "소셜리틱 어플리케이션", "통합 보안 환경", "IT 거버넌스", "소프트웨어 품질"에 대한 이야기를 전하고 있습니다. 관심있으신 분들께서는 꼭 방문하여 좋은 정보 얻어가시면 좋겠습니다.
닷넷 프레임워크를 통하여 응용프로그램을 개발할 때, 특히 Windows Forms 기반의 다중 스레드 프로그램을 구성할 때 자주 적용되는 패턴이 하나 있다면, 단일 메서드를 가지고 PreCondition/PostCondition으로 양분하는 패턴이 있을 것입니다. 예를 들면 다음과 같습니다.
this.Invoke(new EventHandler(MyForm_Load), new object[] { sender, e });
return;
}
// 실제 메서드 코딩 }
위와 같이 조건에 따라서, 같은 메서드를 상태에 변화를 가하여 다시 호출하는 기법은 Windows Forms 뿐만 아니라 일반적인 응용프로그램에서도 자주 활용될 수 있는 기법이 될 것입니다. 사실, 위와 같은 코드는 어려울 것이 없겠습니다만 저는 이를 일반화할 수 있는 방법을 고민하던 중에, Reflection과 Interop을 이용할 수 있다는 것을 발견하였습니다.
using System; using System.Reflection;
namespace dotForex.Test { class Program { static bool needInvoke = true;
static void Main(string[] args) { if (needInvoke) { Action<string[]> func = Delegate.CreateDelegate( typeof(Action<string[]>), MethodInfo.GetCurrentMethod() as MethodInfo) as Action<string[]>; needInvoke = false; func(args); return; } else { Console.WriteLine("Test"); }
return; } } }
위의 코드에서 강조표시된 부분이 일반화에서 핵심이 되는 부분들입니다. Delegate 클래스의 CreateDelegate 메서드를 통하여, 생성할 대리자의 형식을 지정하고, 현재 메서드의 정보를 가져와서 이를 대입하는 방법입니다.
위와 같은 기법을 통하여 아래와 같이 Windows Forms의 스레드 안정성을 고려한 이벤트 핸들러 처리를 일반화하는 것도 가능합니다.
using System; using System.Reflection; using System.Windows.Forms; using System.Runtime.InteropServices;
namespace dotForex.Application { public sealed partial class ErrorReportForm : Form { public ErrorReportForm() : base() { this.InitializeComponent(); }
private object EnsureThreadSafe(MethodInfo targetMethod, Type targetDelegateType, params object[] arguments) { if (!this.InvokeRequired) throw new InvalidOperationException("EnsureThreadSafe is not required at this time.");
if (targetMethod == null) throw new ArgumentNullException("targetMethod");
if (targetDelegateType == null) throw new ArgumentNullException("targetDelegateType");
if (!targetDelegateType.IsSubclassOf(typeof(Delegate))) throw new ArgumentException("Selected type is not a delegate type.", "targetDelegateType");
대입을 확정한 이후로 한동안 다른 프로젝트를 진행하느라 카페에 자주 못들렀습니다. 조만간 오픈 소스 프로젝트 몇 종류를 공개적으로 런칭하게 될 것 같습니다. 많은 관심 부탁드리면서 간단한 기술을 또 하나 알려드리고자 합니다. 이 강좌를 읽으시기 전에 이벤트를 선언하는 방법과 대리자의 특성에 대해서 숙지하시면 유용하실 것입니다.
이벤트는 흔히 구독 (Subscription)과 해지 (Cancellation)의 개념을 사용합니다. 이는 C#의 문법을 통해서 관찰하면 훨씬 쉽게 이해할 수 있습니다. 다음의 예를 살펴보도록 하지요.
public delegate void SampleCallback(object arg1, object arg2, object arg3);
public class Ex1 { public event SampleCallback Sample;
public Ex1() { this.Sample += new SampleCallback(SampleTest); this.FireSampleEvent();
[MTAThread()] public static void Main(string[] arguments) { Ex1 tester = new Ex1(); Console.WriteLine("Tester launched."); } }
위의 코드에서는 Sample이라는 이벤트에 SampleCallback 형식의 대리자를 구독하고 해지하는 예를 보여주었습니다. 아주 기본적인 이벤트 처리 방법을 보여주는 예제입니다. 하지만 지금 보여드릴 예제는 C# 문법을 깊숙히 살펴보지 않으신 분들께는 상당히 생소한 예제가 될 것입니다.
public delegate void SampleCallback(object arg1, object arg2, object arg3);
public class Ex1 { public event SampleCallback ExactSample;
[MTAThread()] public static void Main(string[] arguments) { Ex1 tester = new Ex1(); Console.WriteLine("Tester launched."); } }
결과적으로는 위의 예제와 동일하지만 콘솔 윈도우에는 메시지가 몇 줄 더 기록될 것입니다. 기록되는 부분의 코드는 이벤트 선언을 확장한 곳에서 쓰여지는 코드인것을 알 수 있습니다. add 섹션에서는 이벤트를 등록하는 과정에 일어나는 일들이 기록되어있으며 remove 섹션에서는 반대로 이벤트를 해지하는 과정에서 일어나는 일들일 기록되어있음을 알 수 있습니다. 그리고 재미있는 점은, value라는 키워드가 프로퍼티에서처럼 여전히 유효하다는 점입니다. 그렇다면 value는 무슨 형식일까요?
public delegate void SampleCallback(object arg1, object arg2, object arg3);
public class Ex1 { public event SampleCallback ExactSample;
[MTAThread()] public static void Main(string[] arguments) { Ex1 tester = new Ex1(); Console.WriteLine("Tester launched."); } }
눈치가 빠르신 분들은 value 키워드가 어떤 형식의 변수인지 금새 알아채셨을 것입니다. 컴파일해보면 나타나겠지만 SampleCallback 대리자임을 나타낼 것입니다. 그리고 value 변수가 대리자이기 때문에 대리자를 가지고 처리할 수 있는 일은 모두 가능합니다. 그래서 위의 예제에서는 전달된 대리자를 다른 이벤트에 += 연산자와 -= 연산자를 사용하여 이벤트 구독과 해지를 대신 처리하도록 코드를 변형하였습니다. 그리고 += 연산자와 -= 연산자는 위에서 나타난 그대로 반드시 new 키워드와 함께 쓰여야만 하는 것이 아닌 것도 알 수 있습니다.
위의 예제에서는 이벤트 구독과 해지를 단순히 다른 이벤트에게도 위임하는 방법을 보여주었습니다만, 이 정도 단계에까지 왔다면 이벤트 자체를 직접 관리할 수도 있지 않겠는가라는 생각을 하시는 분들도 계실 것입니다. 이러한 호기심을 해결해 드리기 위하여 또 하나의 예제 코드를 보여드립니다.
using System; using System.Collections;
public delegate void MyDelegate1(int i); public delegate void MyDelegate2(string s); public delegate void MyDelegate3(int i, object o); public delegate void MyDelegate4();
public class PropertyEventsSample { private Hashtable eventTable = new Hashtable();
대리자는 보통 하나의 메서드만을 사용하여 초기화하는 것이 일반적입니다. 그러나, 여기에 나타난 것처럼 대리자는 한 메서드에 대해서만 컨테이너를 생성하는 것이 아니라, 메서드 컬렉션을 관리하고 있습니다. 이것을 정확한 표현으로는 호출 목록이라고 하며, 호출 목록에 또 다른 메서드들을 더하고 빼는 것을 컴바인과 제거라고 표현합니다. 그리고 이렇게 형성된 호출 목록을 감싸는 대리자를 멀티캐스트 대리자라고 부릅니다.
그렇다면 여기서 이벤트의 역할이 궁금해집니다. 이벤트는 멀티캐스트 대리자를 하나의 속성으로 관리하고 구체화할 수 있는 또 하나의 규격으로 이해하시면 됩니다. 사실 이제껏 보아왔던 이벤트에 사용하는 += 연산자와 -= 연산자는 멀티캐스트 대리자로 처리하더라도 얼마든지 가능했던 일입니다. 하지만 멀티캐스트 대리자는 호출 목록을 관리하기 위한 하나의 수단일 뿐 본 강좌에서 살펴본것과 같이 하나의 프로퍼티로서 확장하는 것은 어렵습니다.
이벤트와 대리자 사이의 차이점은 기존에 널리 사용되던 개념만을 가지고는 이와 같은 상황에 직면했을 때 사라지게 됩니다. 하지만 본 강좌에서는 이와 같이 모호한 상황에 대해서 구체적인 결론을 내리고자 합니다. 단순히 변수에 값을 집어넣고 빼는 것만으로 보았을 때에는 변수나 프로퍼티가 유사한 것처럼 보이지만 본질적으로 변수는 변수일 뿐, 프로퍼티와 같이 커스터마이징을 할수는 없는것을 여러분들께서는 알고 계십니다.
대리자와 이벤트 사이의 관계도 이와 같이 정의할 수 있습니다. 대리자나 이벤트 모두 호출 목록을 만들어서 관리할 수 있는 것은 동일합니다. 그러나, 대리자는 호출 목록을 관리하는 것 까지이지만 이벤트는 어떻게 호출 목록을 추가하고 제거할 것인지에 관해서 다룰 수 있는 프로퍼티의 역할을 이행할 수 있습니다.