정말 간단한 작업만 하면 만들 수 있는 C#을 통한 웹브라우저이다. 여기서 툴은 비주얼 스투디오가 아닌 SharpDevelop(오픈소스 개발 툴, 간단한 개발이라면 비주얼스투디오를 쓰는 것보다 효율적이다.)을 이용하였다. 사용방법은 거의 비주얼스투디오와 동일하므로 비주얼 스투디오에서도 동일하게 할 수 있을 것이다.
먼저 윈도우 어플리케이션 프로젝트를 생성한다. 이름은 간단하게 SimpleWebBrowser로 했다.
그렇게 하면 빈 폼 디자인이 하나 나오는데 거기에 주소를 입력할 텍스트박스와 컴포넌트에 있는 웹브라우저 컴포넌트를 붙이고 각각 프로퍼티를 조절한다.(여기서는 간단하게 위치 조절만 하였다.)
이제 텍스트박스에 이벤트를 걸면 끝이다. 주소를 입력하고 엔터키를 치면 아래에 화면이 불러지도록 할 것이므로 키입력에 관한 이벤트에 메소드를 작성하자.
일단 텍스트박스의 프로퍼티를 보면 위에 번개모양이 있는게 이게 이벤트관련 프로퍼티를 보여주는 부분이다. 여기서 KeyPress부분을 클릭하면 자동으로 메소드가 추가되고 소스 입력화면으로 이동한다.
스프링 닷넷은 자바 진영에서 매우 다양한 곳에서 쓰이고 있는 유명한 프레임워크 스프링의 닷넷 버전이다. 아래의 그림을 보면 알 수 있듯이 단순한 컨버젼이 아니라 스프링이 가지고 있는 개념을 닷넷에 가장 어울리도록 최적화한 것이라고 볼 수 있다.
여기서는 이런 다양한 스프링 닷넷 프레임워크 중 DI에 대해서 간략하게 알아보겠다.(이 부분은 코어에 소속된 부분이다. 즉 스프링의 다양한 개념 중에서도 매우 중요하며 기초적인 부분이다.)
DI
먼저 DI라는 개념을 먼저 파악해야 한다. DI는 Dependency Injection의 약자로서 번역하면 의존성 주입 정도가 된다. 간략하게 설명하자면 하나의 클래스에서 다른 클래스의 객체를 사용할 경우에 직접 객체를 생성해서 사용하지 않고 사전에 설정해 둔 바에 따라서 객체를 가져와 사용할 수 있게 한다는 개념이다.
이렇게 할 경우의 가장 큰 장점은 가져오는 객체의 구조나 생성방식이 바뀌더라도 설정파일을 바꾸는 것만으로 그에 무관하게 사용할 수 있다는 점이다.
아래의 간단한 예를 보면 쉽게 이해가 되리라 생각한다.
스프링 닷넷에서 DI의 사용
먼저 사전작업으로 Spring.Net 프레임워크를 다운받아 설치해두는 작업이 필요하다.(이는 스프링닷넷 프레임워크 사이트에서 다운받아 설치만 하면 되므로 생략)
그리고 Spring.Core 어셈블리 파일을 참조추가해둔다. 이로서 사전 작업은 끝
Program.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Spring.Context; using Spring.Context.Support;
namespace SpringNET { class Program { static void Main(string[] args) { IApplicationContext ctx = ContextRegistry.GetContext(); Hello hello = (Hello)ctx.GetObject("MyHello"); string name = "lee"; string result = hello.SayHello(name); Console.WriteLine(result); Console.Read(); } } class Hello { public string SayHello(string name) { return "Hello!, " + name; } } }
위와 같이 소스코드를 하나 작성한다. 다른 부분은 간단하므로 설명하지 않고 DI가 실제로 일어나는 붉은 색부분만 설명하면 첫번째 줄은 현재 어셈블리의 설정파일로 부터(아래에 작성해 볼 것이다.) 어플리케이션 컨텍스트를 가져온다. 둘째줄은 가져온 컨텍스트에서 MyHello라는 이름의 Object를 가져오도록 하는 것이다.