ASP.Net 또는 WPF (C #)? [닫은]


31

우리 팀은 이것으로 나뉘어 있으며 제 3 자 의견을 얻고 싶습니다.

우리는 응용 프로그램을 구축 중이며 WCF 서버와 함께 .Net WPF Desktop Application 또는 jQuery를 사용하는 ASP.Net 웹 응용 프로그램을 사용할 것인지 결정할 수 없습니다. 나는 여기에 몇 가지 사양으로 질문을하고 양쪽을 사용하는 장단점이 무엇인지 알 것이라고 생각했습니다. 나는 내가 좋아하는 편이며 편견이 있다고 느낀다.

이상적으로 우리는 가능한 한 빨리 소프트웨어의 초기 릴리스를 빌드 한 다음 속도를 늦추고 나중에 원하는 추가 기능 / 구성 요소를 빌드하는 데 시간이 걸립니다. 무엇보다도 우리는 소프트웨어가 빠르기를 원합니다. 사용자는 하루 종일 레코드를 살펴보고 레코드로드 또는 화면 새로 고침 지연으로 인해 생산성이 저하됩니다.

신청 세부 사항 :

  • 초기 버전에 대해 약 100 개의 서로 다른 화면을 추정하고 있으며 초기 릴리스 이후에 추가되는 많은 화면이 계획되어 있습니다.
  • 알림 및 이벤트 시스템에 양방향 통신을 사용하려고합니다.
  • 현재 약 100 명의 사용자를 지원해야하지만 최대 500 명의 사용자를 늘릴 수 있다고 들었습니다.
  • 우리는 여러 위치가 있습니다

고려해야 할 항목 (처음에는 아니지만 향후 릴리스에서 제공 될 수 있음) :

  • 초기 릴리스 이후 추가 할 추가 구성 요소를위한 공간 (이 중 많은 부분이있을 수 있습니다. 초기 애플리케이션보다 여기에서 작동 할 수 있음)
  • 키보드 탐색
  • 성능은 필수입니다
  • 초기 버전으로 생산 속도
  • 낮은 유지 보수 오버 헤드
  • 향후 지원
  • 소프트 폰 / 스캐너 통합

우리 개발자 :

  • 지난 몇 개월 동안 WPF를 배우고있는 프로그래머가 1 명인데이를 위해 WPF를 사용할 것을 제안했습니다.
  • ASP.Net에 익숙하고 향후 프로젝트에 도움을 줄 수있는 두 번째 프로그래머가 있지만 현재 소프트웨어를 유지 관리하는 데 시간이 걸리기 때문에 초기 릴리스까지 많은 작업을하지 않을 것입니다.
  • 둘 다 함께 일했고 어느 쪽에도 편한 사람이 있습니다
  • 프로젝트 관리를 수행하는 외부 회사가 있으며 ASP.Net 회사입니다.
  • 1-2 명을 고용 할 계획이지만 먼저 어떤 방향으로 가고 있는지 알아야합니다.

환경:

  • 일반 사용자는 터미널 서비스가있는 Windows 2003 서버에 있습니다. RDP 연결을 통해 WYSE 씬 클라이언트를 사용하여 연결합니다. 관리자는 XP 이상의 자체 PC를 보유하고 있습니다. 사용자는 IE를 웹 브라우저로 사용하도록 제한되어 있지만 자체 해상도를 지정할 수 있습니다.
  • 다른 위치는 MPLS 연결을 통해 네트워크에 연결

이를 바탕으로 무엇을 선택하고 이유는 무엇입니까?


나는 모든 투표를 사랑하지만, 이것에 대해 더 많은 의견을 듣고 싶습니다 :)
Rachel

3
처음에 100 개의 화면이 필요한 것은 무엇 입니까?
Steven A. Lowe

이 추정에는 많은 부분 화면이 포함됩니다. 예를 들어, 메인 화면은 사용자의 필요에 따라 추가 / 제거 / 이동 / 크기 조정될 수있는 여러 "조각"으로 나뉩니다. 각각에는 고유 한 데이터 세트, 고유 한 편집보기 및 수행 할 수있는 고유 한 조치 세트가 있습니다. 각각 매우 다르기 때문에 단일 화면 대신 별도의 것으로 계산합니다.
Rachel

.NET MVC 3, JQuery 및 HTML5 사용
Oliver Picton

