Microsoft에서 다양한 OS에서 실행할 수 있는 Visual Studio Code의 beta버전을 릴리즈 했습니다.


preview 버전에서는 한글 입력이 되지 않아서 설치 후 바로 삭제를 했던 프로그램이지만 beta버전에서는 한글 입력이 잘 되는 것 같습니다.


리눅스에서는 sublime을 대체할만한 마땅한 에디터가 없는 것이 현실인데 대안이 될 수 있을지 지켜봐야겠습니다.



이런 Microsoft의 행보에 힘입어 C#으로 windows 응용 프로그램을 만드는 글을 이어가면서 써볼까 합니다.


단순한 컴포넌트의 설명은 다른 곳에서도 충분히 찾을 수 있으시고, MSDN에서도 많은 정보를 얻을 수 있습니다.


점진적으로 기능이 늘어나는 간단한 응용프로그램을 만들어보면서 스킬을 올려보도록 하겠습니다.



우선 무료로 배포되고 있는 VisualStudio Community 버전을 설치합니다.


https://www.visualstudio.com/ko-kr/products/visual-studio-community-vs.aspx


설치에 대한 설명은 별도로 언급하지 않겠습니다.



우선 프로젝트를 생성하기 전에 .NET framework에 대해서 잠시 언급을 하고 넘어가겠습니다.


.NET framework는 Microsoft사에서 주력으로 밀고 있는 프레임워크이며, 아직도 버전업이 제법이나 활발하게 이루어지고 있습니다.  Windows의 어떤 버전에서 .NET의 어떤 버전이 호환이 되는지, 기본으로 설치가 되어있는 버전은 어떤 것인지 확인을 해두실 필요가 있습니다.


https://msdn.microsoft.com/ko-kr/library/bb822049(v=vs.110).aspx


위의 링크는 MS에서 제공하는 공식 자료이며, 불행하게도 XP가 단종이 되어서인지 XP에 대한 정보가 포함되어있지 않습니다만, 제 기억으로는 .NET 2.0이 XP SP3에서 기본 포함이 되었던것 같습니다.

따라서 Windows XP를 사용하는 환경에 대해서는 2.0을, Windows 7를 사용하는 환경에 대해서는 3.5를 선택하시면 사용자에게 .NET framework을 설치를 강요하는 부담을 덜 수 있습니다.


이번 글에서는 이런 설명들과 함께 간단하게 프로젝트를 만들어 보겠습니다. XP는 단종이 되었으니 Windows 7을 최소 요구사항으로 잡고, Windows Form이 아닌, WPF를 사용하여 만드는 것을 예제로 삼아보겠습니다.

VS 2015를 실행하여 프로젝트를 새로 만들어봅시다.

sample01-001.png


녹색 화살표 모양으로 된 시작 버튼을 누르면 그냥 하얀색의 작은 창 하나가 뜹니다.

sample01-002.png

이 창을 닫고 간단하게 레이아웃을 수정하는 법을 보도록 하겠습니다.

쉽게 하기 위해서는 좌측에 있는 컨트롤을 끌어다가 놓는 방법도 있습니다.

MainWindow.xaml을 아래와 같이 수정합니다.

<Window x:Class="Sample1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Sample1"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Button x:Name="button" Content="Button" HorizontalAlignment="Left" Margin="432,10,0,0" VerticalAlignment="Top" Width="75"/>
        <Label x:Name="label" Content="Label" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="417"/>

    </Grid>
</Window>


xaml 파일만 수정해도 위에 있는 디자인 화면이 자동으로 갱신됩니다.


sample01-003.png


VS도 나이가 먹어감에 따라 디자이너의 성능은 갈수록 좋아지는 것 같습니다. 예전에는 정말 못써먹을 물건이었는데 지금은 상당히 이질감 없는 작업이 가능합니다.


이제 화면 구성은 되었고 버튼에 간단하게 이벤트를 붙여보도록 하겠습니다.


디자인에 있는 버튼을 더블클릭해봅시다.


자동으로 이벤트가 생성되면서 코드로 화면이 이동합니다.


다음과 같이 코드를 수정합니다.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Sample1
{
    /// <summary>
    /// MainWindow.xaml에 대한 상호 작용 논리
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void button_Click(object sender, RoutedEventArgs e)
        {
            this.label.Content = "Hello World!";
        }
    }
}


이제 실행해서 버튼을 누르면 창에 Hello World!가 표시되는 것을 확인할 수 있습니다.


sample01-004.png