Server.Execute를 써볼까? JinHO |

Server.Execute

넌 누구냐?

HttpServerUtility.Execute지정된 경로에 해당하는 요청을 실행하는 메쏘드입니다. .aspx/.ashx와 같은 HttpHandler를 실행할 수 있다는 의미입니다. 사용되는 빈도는 높지는 않아서 다소 생소할 수도 있으나 생각보다 쓰임새가 꽤 유용하기에 이를 활용하는 방법을 소개하고자 합니다.

어떻게 써야 하지?


위 그림을 보면 대충 감이 오실 겁니다. 눈치가 빠르신 분이라면 어떻게 활용해야 할지를 생각하느라 머리가 바쁘실 수도 있겠네요. 제가 주목하는 부분은 메쏘드의 인자값으로 TextWriter라는 Stream개체를 전달 할 수 있다는 겁니다. 이는 요청을 실행한 후의 결과값을 받을 수 있다는 의미가 됩니다. 그럼 그 결과값을 주물럭거려서 활용을 한번 해볼까요?

활용1. 스킨을 만들어볼까?

흠... asp.net에서의 스킨 구현방법은 여러가지가 있습니다. 가장 많이 쓰이는 방법으로는 페이지 요청시 스킨에 해당하는 UserControl을 동적으로 불러오는 방법이 있지요. 구현하기도 편하고 스킨을 편집할 때도 UserControl안에서 컨트롤을 편집할 수 있어서 좋습니다. 또다른 방법으로는 dasBlog, dotNetNuke와 같이 스킨에 해당하는 템플릿 컨트롤을 만들어서 스킨에 해당하는 문자열을 동적으로 해석하는 겁니다. 이 방법은 구현이 많이 힘들고, 구현방법에 따라 스킨의 편집이 원하는대로 되지 않아서 지정된 가이드를 따라야만 할 수도 있습니다. 스킨구현에 대해서는 나중에 따로 포스트를 올리는게 좋겠습니다.

스킨구현의 또다른 방법으로는 Server.Execute를 사용하는 겁니다.


위와 같이 템플릿을 작성한 후 지정된 각 PlaceHolder에 각 파트에 해당하는 결과값을 실행하여 뿌려주는 것입니다. 제가 가능하다고 글을 적고는 있지만 그다지 유용한 방법은 아니라고 생각되어서 길게 설명하지는 않겠습니다. 다만, 이러한 방법이 있다는 것을 얘기하려고 한것 뿐입니다. 그럼 좀더 유용한 예를 통해 Server.Execute의 활용법을 알아보도록 하죠.

활용2. 메일 전송에도 효과적이네~

개인적으로 Server.Execute를 많이 활용하는 부분은 메일전송시에 사용합니다.
기존 이즈보드, 이즈블로그에도 쓰였는데, 메일전송시 해당 템플릿을 얻는 방법으로
메일파일을 만든후 해당파일을 읽어들여서 적절히 내용을 배치하는 방식이었습니다.
그러나, 그런 방법보다는 mail.aspx와 같이 aspx를 작성한후 해당파일을 실행시키면
해당화일내에서 경로, 및 폼개체 등의 문제를 말끔히 해결하실 수 있습니다.

[code]

private void SendMail()
{
    string mailBody = ExecuteMailPage("~/03_Neovis/MailPage.aspx");
    Result.Text = Server.HtmlEncode(mailBody).Replace("\r\n", "<br />");
}

private string ExecuteMailPage(string path)
{
    StringBuilder sb = new StringBuilder();
    using (StringWriter sw = new StringWriter(sb))
    {
        Server.Execute(path, sw);
    }
    return sb.ToString();
}

[/code]

쓸만하긴 한가요?

메일의 경우에는 상당히 유용하게 활용할 수 가 있었습니다. .aspx이다 보니 메일의 다국어처리도 가능하더구요. 이처럼 Server.Execute는 많이 쓰이지는 않지만 그 쓰임이 유용한 경우가 반드시 있습니다.

Trackbacks (0) | Comments (2)
http://jojaebi.isblog.net/trackback_post_2.aspx
hitchweb 4/8/2007 12:15:14 AM
ㅋ. 데모페이지에서 뎃글타고 들어왔습니다.
테스트 용도로 쓰고 계신 블로그신가요 아니면 운영중이신 건가요... ^^
하튼 이즈블로그 이쁘게 개발 해주시길~~~ 기대 만빵~
Reply Delete
JinHO 4/9/2007 7:22:08 PM Delete
현재 운영중인 사이트입니다.
현재 너무 바빠서 강좌/팁이 갱신되지 않고 있습니다만, 5월경부터 asp.net 관련 포스트를 갱신할 예정입니다.
name
password
homepage
comment
secret
< PREV 1 NEXT >