1
@kmote 안녕, 우리는 결국 WPF와 함께 가고 결정에 매우 만족했다. 사용자 인터페이스를 구축하는 데 훨씬 더 많은 유연성을 허용했으며 웹 기반 솔루션에 비해 빌드가 매우 빠릅니다. 슬프게도, 다른 우선 순위로 인해 1 년 후에 프로젝트가 취소되었지만 동일한 선택을 다시 제시하면 동일한 결정을 내립니다.
Rachel

답변:


17

많은 사용자 상호 작용과 잠재적으로 하드웨어와 상호 작용하는 WPF 앱처럼 들립니다. Click-Once를 통해 앱을 제공 할 수 있으므로 배포는 대부분 문제가되지 않습니다. WPF 앱은 WCF 서비스에 액세스하고 데이터를 이진으로 제공하여 성능이 우수합니다. WPF를 읽고 가능한 한 빨리 익숙해지기 시작했습니다.


+1 또한 모든 화면에서 앱과 코드를 최대한 재사용 할 수 있습니다.
Jon Onstott

+1 "소프트 폰 / 스캐너 통합"이 필요하다고 생각합니다. 유일한 방법은 WPF입니다. 또는 Silverlight를 사용할 수도 있습니다
Jiew Meng

15

루나틱 프린지 답변 : 둘 다. 서비스 계층을 확보하십시오. 모든 것을 수행하는 두꺼운 클라이언트 (WPF)와 빠른 웹 클라이언트가 가장 일반적인 작업 (ASP.NET)을 수행하기 쉽습니다. 도로 아래로 모바일 클라이언트 등에 문을 열어 둡니다.


그것이 우리가 생각하고있는 것입니다 ... 보고서 또는 제한된 액세스를 위해 경량 웹 버전을 사용하는 대부분의 WPF 클라이언트 응용 프로그램.
Rachel

2
+1, 당신이 편한 .NET 언어로 프리젠 테이션이 아닌 내장을 쓴 다음 각 프리젠 테이션 작업에 가장 적합한 도구를 사용하십시오 (예 : 웹 애플리케이션은이 애플리케이션에 대한 ASP.NET 인터페이스, 데스크탑은 WPF / Winforms / 기타).
heretik

처음에는 사용자가 더 많은 앱을 더 빨리 가져 오는 것을 의미하는 경우 특히 ASP.NET이 '충분히 좋은'것을 찾을 수 있습니다.
JeffO

8

WPF를 배우는 프로그래머가 한 명 뿐이고 팀이 WPF로 넘어가는 것을 고려하고 있다면 Silverlight를 대신 사용하지 않는 이유는 무엇입니까? WPF의 많은 이점을 얻을 수 있지만 프로젝트를 웹앱으로 남겨 둘 수는 있습니다. 대형 모듈화 된 프로젝트를보고 있기 때문에 사용하는 것이 좋습니다 PRISM 을 WPF 또는 Silverlight와 함께 하여 MVVM을 더 간단하게 만드는 것이 좋습니다.

우리 팀은 최근에 asp.net에서 Silverlight를 사용하기로 결정했습니다. 그것은 우리에게 환상적인 선택이었습니다. 처음에는 실버 라이트를 아는 개발자가 한 명뿐이었습니다. 그런 다음 우리 모두는 거의 쓸모없는 일주일 교육 수업을 들었지만 적어도 발은 젖었습니다. 결국 우리는 대부분의 UI 프레임 워크를 만드는 데 도움을주기 위해 두 명의 계약자를 고용해야했습니다. 우리 팀의 대다수는 여전히 실버 라이트 기술에 자신이 없습니다. 본인은 silverlight에 대한 지식이있는 초기 팀 구성원이며 두 계약자는 SL 개발을 많이 수행하는 계약자입니다. 그 후 우리는 전용 백엔드 멤버 2 명을 보유하고 있습니다. Silverlight로 이사하기로 결정한 후 약 2 개월이 걸렸으며, 실제로 구체적인 내용을 정리했습니다. 하나, 이제 우리는 웹 브라우저 내부에서 실행되고 로컬 컴퓨터에 설치되지 않은 클라이언트 쪽 응용 프로그램과 매우 흡사 한 훌륭한 제품을 보유하고 있습니다. 개발은 총 1 년이 채 걸리지 않았으며 출시 또는 첫 번째 출시 후보가 거의 다되었습니다.

고려해야 할 사항 :

  • WPF 또는 silverlight 중 어느 쪽을 선택하든 개발자가 알아야 할 상당한 금액이 있습니다.

  • 필요한 경우 Silverlight에 브라우저가 부족할 수 있습니다. 이 작업을 수행하면 새 버전을 출시 할 경우 설치된 브라우저 SL 프로그램이 자동으로 업데이트되도록 쉽게 설정할 수 있습니다.

  • Silverlight에는 WPF에있는 모든 컨트롤이 포함되어 있지 않습니다.

