2009-04-16 5 views
2

나는 MFC로 몇 년 전에 쓴 DVD 카탈로그 응용 프로그램을 가지고 있습니다. 레코드는 sqlite 데이터베이스에 저장되므로 기본적으로 CRUD 앱입니다. UI 방식으로 왼쪽에는 트리보기, 오른쪽 상단에는 목록보기 (그리드), 오른쪽 아래에는 HTML보기 (내장 된 IE)가 있습니다. 멋진 일은 없어.셰어웨어/프리웨어 데스크톱 응용 프로그램에 사용할 언어/플랫폼은 무엇입니까?

더 많은 기능으로 앱을 업데이트하고 싶지만 지난 몇 년 동안 Java EE를 사용해 왔지만 MFC로 전혀 생산성이 없다는 것을 깨달았습니다. 그래서 저는 제 생산성을 높이기 위해 다른 것을 사용해야한다고 생각합니다. 크로스 플랫폼은 큰 보너스이지만 절대적으로 필요한 것은 아닙니다. 여기

내 연구를 기반으로 옵션은 다음과 같습니다

  • 자바/스윙 : 내 자바 지식을 활용할 수 있습니다; 훌륭한 써드 파티 라이브러리 (IoC 용 Spring과 ORM 용 Hibernate와 같은); 교차 플랫폼. 단점은 JRE가 사용자에게 필요하다는 것입니다. 스윙은 "maintanence"모드에있는 것처럼 보이며 Sun에서 많은 관심을받지 못합니다.
  • C++/Qt : 네이티브 응용 프로그램; 크로스 플랫폼. 하지만 Qt를 처음 사용하기 때문에 먼저 배워야합니다.
  • C#/WPF : WPF는 Windows GUI 개발의 인 것 같습니다. 그리고 나는 일부 WPF 샘플 응용 프로그램에 깊은 인상을 받았습니다. 나는 C#에 대한 경험이 있지만 나는 WPF를 배워야합니다. 단점은 Windows ; .NET 3.5 런타임 필요.

내 상황에 있다면 어떻게 사용하겠습니까? 제안에 대해 미리 감사드립니다.

답변

4

이 응용 프로그램을 개발하는 동안 새로운 기술을 배우고 싶다면 C#/WPF 및 LINQ (C# 3.0)는 Java가없는 경우 정말 좋습니다.

속도를 높이고 싶다면 이미 자신의 질문 인 Java/Swing에 대답하십시오. 그것은 당신이 잘하는 것입니다.

4

저는 실제로 큰 C# 팬이지만 크로스 플랫폼이 큰 보너스라고 말했기 때문에 실제로는 Qt가 더 좋을 것이라고 생각합니다. C#은 모노를 통해 크로스 플랫폼이 될 수 있지만 그 점에서 Qt을 사용하면 더 나은 결과를 얻었습니다. 또한 QtAssistant에서 여러분을 시작할 수있는 좋은 문서를 가지고 있습니다.

2

정말로 클래스 플랫폼 유형의 응용 프로그램을 원한다면 웹 응용 프로그램으로 변환하고 호스트 할 것입니다. 그렇게하면 한 사용자가 DVD 정보 또는 DVD 표지 사진을 업로드하면 다른 사용자가 이미 시스템에 입력 된 정보를 이용할 수 있습니다.

데스크톱 용으로 개발하려면 OS UI 도구를 활용하여 해당 플랫폼 용으로 만든 응용 프로그램과 같은 느낌을 갖도록하십시오. 그리고 Windows의 경우 C#/WPF 옵션을 선택하십시오.

+0

. WebStart는이를 잘 관리합니다. Windows 통합 (또는 비 Windows 데스크톱과의 통합)이 필요하다면 적절한 플랫폼 별 Java 라이브러리를 찾을 수있을 것입니다. –

1

MFC 앱에 UI 코드가 아닌데 재사용하고 싶다면 QT를 고려해보십시오. 그렇지 않으면 배우기를 원하는 것을 선택하십시오.

1

C#/WPF 대신 Silverlight를 사용할 수 있습니다. 당신은 응용 프로그램을 시작하고 실행하는 데 많이 걸리지 않을 정도로 간단하게 보입니다. 컨퍼런스에서 보여지는 데모와 비슷합니다.

기본 사항을 얻으면 애니메이션, 무비 클립, 앨범 아트, 인터페이스와 같은 커버 플로우 등의 멋진 기능을 추가하는 것이 매우 쉽습니다.

달빛이있는 Windows/Mac 사용자와 Linux 사용자를 대상으로 할 수 있습니다. 그러나 나는 지난 8 년 동안 리눅스를 보지 않았으므로 그것에 대해 많이 말할 수는 없다.

3

생산성이 큰 문제인 경우 PyQt + Python도 고려하십시오. Qt에 대한 학습 곡선이 그만한 가치가 있다고 말하면서, 처음에는 힘들지 않을 것이라고 말하면서 저를 믿으십시오.

