C# 자동업그레이드 2008. 12. 2. 01:23

    자 이제 마지막이다.

    전체 소스를 공개하도록 하자.

    다운은..

    http://www.devpia.com/dExpert/?Op=tv&Seq=1220

    여기서 받고..

     

    받기싫다면.. 다 입력해야지 뭐

    개인적으로 생각할때도 받을만한 가치는 없다만.. 그래도 입력하기 싫다면 돈으로 때워야지 어쩌겠니..

     

    1. 기본적으로 ms-sql이나 오라클같은 경우에는 지금의 제한사항이 좀 더 유연해진다. 만약 클라이언트가 내부내트웍내에서 디비서버로의 접속 아이디와 패스워드에 소스에 적혀 있음이 문제되지 않는다면 바로 DB에서 데이타테이블을 가져오도록 하면 아주 많은 제약사항을 모두 다 넘길수 있다.

    물론 받는동안의 progress는 지원이 안되겠지만.

    2. 현재의 제약을 넘기위해서는 파일경로를 DB에 적어놓고 전송할때는 실제 파일을 읽어서 처리하는 형태로 할것이다.

    입력하기 싫으면.. 덱스인가 뭔가에서 받으면 된다.

    아님.. 직접 작성하면 되고.. 어려운건 참고하고..

    하지만.. 지금 뿌려준것과 완벽하게 똑같을것이다.(뭐 한두자 정도는 틀릴수도 있지 뭐 ㅎㅎ)

    참고로... mdb는 SP못쓴다. Ibatis라도 써라고 우기거나 구현해라고 우기거나 그러면 싫어할꺼다.

    최소한 1강인가 어디서 view스타일의 외부 쿼리쓰는법은 알려줬으니 그걸 응용해라.

    언젠가 잠시(?) 또 한번쯤 맞이가면.. Ibatis비스무리 한거라도 함 만들어 보자.

    그런데 이제 MDB는 거의.. 뭐 아니지 않는가 ^^

    전체소스는…………..

    clip_image001

    이렇게 구성되어 있으며 강좌내에서 보다는 많이 변경되었다. 동일한 소스이지만 효용성을 위해서 클래스로 다시금 작성구조를 변경해 두었다.

    서버부터 보도록 하자.~~~~~~~~~~~~~~~~~~~~~~~~~```

    만약 정상적으로 보이지 않는다면 다운받거나 해서 보면 된다. 데브의 제한과 그리고 소스자체가 길다.

    clip_image002

    clip_image003

    clip_image004

    clip_image005

    --------------------------------------------------------------------------------------------------------------------------

    클라이언트

    ---------------------------------------------------------------------------------------------------------------------------

    clip_image006

    clip_image007

    clip_image008

    클라이언트 폼의 소스

    clip_image009

'C# 자동업그레이드' 카테고리의 다른 글

자동업그레이드 9  (0) 2008.12.02
자동업그레이드 8  (0) 2008.12.02
자동업그레이드 7  (0) 2008.12.02
자동업그레이드 6  (0) 2008.12.02
자동업그레이드 5  (0) 2008.12.02
자동업그레이드 4  (0) 2008.12.02
자동업그레이드 3  (0) 2008.12.02
자동업그레이드 2  (0) 2008.12.02
자동업그레이드 1  (0) 2008.12.02
posted by 삶의여유로움
:
C# 자동업그레이드 2008. 12. 2. 01:22

    예제를 위해서 Test프로젝트를 하나 만들자.

    clip_image001

    clip_image002

    clip_image003

    소스는 단 한줄이면 된다.

    당연히 저 한줄을 위해서는..

    clip_image004

    참조에.. 우리가 만든 클라이언트를 포함시켜 줘야 한다.

    clip_image005

    클라이언트 소스는 이런식으로 작성해 줬다.

    즉.. 실행하는 녀석의 program의 이름을 알아낸다음..

    그것을 기본 세팅파일에 저장한다.

    clip_image006

    그러면.. 실제적으로 자동 업데이트를 호출하는 녀석을 알게되므로

    업데이트 후에는.. 이녀석을 다시금 실행하면 되는것이다.

    clip_image007

    너무 어렵다고 생각된다면 하나만 기억하자.

    새롭게 만든 프로젝트에.. 단지 한줄만 적어주면 자동으로 업데이트를 체크해서 업데이트할것이 있다면

    clip_image003[1]

    clip_image008

    라고 메시지가 나오고 확인을 누르면 업데이트가 되고 다시금 호출한 프로그램이 실행되는것이란 이야기다.

    일단은 프로젝트를 받게되면 제일먼저 해줘야 하는것은..

    clip_image009

    셋팅클래스에서 서버의 주소를 적어줘야 한다. 이것때문에 셋팅데이타를 XML로 하려고 했으나 강좌의 진행상 ^^ 다른파일로 처리가 되었다.

    clip_image010

    여기서 서버의 아이피만 적어준다면 쉽게 로컬에서도 테스트가 될것이다.

    단 로컬에서 한다면 너무 빨리 처리가 되어서 업데이트 화면이 뜨고 사라짐에도 볼수 없는 속도로 업데이트가 끝날것이다.

    실제적인 서버아이피만 설정해서 컴파일 한다면 소스의 수정이 없는 상태로 대부분의 프로젝트에서

    호출시 한줄만 선언해주면 알아서 업데이트를 처리할것이다.

    물론 이 서버를 여러가지 업데이트가 가능하도록 처리하겠다면

    서버의 테이블부터 조금 변경해야 될것이다.

    서버가 작동중이지 않을때를 대비해서 체크루틴은 쓰레드로 처리했으며 일반적으로 프로그램이 실행될때는 속도차이는 없다고 봐도 좋다.

'C# 자동업그레이드' 카테고리의 다른 글

자동업그레이드 10  (0) 2008.12.02
자동업그레이드 8  (0) 2008.12.02
자동업그레이드 7  (0) 2008.12.02
자동업그레이드 6  (0) 2008.12.02
자동업그레이드 5  (0) 2008.12.02
자동업그레이드 4  (0) 2008.12.02
자동업그레이드 3  (0) 2008.12.02
자동업그레이드 2  (0) 2008.12.02
자동업그레이드 1  (0) 2008.12.02
posted by 삶의여유로움
:
C# 자동업그레이드 2008. 12. 2. 01:21

    이것의 응용으로 MDB를 하나의 서버로 이용할수도 있다.

    이론적으로 가능하지만 ? 굳이 그렇게 사용하려고 할만한 사람은 없을꺼라고 믿는다.

    왜냐면 ms-sql Express가 이미 무료로 배포가 되니까 말이다.

    사용법

    사용법은 너무 단순하고 쉽다.

    일단 서버를 실행한다.

    clip_image001

    왼쪽에 업그레이드할 파일을 드레그 드랍한다.

    clip_image002

    입력버튼을 누른다.

    clip_image003

    오른쪽으로 데이터가 이동되었을것이다.

    서버대기를 누른다.

    clip_image004

    모든것은 끝났다. 서버는 이것으로 모든셋팅이 끝이다.

    물론 version이던지 inputdate는 왼쪽의 그리드에서 스스로 입력해도 된다.

    그것은 자신의 기준이다. 현재로서는 드래그하는 날짜를 기준으로 자동입력이 될것이다.

    여기서 첫번째 그림에서 보듯이 여러가지 파일중 방금 추가한것에 대해서만 클라이언트가 받게될것이다.

    클라이언트의 폴더를 보자.

    clip_image005

    박화요비라는 파일은 보이지 않는다. 클라이언트를 실행하자.

    clip_image006

    하나의 파일이 증가됨을 알수 있다.

    예를 들어서 클라이언트에서 실수로 모든 파일을 지웠음을 예상해보자.

    clip_image007

    이상태에서 클라이언트를 실행해본들 아무런 효용성이 없다.

    왜냐면.. 기본적인 setting.bin에 기록된 기준날자로 인해서 DB에서 쿼리를 해서 업데이트를 받아올것이기 때문이다.

    그러므로 이경우는 setting.bin을 삭제해주면 초기화가 될것이고 그 뒤에 업데이트된 프로그램에 한해서

    다시금 다운을 받게 될것이다.

    clip_image008

    지워주고 실행한다.

    clip_image009

    정상적으로 전체파일을 받아오게 된다.

    또한

    clip_image010

    이런식의 같은파일을 두개를 입력했을경우를 보자. 왜냐면 업데이트란것은 항상 같은 파일이름이 언제나 서버에 중복적으로 생겨야 하기때문이다.

    뒤에 inputdate에 따라 결국 어느것이 더 최신인가를 판단하게 될것이다.

    select *

    from AutoUpdate, (SELECT filename as FN, Max(inputdate) as Idate FROM AutoUpdate AUT group by filename)

    where filename = FN and inputdate = Idate;

    이런 쿼리를 사용하여 중복의 경우는 최근에 입력한것에 대해서만 클라이언트에게 나가게 될것이다.

    실제적인 모습은.

    clip_image011

    이렇게 하나만 나오게 될것이다.

    물론 실제적으로 이렇게 끌어다 입력을 하더라도 실제적으로 화면에는 나오지 않을것이다.

    여하튼.. 두개가 있는 것중 최신것이 내려질것이다.

    예를 들어

    clip_image012

    최신파일을.. 수작업으로 5000으로 한정지었다.

    즉.. 옛날 파일이 있더라도.. 더 최신파일로 업데이트를 해야되므로 말이다.

    clip_image013

    이 형태에서

    아래처럼.. 최신파일로 업데이트 되었음을 보여준다.

    clip_image014

    정상적으로 처리가 된다.

'C# 자동업그레이드' 카테고리의 다른 글

자동업그레이드 10  (0) 2008.12.02
자동업그레이드 9  (0) 2008.12.02
자동업그레이드 7  (0) 2008.12.02
자동업그레이드 6  (0) 2008.12.02
자동업그레이드 5  (0) 2008.12.02
자동업그레이드 4  (0) 2008.12.02
자동업그레이드 3  (0) 2008.12.02
자동업그레이드 2  (0) 2008.12.02
자동업그레이드 1  (0) 2008.12.02
posted by 삶의여유로움
: