MS office2006. 5. 29. 22:43
UI가 너무 많이 바뀌어서, 아주 생소하다...
아직 많이 써보질 않아서 기능이 추가가 많이 되었는지는 잘 모르겠지만..
암튼 베타2부터 이렇게 많은 사람에게 다운로드를 할 수 있게 하는 걸 봐서는
MS에서 UI가 바뀐 것에 대한 부담이 확실하게 있는 듯...










'MS office' 카테고리의 다른 글

[Article]Windows Live Writer  (2) 2006.10.16
[Article]Word 2007 Blog Post 기능  (2) 2006.10.15
[Article]OWA 2007의 모습...  (0) 2006.09.15
Posted by kkongchi
Software Engineering2006. 5. 23. 22:23

Work toward a shared vision
비전을 공유하고, 그 비전을 목표로 작업한다.

프로젝트에는 명확한 비전 혹은 목표가 있어야 한다. 그 비전은 복잡해서도 안 되고, 애매해서도 안 된다. 이를테면, "이번 프로젝트를 통해서 3달안에 우리의 전자결재 솔루션 제품에 오피스 지원 기능을 추가함으로써 경쟁 제품에 대한 우위를 점하고 업계 No.3로 올라선다" 정도의 간단하면서도 프로젝트를 통해서 달성할 비즈니스 가치, 그 비즈니스 가치를 달성하기 위한 제품의 목표 등을 완전히 기술하는 형태가 되어야 한다. 그리고 그 달성해야 할 비즈니스 가치는 엄격한 조사와 많은 토론을 통해서 제련된 아주 현실성 있는 목표여야 한다.

목표가 명확해야 길을 잃지 않는다. 목표가 명확해야 다른 길로 잘못 들어서지 않는다. 목표가 명확해야 팀원들이 힘을 잃지 않는다. 현재 No.4인데 무조건 No.1로 올라서자 등의 현실성 없는 목표나 최고의 전자결재 솔루션을 만든다 등의 애매한 목표를 가지고 일을 하게 되면, 끝도 보이질 않고 중간에 헤매게 되고 그러다 보면 팀원들의 힘은 빠지는 최악의 상황으로 흘러 갈 수 있다. 명확하고 현실성 있는 목표를 설정해야, 그 목표를 이룰 수 있다. 그리고 결국 프로젝트의 성패를 가루는 기준은 프로젝트가 목표한 바를 이루었느냐이다.



다른 원칙 보기

Foster open Communications (열린 커뮤니케이션을 장려한다)

Work toward a shared vision (비전을 공유하고, 그 비전을 목표로 작업한다)
Empower Team Members (팀 멤버들에게 많은 권한을 위임한다)
Establish clear accountability and shared responsibility (팀,개인의 의무를 분명히 하고, 동시에 책임을 모두가 공유해야 한다)
Focus on delivering business value(비즈니스 가치에 초점을 맞춰야 한다)
Stay agile, expect change (언제나 유연하게 변화에 대응할수 있도록 한다)
Invest in Quality (품질에 투자한다)
Learn From all Experiences(모든 경험으로부터 배운다)

Posted by kkongchi
C# & VB.NET2006. 5. 12. 03:00

네이버가 구글처럼 웹 문서 검색, 지식인 검색 등의 기능을 원격에서 호출할 수 있는 API 서비스를 오픈했다. 현재는 베타 테스트 중이고 하루에 기능을 사용할 수 있는 횟수가 한정되어 있지만 이 API를 사용해서 실제 네이버 웹 문서 검색 페이지와 똑같은 기능을 하는 페이지를 만들어 볼 수 있다.

자세한 사항은 여기로 -> http://openapi.naver.com/
사용하려면 회원 가입을 해서 키를 하나 받아야 한다.

다음 소스는 이 API를 사용해서 네이버 웹 문서를 검색하는 페이지를 Visual Studio 2005, C#으로 만들어 본 샘플이다.

먼저 페이지 디자인.
간단하게 검색어를 입력하는 텍스트 박스와 검색을 실행하는 버튼으로 구성했다.


네이버 API를 통해서 검색한 결과는 다음과 같이 RSS 포맷으로 반환이 된다.

<?xml version="1.0" encoding="UTF-8" ?>
<rssversion="2.0">
<channel>
<title>Naver Open API - webkr ::'go'</title>
<link>http://search.naver.com</link>
<description>Naver Search Result</description>
<lastBuildDate>Tue, 11 Apr 2006 14:36:33 +0900</lastBuildDate>
<total>18992582</total>
<start>1</start>
<display>10</display>
  <item>
  <title><b>GO</b>.com</title>
  <link>http://www.go.com/</link>
  <description>... Victims, Military Personnel Sell Rations Online Government Report Finds Ready-to-Eat Meals for Sale on eBay...... trailers and the latest buzz on... Harry Potter and the Goblet of Fire , X-Men 3 , Spider-Man 3 , more... Tonight...</description>
  </item>
