퇴근5분전


* JsFW20을 설치 후 가능함.


1. 프로젝트를 생성한다.

2. 프로젝트 참조경로에 JsFW20 설치된 폴더를 추가해준다.
  기본 : 프로그램폴더\JsFW20Dll\

3. 응용프로그램설정( app.Config )파일 추가

4. DB연결에 필요한 App.Config를 추가 후 


<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="Server" value="서버명"/>
    <add key="DataBase" value="데이타베이스명"/>
    <add key="Uid" value="아이디"/>
    <add key="Pwd" value="패스워드"/>
  </appSettings>
</configuration>

으로 설정해준다.

5. JsFW.ADONET에 DataBase_Business 객체를 재정의 함.

    public class Table_1 : JsFW.ADONET.DataBase_Business
    {
        public override DataSet List(JsFW.BasicObjects.IUniDataParameter iDataPrms)
        {
            return ExcuteDataSet("Select * From Table_1", CommandType.Text, new SqlParameter[0]);
        }
    }

 * 현재 DataBaseBusiness 에  List, Insert, Update, Delete 가 public으로 가상 메서드로 잡혀있다.
이를 재정의 해서 업무비지니스에 맞춰 재정의하거나 Execute**** 메서드등을 이용해서 메서드를 구성하면 된다. 
도움말 chm 참조!!

결과 스샷!



간단한 Select 코드 전문.


    Table_1 db = new Table_1();
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            dataGridView1.DataSource = db.List(null);
            dataGridView1.DataMember = "table";
        }
    }

    public class Table_1 : JsFW.ADONET.DataBase_Business
    {
        public override DataSet List(JsFW.BasicObjects.IUniDataParameter iDataPrms)
        {
            return ExcuteDataSet("Select * From Table_1", CommandType.Text, new SqlParameter[0]);
        }
    }

 










'# 9) My Program(.NET) > JsFW20' 카테고리의 다른 글

JsFW20.XML 을 이용한 예제 2  (0) 2010.05.24
JsFW20.XML을 이용한 예제.  (0) 2010.05.24
JsFW20 설치하기...  (0) 2010.05.22
NetWork 2010 0511  (0) 2010.05.12
WinControls 2010 0402  (0) 2010.04.03

 내가 만든 개발 프레임웍은 다시 살펴보니... 조정되어야 할게 좀 많더라!!

완벽할수 없으니 뭐... 재끼고... 

 설치는 간단하다.

설치 파일을 클릭하면... 설치된다. ( 당연한거쥐?  )



설치하면 ...

위와 같이 dll들이 설치가 된다!! 준비는 끝!!





'# 9) My Program(.NET) > JsFW20' 카테고리의 다른 글

JsFW20.XML을 이용한 예제.  (0) 2010.05.24
JsFW20를 이용한 DB Select.  (0) 2010.05.22
NetWork 2010 0511  (0) 2010.05.12
WinControls 2010 0402  (0) 2010.04.03
XML 2010 0402  (2) 2010.04.03


프로젝트가 지루해져가서 잠깐 딴짓을 해본다. 

 소요 시간 : 1시간반쯤? 기록 10분...쿵..,  
 도구 : 종이 두장. ( 낙서가 생각하는데 도움을 준다. )

 막상 글을 다 적고 보니 전공자가 아니라서 그런지 부족한게 보여도 채워넣기가 쉽지 않다.
몰라서이기도 하고, 알아야 하는것이 있음에도 그걸 익힐 시간이 만만치 않기에... (핑계~ )

제목처럼 글하나를 프로그래밍 해본다.( 조금은 복잡하게... 말이다. )

물론 저 간단한 문장을 쉽다면 아주 아주 쉽게, 어렵다면 어렵게... 상황에 맞춰서 코딩을 하겠지만...

코딩전 객체설계단계를 연습삼아.. 만들어보자! 우선은 글에서 나타난 객체들을 구상한다.

 (나) 라는 주체가 있고 (종이)와 (글)을 쓰는 (펜) 이 존재하게 된다. 


 음. 네가지의 객체가 서로 관련되어 있다. 이를 간단한 구상도( 나만에 방법 )를 그려보자.


 
음 위에 종이와 펜도 구체화 해보자.

 간단하다.   중간에 대리자나 객체 또는 인터페이스... 등등.. 선택하고 싶은걸 넣으면 된다. 

코딩에 들어가야겠지? 
굳이 대리자를 써본이유는

  public void Write(string wrMsg)
        {
            _wPen.Data = wrMsg;
            //_wPaper.Get(_wPen.Draw);  // 기본사용..

            _wPaper.Get(delegate(Graphics g) {   
                g.DrawString(wrMsg, new Font("궁서체", 20f), Brushes.Red, new PointF(10, 100));
            });
        }

이걸 기록하기 위해서다.
( 반드시 제공되는 소스대로가 아닌 취향에 맞게 변경할수도 있다는 것을 제공해주기 위한 배려?...
    : 이걸 제공함으로 원치 않은 동작이 나타날수 있으니.. 설계시 설계자의 판단에 맞겨야겠지?  )
{
 * 국어인 한글을 단어 찾아보면서 써야되겠네... 
  반드시   [부사] 틀림없이 꼭.
  반듯이   [부사] 찾아보기: 반듯하다
}
아래는 소스 전문이다.

폼에 버튼 하나 추가되있고 버튼에 Click이벤트를 추가한것 뿐이다. 

위 구성도가 있으니... 주석은 패쑤!

 public partial class Form1 : Form
    {
        Writer me = null;
        Paper paper = null;
        Pen pen = null;
        public Form1()
        {
            InitializeComponent();
            pen = new Pen();
            paper = new Paper(this);
            pen.Penfont = this.Font;
            me = new Writer( pen, paper );
        }

        protected override void OnFormClosed(FormClosedEventArgs e)
        {
            base.OnFormClosed(e);
            pen = null;
            paper.Dispose();
            paper = null;
            me = null;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            me.Write("가나다라");
        }
    }

    public class Writer
    {
        Pen _wPen = null;
        Paper _wPaper = null;

        public Writer(Pen p1, Paper p2)
        {
            _wPaper = p2;
            _wPen = p1;
        }

        public void Write(string wrMsg)
        {
            _wPen.Data = wrMsg;
            _wPaper.Get(_wPen.Draw);
        }
    }

    public delegate void Delegate_Draw(Graphics paper);

    public class Paper : IDisposable
    {
        Graphics _g = null;

        public Paper( Control ctrl)
        {
            _g = Graphics.FromHwnd( ctrl.Handle );
        }

        public void Get(Delegate_Draw toolDraw)
        {
            toolDraw(_g);
        }

        #region IDisposable 멤버

        public void Dispose()
        {
            _g.Dispose();
            _g = null;
        }

        #endregion
    }

    public class Pen
    {
        string _data = string.Empty;

        public string Data
        {
            get { return _data; }
            set { _data = value; }
        }

        Font _penfont;

        public Font Penfont
        {
            get { return _penfont; }
            set { _penfont = value; }
        }

        public void Draw(Graphics  g)
        {
            g.DrawString(_data, _penfont, Brushes.Black, new PointF());
        }
    }