마지막으로 코드를 최대한 빨리 작성하려면 ASP.NET을 사용해야합니다. ASP의 주요 장점은 팀을 훈련시키지 않으면 ASP.NET 프로젝트가 복잡하고 어려워지기 쉽다는 것입니다. 기술을 빠르게 익히기위한 초기 오버 헤드를 처리 할 수 ​​있다고 생각한다면 Silverlight 또는 WPF를 통해 많은 가능성을 얻을 수 있습니다.


우리는 매우 비슷한 상황에 처해 있습니다. 감사합니다. 나는 지금까지 WPF 만 사용했지만 Silverlight를 고려할 것입니다. 우리는 WPF와 함께 가면 내가 결국 학습 계획했다, 그래서 우리는 실버 라이트에서 우리보고 섹션 일을 계획
레이첼

ASP.NET이 원하는대로 확장되지 않기 때문에 Silverlight에서 ASP.NET 응용 프로그램을 변환 (읽기 다시 쓰기)하는 중입니다.
ChrisF

1
참고로 Silverlight는 MS의 주요 제품이 될 수 없으며 일부 경우 사람들은 그것이 낙담했을 수 있습니다. 고려하는 것이 좋을 것입니다.이 정보를 가능한 단점 목록에 추가하십시오.
Paige Watson

1
이런 종류의 앱에서는 은빛보다 WPF를 강력하게 고려할 것입니다. WPF는 XBAP (xaml 브라우저 응용 프로그램)로 쉽게 배포 할 수 있으며 일반적으로 구성 파일의 코드를 몇 번만 변경하면됩니다. WPF에는 Silverlight가 수행하는 모든 작업이 포함되어 있으며 WPF는 훨씬 더 많은 지원을받습니다. 한 가지 단점은 Silverlight를 더 많은 OS (Moonlight 프로젝트가 포함 된 Linux)에도 배포 할 수 있지만 WPF는 클라이언트의 .Net을 요구하므로 엄격하게 Windows입니다.
Morgan Herlocker

2
Silverlight가 중단되는지는 모르겠지만 Mashable 기사 MicrosoftSilverlight에서 HTML5로 이동 합니다. 개인적으로, 가능한 경우 데스크탑 또는 독점 플러그인을 통해 가능한 경우 Pure Web Apps를 진지하게 고려할 것입니다
Jiew Meng

7

이 부분은 다음과 관련이 있습니다.

일반 사용자는 터미널 서비스가있는 Windows 2003 서버에 있습니다. RDP 연결을 통해 WYSE 씬 클라이언트를 사용하여 연결합니다. 관리자는 XP 이상의 자체 PC를 보유하고 있습니다. 사용자는 IE를 웹 브라우저로 사용하도록 제한되어 있지만 자체 해상도를 지정할 수 있습니다.

WPF는 원격 데스크톱 / 씬 클라이언트 연결에 적합하지 않습니다. 애니메이션이 매끄럽지 않고 복잡한 이미지 (그라데이션도 포함)가 UI 응답 속도를 느리게합니다. 일반적인 레트로 XP 컴퓨터의 관리자는 복잡한 WPF 응용 프로그램 (소량의 RAM과 잘못된 GPU로 인해)에 성능 문제가있을 가능성이 높습니다.

풍부한 그래픽을 위해 WPF 경로를 사용하는 경우 대상 시스템이 10 년이 된 것을 발견하면 막판 성능 해킹에 대비하십시오. 3.5 이후 WPF 성능이 크게 향상되었으므로 정적 화면을 고수하고 .NET 4.0을 사용하십시오.


고마워 ... 그것은 실제로 나에게 큰 관심사이지만, 지금까지 사용자가 RDP 연결을 사용하고 테스트가 제대로 실행되면 그래픽을 축소 할 수있는 것처럼 보입니다.
Rachel

2

기술적으로 WPF / WCF 조합이 더 나은 솔루션이라고 생각합니다.

그러나 기존 WPF 프로그래머가 실제로이 프로젝트에 대한 경험이 있다고 확신하지 않습니다. WPF는 Winform 프로그래밍에서 사고 프로세스를 프로그래밍하는 데 상당한 변화가 있기 때문에 팀에서이 경로를 제공하기에 충분한 기술을 보유하고 있는지 오랫동안 고민해야합니다.


