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

    자.. 상당히 정신이 없을것 같다.

    나름 쉽게 적는다고 쉽게 적었다만 오히려 쉽게 적는다고 더 코드가 왔다 갔다 하는덕에

    오해를 하지 않을까 싶다.

    하여간 전체 소스를 보게 되면 실제적으로 중요코딩은.. 10줄 이내고

    핵심적인건 100여줄이 안된다는걸 알게될것이다.

    크게 어려운게 아니니 쉽게 이해하리라 믿는다.

    자 이제 DS을 통해서 그 정보를 파일로 저장하는것을 해보자.

    clip_image001

    사실 저장은 따로 말할만하게 없다.

    그냥.. 하면 되는것이니 말이다.

    이제 모든게 처리되었다.

    프로세서를 통해서 실행하는것은 이미 알고 있을꺼라고 믿고

    또한 EXE 파일을 참조로 끌어들여서 최신버전을 체크하는것 또한 잘 할꺼라고 믿는다.

    아.. 별거아닌걸 하나를 빠뜨린것 같다.

    다운을 받고나서는 또는 파일로 다 기록을 한 뒤에는 자체적인 Lastdate 변수에 오늘받은것의 기준날짜를 기록해주고 그것을 기록해야 할것이다.

    그러면.. 다시 업데이트를 할때 기준날짜를 기준으로 해서 업데이트를 할것이 없으므로 인해서

    서버에 새로운게 있지 않는이상 업데이트가 되지 않을것이다.

    clip_image002

    이제 고민할것은 실제적인 이녀석의 실행이다.

    과연 어떻게 실행할것인가? 이것이 사실상의 코딩보다 더 중요한 입장이다.

    예를들어서 VS가 실행할때마다 업그레이드를 확인한다고 생각해 보자.

    또는 한글워드를 생각해보도록 하자.

    이런어플리케이션들은 실제적으로 자주운용이 되는 입장에서 여러모로 서버에게 부하가 가중될수도 있다. 그럼 어떤방식으로 운영이 되는가?

    한글워드의 경우 업데이트 프로그램이 별도로 있는입장에서 레지스트리를 이용해서 이 프로그램이 실행되는걸로 알고있다.

    하지만 네트웍 프로그램들을 살펴보자. Ndisk나 sun폴더 또는

    대신증권같은 소프트웨어를 보자. 이런것들은 실제적으로 항상 서버에서 전해주는 기준적인 프로토콜이 생명일뿐이 아니라 항상 네트웍으로 연결이 필요한것들이다. 이런경우의 소프트웨어는 항상 실행할때마다 업데이트를 체크해야 할것이다.

    그럼 우리가 만드는 소프트웨어는 어떻게 하는게 좋을까?

    그렇다 이건 당신의 문제라는 것이다.

    일단은 지금은 가볍게 함수를 하나 만들어서 처리를 하자.

    최종요약

    1. 이것은 소규모에나 사용될수 있는 업데이트다.

    즉 규모가 크면 불가하다. 만약 큰파일도 전송을 해야된다면 실제적인 파일은 데이타들은 외부에 둔상태로 있어야 한다. 즉 DB에 데이터를 넣지 않고 외부파일을 통신으로 전송하는 방식으로 하면 현재의 모든 문제는 (sirialize의 메모리 오류가 나오는 문제와 그외 등등)은 해결이 된다.

    또는 드물겠지만. 클라이언트에서 바로 DB로 접근을 해서 Dataset을 받아오는것도 나쁘지는 않다.

    하지만 이경우 DB접속패스워드의 보안상의 문제점 MDB를 이용할수 없고 대규모형 sql를 사용해야지 할것이다.

    2. 앞쪽에서 설명하지 않고 그냥 지나왔지만 실제적인 DB에서 쿼리는 Max를 사용해 주어서 중복되는것은 inputdate의 최신날짜의것을 가져와야 한다. 업데이트의 속성상 항상 같은 이름으로 파일이 저장될것이기 때문이다.

    3. MDB는 일종의 View의 개념을 지원한다. 즉 MDB파일내에 쿼리를 넣고 C#에서는 단지 그 이름만 호출이 가능하다는 것이다. 앞서 예제를 보여주었다. 즉 쿼리는 사실상 mdb에 넣어두는게 변경에 용의할것이다.

    4. 바인딩을 사용하게 된다면 이 소스의 50%는 줄일수 있다.

    게다가 더 효율적이고 기능도 더 많을것이다. 게다가 더 안정적이고 그러지 않은것에 대해서 묻지는 않길 바란다.

    4. 현재는 설명을 위해서 중구난방으로 되어 있다.

    실제적인 활용을 위해서는 각 루틴을 클래스로 만들어야지만 할것이다. 그래서 서버의 소켓 / 클라이언트의 소켓을 따로 분리시키고 이 폼이 아니더라도 다른곳에 붙이기 쉽도록 변경했다.

    디렉토리부분은 구현해 놓지 않았다. 추가는 스스로 할수 있으리라 믿는다.

    전체소스는 MDB를 포함하여

    올려두었다.

    또한 입력하는 사람을 위하여 클래스별로 올려놓았다. 이미지가 작게 나오는건 데브를 탓하기 바란다.

    5. 파일전송에 대한 포스팅은 시간이 되는데로 새로운 프로젝트로 새로운 강좌에서 시작해 보자.

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

자동업그레이드 10  (0) 2008.12.02
자동업그레이드 9  (0) 2008.12.02
자동업그레이드 8  (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 삶의여유로움
: