강좌 & 팁
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
<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 파일만 수정해도 위에 있는 디자인 화면이 자동으로 갱신됩니다.
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!가 표시되는 것을 확인할 수 있습니다.