Sqlite 지원은 Qt의 Python 표준 라이브러리와 QSql 모듈 모두에서 사용하기를 원합니다.

PyQt + Python은 크로스 플랫폼 옵션이기도합니다. Python은 많은 플랫폼에서 사용할 수 있고 Qt의 크로스 플랫폼은 처음부터 사용할 수 있기 때문입니다.

애플리케이션에서 사용한 컨트롤은 모두 Qt에서 사용할 수 있습니다.

3

원시 C++와는 다른 유일한 도구는 Delphi입니다. 기간.

다른 도구를 사용하면 배포에 문제가 있습니다.

Delphi를 사용하면 자체 exes를 생성 할 수 있습니다. 또한 데이터베이스 연결성이 뛰어납니다.

컨트롤이나 3D 파티 도구가 부족하고 소스 코드가 많으며 무료/상용 툴셋이 부족합니다.

그리고 컴파일 시간이 은하에서 가장 빠른 있습니다, 당신은 심각한 경우)

그래서, 당신의 고객을 위해 더-hasle에게 응용 프로그램을 제공하지 않으며, 고객은 기술 중심의 개발자 같은 혼란이 될 수없는 것을 4 개의 .NET 런타임 중 어느 것이 최소의 지원, 쉬운 다운로드, 클릭 - 클릭 - 설치 - 이동, Skype, TopStyle (델파이로 만들어진) 및 others과 같은 instanly로 작동하는 응용 프로그램을 필요로하기 때문에 Delphi/C++가 유일한 것입니다 선택권. 진지하게. 유일한 옵션.


크로스 플래 타이 솔루션을 원한다면 GUI가 최소한의 경우 FreePascal/Lazarus가 작동 할 수 있습니다.

1

Eclipse RCP를 사용하면 Java, 크로스 플랫폼 개발 (Delta Pack 참조), 원시 모양 (SWT 사용) 및 데스크탑 개발을위한 훌륭한 프레임 워크 모음 (선언적 UI, 플러그인 관리 등)을 얻을 수 있습니다. 당신은 분명히 그것을 시도해야합니다.

3

대부분의 경우 프로젝트의 범위가 비교적 작고 계산 요구 사항이 적 으면 TCL/Tk을 사용하는 경향이 있습니다. 나는 아직 tk보다 생산성이 높은 GUI API를 배웠다. (하나가 없다는 말은하지 말고 몇 가지를 시도해 보았고 느리게 발견했다.) TCL은 프로그램 할 수있는 가장 훌륭한 언어는 아니지만 많은 도움이되는 추가 기능이 있지만 특히 [incr tcl]tcllib이 있습니다.

다른 시스템 대신 이것을 선택하는 이유는, 예를 들어 python으로 코딩하는 것이 더 나은 이유는 tcl/tk를 사용한 배포가 타의 추종을 불허하기 때문입니다. Starkit을 사용하면 설치 프로그램이 필요없는 단일 파일 더블 클릭 응용 프로그램이 생기며 쉽게 휴대 할 수 있습니다.

+0

우리는 "합리적으로 작은"정의에 동의하지 않을지라도 동의합니다. Tcl은 적절하게 설계 될 때 수십 또는 수십만 줄의 코드로 잘 확장된다고 생각합니다. 많은 사람들이 필요하지는 않습니다. 나는 현재 엄지 드라이브에 90 % 완성 된 CRUD 앱을 가지고 있는데, 지금은 2000 줄 밖에 안된다. –

0

C++/wxWidgets (하지만 Qt 할 수 있음) 경로는 거의 동일한 시나리오 (SQLite db로 응용 프로그램 업그레이드)로 표시 될 때 몇 달 전으로 거슬러 올라갑니다. wxWidgets은 매우 쉽게 데리러 왔고 필요한 모든 것을 갖추고 있었고 MFC보다 훨씬 쉬웠습니다.가장 좋은 부분은 CodeProject (예 : CPPSQLite)에서 SQLite에 대한 좋은 C++ 래퍼를 발견했으며 시간이 많이 걸리는 작업을 전부 처리했습니다 ... 프로젝트에서 wxWidgetss를 팔았습니다.

0

어도비 에어와 같은 것을 실제로 매우 자세히 보았습니다. 그것은 크로스 플랫폼이며 html/javascript 기반 일 수 있으므로 기회는 자바 스크립트 라이브러리 또는 두 가지를 제외하고 많이 배울 점입니다. 그것은 로컬 데이터 저장소 또는 webservice 또는 RESTFUL 서비스에 대한 interweb를 통해 대화 할 수 있습니다. 개발에는 aptana가 무료입니다. 그 안에 기록 된 물건의 일부를 체크 아웃 : 당신은 인터넷이 준비 될 수있는 웹 응용 프로그램 일 필요는 없습니다

http://www.adobe.com/products/air/showcase/

관련 문제