1
+1 '2 개월 동안 배우는 것'은 무엇이든 의미 할 수 있습니다-가파른 학습 곡선에 대비하십시오.
커크 브로드 허스트

1

흥미 롭군 우리 회사에서 방금 시작한 앱 (휴대 전화 및 스캐너 통합 등)에 매우 친숙하게 들립니다 .

필요에 따라 나중에 WPF 앱을 만들 수 있도록 SOA에 중점을 둔 silverlight를 선택했습니다.

초기 릴리스 이후 추가 할 추가 구성 요소를위한 공간 (이 중 많은 부분이있을 수 있습니다. 초기 애플리케이션보다 여기에서 작동 할 수 있음)

서비스 계층에서 MEF를 사용하고 확장 점 (확장 성 또는 다른 시스템과의 통합을 계획하는 특정 지점을 설명하는 플러그인 인터페이스)을 구성하고 있습니다.

키보드 탐색

문제가 아니다.

성능은 필수입니다

어떤 종류의 성능? 인식 된 성능 (스냅 피 니스) 또는 숫자 크 런칭 성능? 후자는 웹 / 실버 라이트 앱에 문제가 될 수 있습니다. 전자의 경우 앱은 사용자와 같은 많은 레코드를 거치지 만 사용자가 현재 레코드를 작업하는 동안이를 예측하고 레코드를 프리 페치 할 수 있습니다. 앱의 해당 섹션에 대한 '로드'시간은 0입니다.

초기 버전으로 생산 속도

스킬 셋에 따라 다릅니다. 그러나 현실적으로 모든 사람은 항상 가능한 빨리 시장에 진출하기를 원하기 때문에 논쟁의 여지가 없습니다.

낮은 유지 보수 오버 헤드

생산 속도와 마찬가지로 논쟁의 여지가 없으며 설계 및 코딩 방법으로 넘어갑니다. 하드웨어 유지 관리 측면에서 클라우드 앱을 사용하는 것이 좋습니다.

향후 지원

그게 무슨 뜻인지 잘 모르겠습니다.

소프트 폰 / 스캐너 통합

Silverlight 4는 이제 웹캠 / 마이크 액세스를 허용합니다 (우리는 응용 프로그램 간 화상 회의 및 SIP 통합을 원합니다). 전화 서버를 사용하는 경우 직접 작성할 수 있습니다. 기존 항목을 모르지만 도움 될 수 있습니다.

그렇지 않으면, 추악한 해킹을해야 할 수도 있고 (더 이상 기사에 대한 언급이 없어 죄송합니다), 파일 시스템과 상호 작용할 수있는 WPF 앱을 선택할 수밖에 없습니다. SL4는 브라우저에서 벗어날 수 있지만 파일 시스템의 특정 부분에만 액세스 할 수 있습니다. 그들 중 어느 것도 sip phone과 상호 작용하는 데 필요한 부분이 될 수 없습니다.

문서 스캐너를 의미합니까? 나는 그것에 대해 확실하지 않다. 핸드 / 바코드 스캐너를 사용하고 있으며 다른 입력 장치와 동일하게 작동하며 문제가되지 않습니다.


1

사람들이 하루 종일 사용할 수 있도록 응답 성이 뛰어난 응용 프로그램이 필요하십니까? WPF를 사용하십시오. ASP / MVC (IMHO)를 통한 WPF의 GUI 구성 요소를 더 쉽게 재사용 할 수 있습니다.

예, jquery 등은 훌륭하고 silverlight는 시원하지만 데스크톱 앱은 여전히 ​​효율적입니다.

백엔드의 경우 WCF가 좋습니다.


0

확장 성과 보안으로 인해 서비스 계층에 WCF를 사용하는 것이 좋습니다. 프레젠테이션 계층의 경우 Silverlight 또는 ASP.NET을 사용할 수 있습니다. Silverlight는 Flash와 비슷하지만 처음에는 대부분 데이터 작업시 이해하기 어렵고 학습 곡선이 높습니다. ASP.NET은 사용하기 쉽지만 효율적으로 사용하려면 많은 조정과 자바 스크립트가 필요합니다.


1
계획은 UI 계층에 대해 무엇을 선택하든 관계없이 WCF 서비스 계층을 갖도록하는 것입니다. 클라이언트 응용 프로그램에 WPF / Desktop 또는 ASP / Web을 원하는지 결정하려고합니다. 데스크톱 앱을 사용하더라도 보고서와 같은 하위 항목에 액세스 할 수있는 웹 포털이있을 가능성이 높습니다.
Rachel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.