</channel>
</rss>

아래부터는 코드이다. 위의 RSS XML을 파싱해서, 목록으로 뿌려주는 것이다.
버튼 클릭 이벤트에서 실제 기능을 구현하도록 작성했다.

protected void Button1_Click(object sender, EventArgs e)
{    
//네이버 API는 정의된 URL을 호출해서 RSS타입의 XML을 받을 수 있도록 구성되어 있다
//URL 호출을 위해서 WebClient 클래스를 하나 선언하고, 인스턴스화한다

System.Net.WebClient oClient = new System.Net.WebClient();

  //네이버 API URL을 구성한다. GET방식으로 이루어져 있기 때문에 QueryString을 추가한다
//이 예제는 국내 웹 문서 검색을 하는 예제이다

oClient.QueryString.Add("key", "YourKey"); //회원가입 시에 받은 키
  oClient.QueryString.Add("target", "webkr"); //웹문서 검색
oClient.QueryString.Add("display", "100"); //100개의 결과 디스플레이
oClient.QueryString.Add("start", "1"); //1페이지부터 시작
  oClient.QueryString.Add("query", this.TextBox1.Text); //텍스트박스에 입력받은 텍스트를 검색어로 설정한다
  oClient.Encoding = System.Text.Encoding.UTF8; //반드시 인코딩은 UTF-8, 네이버 API의 규칙이다.

  //구성된 URL을 호출해서, 그 결과를 문자열로 받는다
  string s = oClient.DownloadString("http://openapi.naver.com/search");

  //문자열을 XMLDocument 객체로 로드한다
  System.Xml.XmlDocument oXmlDoc = new System.Xml.XmlDocument();
oXmlDoc.LoadXml(s);
 
//XPATH정규식을 통해서 item항목, 즉 검색 결과 항목들만을 뽑아낸다
  System.Xml.XmlNodeList oNodeList = oXmlDoc.SelectNodes("/rss/channel/item");

  //검색결과 화면을 위한 HTML 테이블 구성
  System.Web.UI.HtmlControls.HtmlTable oTable = new HtmlTable();
oTable.Width = "800";
oTable.Align = "left";
oTable.Border = 0;
oTable.CellPadding = 0;
oTable.CellSpacing = 0;

  //item항목 리스트에서 For Loop를 돌면서, 검색결과를 하나씩 붙인다
  for (int i = 0; i < oNodeList.Count; i++)
{
  //제목(title)을 위한 Row
       System.Web.UI.HtmlControls.HtmlTableRow oRow = new HtmlTableRow();
  System.Web.UI.HtmlControls.HtmlTableCell oTitleCell = new HtmlTableCell();
  string sTitle = oNodeList[i].ChildNodes[0].InnerText;

       //제목이 없을 경우를 위한 처리
       if (sTitle == null || sTitle.Length == 0)
  {
       sTitle = "제목없음";
  }
   

       //제목에다 link요소의 내용으로 링크를 건다.
      oTitleCell.InnerHtml =
       "<a target='_new' href='" + oNodeList[i].ChildNodes[1].InnerText + "'>" + sTitle + "</a>";
  oRow.Cells.Add(oTitleCell);
  oTable.Rows.Add(oRow);

       //상세 내용(Description)을 위한 Row
       System.Web.UI.HtmlControls.HtmlTableRow oRow2 = new HtmlTableRow();
  System.Web.UI.HtmlControls.HtmlTableCell oDescCell = new HtmlTableCell();
  oDescCell.InnerHtml = oNodeList[i].ChildNodes[2].InnerText;
  oRow2.Cells.Add(oDescCell);
  oTable.Rows.Add(oRow2);
}
//구성된 테이블을 페이지에 추가한다
  this.Page.Controls.Add(oTable);
}

실행한 화면이다.
내 별명인 kkongchi를 검색어로 검색을 해보았다.
사실은 페이징 부분을 추가하고, UI도 더 이쁘게 해야겠지만..


Posted by kkongchi
asp.net2006. 5. 10. 16:53

