728x90
윈도우 폰 7 의 출시가 세달 정도 앞으로 다가왔습니다. 수많은 사람들이 새로운 세상을 꿈꾸며 윈도우 폰 7 을 기다리고 있을 것 같습니다. 이미 알려진 것처럼 윈도우 폰 7 에서는 C# 와 Silver Light 이 핵심 기술로 자리잡고 있습니다. 기존의 윈도우 모바일로 개발된 많은 UI / UX 들은 재활용되기 힘든 상황이지만 비지니스 로직이 C# 으로 되어 있다면 그나마 조금 나을 것 같습니다.

윈도우 폰 7 어플리케이션 개발을 위해 우리가 공부해야 할 것들이 참 많아 보입니다. 월간 마이크로소프트紙에도 6월부터 8월까지 세달에 걸쳐 윈도우 폰 7 개발 기초 강좌가 진행중이니 이걸 먼저 참조하면 좋을 것 같구요, 그 외 Silver Light 4 자체에 대한 학습을 위해 개론성격의 강의를 MS 의 김영욱 Evangelist 께서 만든 동영상이 있어 공유합니다. Techdays 2010 에서 공개된 영상이고 Silver Light 플러그인이 설치되어 있으면 바로 감상이 가능합니다 :-)



- NoPD -
728x90
728x90
간만에 MS 쪽 기술 Follow-Up 을 다시 시작했습니다. 그동안 회사 업무니 뭐니 바빴다가 이제 정신 좀 차리면서 따라 잡을거 따라잡고 하는 중이네요. 아직도 머릿속엔 alloc / init 이 가득차 있지만 이제는 멀티 트랙으로 움직여야 할 시기가 된 것 같네요 :-)

올해 초에 온라인으로 개최한 한국 마이크로소프트의 개발자 컨퍼런스 동영상 중 몇가지를 좀 공유할까 합니다. MSDN 에 있는 링크 영상이 너무 사이즈가 작아서... 조금만 더 키워 보고자 하는 것이 첫번째 이유지만 여튼... 좋은 것은 나눠야 배가 되니까요 :-)



- NoPD -
728x90
728x90
윈도우 모바일에서 기본적으로 Form 을 열면 전체 화면에 출력되지가 않는다.
상단의 Task Bar 영역과 하단의 Menu 영역을 제외한 나머지 영역이
ClientRectangle 로 기본적으로 잡혀 있는 상태이기 때문이다.

전체 화면으로 어플리케이션의 Form 을 띄우기 위해서는
Form 에 Menu 객체를 제거한 다음
아래와 같이 간단한 코드를 생성자에 추가해 주면 된다.

public Form1()
{
    InitializeComponent();
    this.WindowState = FormWindowState.Maximized;
}

- NoPD -

728x90
728x90
* 이 글은 오라클 기술 네트워크(Oracle Technology Network)에 공개된 Joh Paul Cook 의 영문 아티클을 번역 / 의역한 글입니다. 원문은 링크(http://tinyurl.com/m69mvh)를 통하여 확인하실 수 있습니다.

에러 핸들링

에러가 발생하게 되면 닷넷 어플리케이션은 유연하게 에러를 핸들링 해야 하며 사용자에게 의미있는 메세지를 전달해 주어야 합니다. Try-Catch-Finally 에러 핸들링 구조는 닷넷 언어의 한 부분입니다. 아래의 소스코드는 오라클 연계 개발시 Try-Catch-Finally 에러 핸들링 구조를 사용하는 간단한 예입니다.

try
{
    conn.Open();

    OracleCommand cmd = new OracleCommand();
    cmd.Connection = conn;

    cmd.CommandText = "SELECT dname FROM dept WHERE deptno = " + textBox1.Text;
    cmd.CommandType = CommandType.Text;
    if (dr.Read())
    {
        label1.Text = dr["dname"].ToString();
    }
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message.ToString());
}
finally
{
     // 객체 초기화 코드
}
이러한 에러 핸들링 방식은 에러 발생시 무리 없이 에러를 처리할 수 있는 구조이긴 하지만, 사용자 친화적인 방식의 에러 처리라고 보기는 어렵습니다. 이러한 코드상에서 에러가 발생하는 경우 아래와 같이 불친절한 메세지가 사용자에게 출력되게 됩니다.


ORA-12154 와 같은 에러 코드, 에러 메시지는 오라클 DB 관리자(DBA)나 개발자 에게는 굉장히 유용한 메세지 임은 틀림없는 사실입니다만 사용자에게는 전혀 그렇지 못합니다. 보다 나은 에러 핸들링 방법은 추가적인 Catch 구문을 이용하여 주요 데이터베이스 에러 코드를 처리하고 사용자 친화적인 메세지를 출력해 주는 것입니다.

catch (OracleException ex)
{
    switch (ex.Number)
    {
        case 1 :
            MessageBox.Show(" 중복된 데이터를 Insert 하고 있습니다 ");
            break;
        case 12545 :
            MessageBox.Show(" 데이터베이스를 사용할 수 없습니다 ");
            break;
        ...
        ...
        default :
            MessageBox.Show(" 처리되지 않은 데이터베이스 에러가 발생했습니다 : " + ex.Message.ToString();
            break;
        }
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message.ToString());
}
보다 상세하게 처리 로직을 추가한 위의 코드를 보면 catch 문이 2개가 사용된 것을 볼 수 있습니다. 오라클과 관련된 에러를 핸들링하는 catch 구문과 일반적인 에러를 핸들링하는 catch 구문이 그것입니다. 이와 같이 에러 메세지를 처리해 주면 사용자에게 보다 편안한 에러 메세지를 제공해 줄 수 있을 것입니다.

- NoPD -
728x90

+ Recent posts