1. 웹 파트 개요


     a. ASP.NET 웹 파트는 최종 사용자가 웹 페이지의 내용, 모양 및 동작을 브라우저에서 직접 수정할 수 있는 웹 사이트를 만드는 데 사용할 통합 컨트롤 집합이다.


     b. 수정 내용은 사이트의 모든 사용자 또는 개별 사용자에게 적용될 수 있다. 사용자가 페이지와 컨트롤을 수정하는 경우 이후의 여러 브라우저 세션 간에 사용자의 개인 기본 설정을 유지할 수 있도록 설정을 저장할 수 있다. 이 기능을 개인 설정이라고 한다.


     c. 이러한 웹 파트 기능을 통해 개발자는 개발자나 관리자의 개입 없이도 최종 사용자가 웹 응용 프로그램을 동적으로 개인 설정할 수 있도록 권한을 부여할 수 있다.

2. Web Part 에서 사용자가 조절할 수 있는 것들


     a. 페이지 내용 개인 설정 - 사용자는 새 웹 파트 컨트롤을 페이지에 추가하거나 제거하고, 숨기거나 최소화할 수 있다.


     b. 페이지 레이아웃 개인 설정 - 사용자는 웹 파트 컨트롤을 페이지의 다른 영역으로 끌어 오거나 페이지의 모양, 속성 및 동작을 변경할 수 있다.


     c. 컨트롤 내보내기 및 가져오기 - 사용자는 다른 페이지 또는 사이트에 사용할 웹 파트 컨트롤 설정을 가져오거나 내보낼 수 있다.


     d. 연결 만들기 - 예를 들면 차트 컨트롤에 주식 기호 컨트롤의 데이터 그래프가 표시되도록 컨트롤을 서로 연결할 수 있다.


     e. 사이트 수준 설정 관리 및 개인 설정 - 권한이 부여된 사용자는 사이트 수준의 설정을 구성하고, 사이트 또는 페이지에 액세스할 수 있는 사용자를 결정할 수 있으며 컨트롤에 대한 역할 기반 액세스를 설정할 수 있다.

3. 웹 파트 구성



4. 웹 파트 호스팅 페이지


     a. 페이지 레이아웃용 영역 사용
             i. 웹 파트 용어로 영역, 즉 페이지에서 웹 파트 컨트롤을 포함하는 영역이라고 한다.
            ii. 페이지에는 영역이 하나 이상 있을 수 있으며 세로 또는 가로 방향으로 페이지를 레이아웃할 수 있는 각 영역에는 하나 이상의 웹 파트 컨트롤이 포함될 수 있다.


     b. 영역 내의 웹 파트 컨트롤
             i. 각 컨트롤은 컨트롤에 링크, 단추 또는 클릭할 수 있는 이미지로 나타낼 수 있는 UI, 즉 사용자가 수행할 수 있는 작업을 포함한다.
            ii. 각 컨트롤에 대한 메뉴에는 해당 컨트롤에 대한 세부 정보를 변경하는 옵션과 컨트롤을 이동하거나 삭제하고 도움말을 가져오는 등 일반적인 작업을 수행하는 기타 옵션이 포함되어 있다.


     c. 광범위한 개인 설정을 활성화하는 링크
               i. 사용자는 페이지의 내용, 색 및 레이아웃을 변경할 수 있다. 예를 들어 Add Content 링크를 클릭하여 사용자가 선택적으로 페이지에 추가할 수 있는 컨트롤 카탈로그를 표시할 수 있다

Posted by kkongchi
.NET General2006. 5. 4. 21:20

비주얼 스튜디오 닷넷 2003 을 사용할 때, 디버깅 시에 가장 유용하게 사용했던 도구라고 한다면, 내 경우는 직접 실행 창이었다. 물론 자동, 지역, 조사식 등의 도구들도 있지만, 난 대부분의 경우 직접 실행 창을 사용했다. 인텔리센스 기능도 지원하기 때문에, 코드 외의 여러 가지를 실행시켜보면서 작업할 수 있기도 하고, 변수에 담긴 값이 꽤 클 때도 보기가 편하다는 장점이 있어서, 디버깅을 할 때 코드를 step by step으로 실행시키면서 직접 실행창만을 가지고 작업을 했었다.

비주얼 스튜디오 2003(그리고 그 이전 버전)에서는 메뉴중에서 디버그->창->직접실행 을 선택하면 디버그 중에서 직접 실행 창을 볼 수 있었다. 그런데, 이번에 새로 출시된 Visual Studio 2005에서는 (내가 못 찾은 것인지 아니면 어딘가 숨어 있는지는 모르겠지만) 디버그->창 까지는 있는데 거기에 직접실행창을 띄우는 메뉴는 없다.

이 직접 실행 창을 띄우는 방법은 다음과 같다.

1. 기본적으로 명령 창은 디버그 시에 자동으로 나오게 된다. 이 명령 창에서 immed를 입력하고 엔터를 누른다




2. 그러면 직접 실행 창이 나오게 된다. 여기서 이전처럼 사용하면 된다.


Posted by kkongchi