2009-08-26 5 views
2

저는 델피와 볼랜드의 도구에 대해 높은 지식을 가진 프로그래머입니다. 나는 현재 C#과 .NET을 배운다.잃어버린 프로그래머가 조언을 구합니다.

상용화 된 응용 프로그램의 전체 재 작성을 계획 중입니다.

Microsoft 도구에서 사용할 수있는 모든 기술을 사용하여 완전히 잃어 버렸습니다.

어떤 방법으로 가야합니까? WinForms? WPF? WCF? Asp.NET? Microsoft Ajax 사용? JQuery? NHibernate? 강력한 형식화 된 데이터 집합? S # arp? 성? 코뿔소?

나는 모든 기술이 상호 배타적이지 않고 호환 가능하지 않다는 것을 알고 있지만, 어떤 조합이 .NET 세계에서 최고가되는지 알고 싶습니다.

간단히 말해서, 내 응용 프로그램은 데이터베이스 응용 프로그램입니다. 라벨 및 티켓 프린터에 맞춤 문자열을 보낼 수있는보고 기능이 필요합니다. 앱의 특정 섹션에서 그래픽 조작이 필요합니다. 이미지 그리기 및 마우스 위/아래/움직임 트래핑과 같은이 이미지에서 마우스 조작을 수행하는 기능. 정말 진보 된 것은 없지만 필요합니다. 웹에서 사용할 수 있도록 내 앱의 일부 기능이 필요합니다 ...

조언, 트릭, 팁, 성공 사례가있는 경우 ... .NET에서 더러워지기를 정말로 원하지만, 나는 1G 헤드 룸을 가지고 모든 물건을 읽을 수있다.

감사합니다.

+0

기존 응용 프로그램 웹은 기반으로합니까?웹 기반 (즉, 배치)으로 갈 수 있다는 장점이 있지만, 스킬 셋에 더 가깝게 가고 싶을 수 있습니까? – russau

+0

기존 앱이 웹 기반이 아닙니다. 그것은 순수한 Win32 Delphi 응용 프로그램입니다. 저는 기술 (Win32 또는 웹 기반)에 묶여 있지 않습니다. – vIceBerg

+2

영어를 사용하는 사람이 아니기 때문에 나는 그것을 사과합니다. – vIceBerg

답변

5

을 :) 접근 할 방법

; 고객이 최신 .NET Framework 설치에 이의를 제기하지 않는다면 .NET 3.5 SP1 도구 (또는 예상 출시 날짜가 ~ 6 개월 이상인 경우 4.0 프레임 워크)를 사용하는 데 집중해야합니다.

언급 한 결정 요소는 주변 장치 지원입니다. 즉 프린터로 인쇄 할 수 있습니다. 웹 기술은 응용 프로그램을 어느 정도 대체하는 데 적합하지만 주변 장치 지원은 그다지 적합하지 않습니다. 인쇄 문서를 생성하고 프린터에 "페이지 인쇄"를 할 수있는 경우에는 작동하지만 프린터로 낮은 수준의 통신을 수행해야하는 경우에는 리치 클라이언트 응용 프로그램이 여전히 유용합니다.

즉, 리치 클라이언트 애플리케이션은 라인을 흐리게 만들 수 있습니다. ClickOnce 배포는 응용 프로그램의 업데이트 배포를 처리 할 수 ​​있으며 WebServices를 통해 특정 논리를 중앙 집중식으로 관리 할 수 ​​있습니다.

특정 기술의 경우; 그것은 당신이 고객이 무엇을 설치하고 당신의 요구가 무엇인지에 달려 있습니다. WinForms는 아직까지는 공정하게 지원 될 것이지만 WPF는 앞으로 나아갈 경로로 보인다. 마이크로 소프트는 VS2010 및 기타 신제품에서 그 기술이 눈을 사로 잡을뿐만 아니라 심각한 기술로 입증되고 있습니다. WCF는 본질적으로 .NET의 혁명입니다. Microsoft는 웹 서비스를 수행하는 새로운 방법으로 또는 기존의 메시징 기술을 대체하기 위해이를 판매합니다 (사실 더 많은 래퍼). 생산성 향상제.

데이터 레이어 항목 : ORM은 크고 강력하지만 올바르게 작동하려면 지식이 필요합니다. .NET 4.0이 당신을위한 가능한 타겟이라면, 마이크로 소프트의 공식 ORM 인 EF4를 볼 수 있습니다 (현재 버전은 완전히 구워지지 않았습니다). NHibernate는 성숙하고 안정적인 옵션이며 많은 자원을 제공합니다. Typed-DataSets은 상당히 오래된 것으로 점점 더 자주 조회되고 있습니다.

+0

감사. 매우 유용합니다! – vIceBerg

2

정말 조금 대답하기가 너무 모호합니다. "그것은 달려있다".

나는 당신의 응용 프로그램을 현재 Windows 응용 프로그램입니다 걸릴까요? 웹 사이트로 만드는 이유는 무엇입니까? 그렇지 않다면 asp.net을 잊어 버리고 winforms와 WPF를 결정하십시오.

이제 앱이 어디에서 실행되는지 생각해보세요. 자신의 PC 또는 클라이언트에서? 배포 옵션 (os, 무엇이든)에 따라 winforms가 더 많이 지원 될 수 있기 때문에 함께 갈 수 있지만 가능하다면 WPF를 사용하십시오.

좋습니다. 해결되었으므로 데이터베이스로 이동합니다. 너 ORM을 원한다면 (나는해야한다), 나는 LLBLGen을 좋아하지만 돈이 든다. IMHO, 그만한 가치가 있지만 스스로 결정하십시오. 그래서 그 정렬 ...

단위 테스트. 당신은 아마 코뿔소가 필요하지 않을 것입니다, 당신이 쓰지 않는 항목을 조롱하기위한 것이기 때문에,하지만 어쩌면 그렇게 할 수 있습니다. NUnit을 시작하기 만하면됩니다. 진행하면서 테스트 할 대상과 수행하지 않는 대상을 결정하게됩니다. 이 선행 학습에 대해 걱정하지 마십시오. 내가 지금까지 당신이 바탕 화면 (안 웹) 응용 프로그램에 초점을 맞출 것 같은 소리 당신이 현재 구현 세부 사항의 관점에서 제공 한에서

+0

당신의 "asp.net에 대해 잊어 버려라"는 나를 놀라게한다. 90 % 예제/튜토리얼/기사 ASP.NET에 대한 이야기. 당신의 생각에 감사드립니다. – vIceBerg

+0

글쎄, 웹 사이트가 필요 없다면 나는 '잊어 버리라'는 뜻입니다. 거의 모든 프로젝트가 웹 사이트이므로 asp.net은 내가하는 일입니다. –

1

몇 년 전 델파이에서 C#으로 왔습니다. 나는 너의 고통을 느낀다. .NET 프레임 워크는 괴물이며 주위를 배우는 데 잠시 걸립니다. 당신은 당신이 있어야 할 곳입니다.

Winforms 응용 프로그램을 시작해야한다고 생각합니다. WinForms는 데스크톱 응용 프로그램을 작성하기위한 표준 .NET 프레임 워크입니다. Delphi의 디자이너와 매우 흡사합니다. 디자이너 서페이스로 컨트롤을 드래그 앤 드롭하고 속성 및 이벤트를 지정합니다. 성숙한 .NET 기술입니다.

많은 사람들이 데스크톱 개발을 위해 WPF를 향해 당신을 밀고 WPF 응용 프로그램을 작성하고 winforms가 죽었다는 것을 알려줍니다. IMO, WPF 디자인 타임 경험은 VS2008을 짜증나게합니다. VS10에서 모든 것이 개선되었습니다. 우리가 볼거야. 지금 당장 WPF를 디자인하려면 블렌드가 좋습니다.

나는 winforms에 관한 책과 ADO.NET에 관한 책을 집을 것이다. ADO.NET은 Delphi의 표준 데이터 액세스 기능과는 조금 다릅니다. 또한 Winforms는 Delphi보다 훨씬 유연한 데이터 바인딩 기능을 제공합니다. 실제로 .NET에서 무엇이든 바인딩 할 수 있습니다. Delphi 개발자에게는 좋은 변화입니다. 표준 보고서 컨트롤을 사용하여 보고서를 작성합니다.

일단 WinForms에 익숙해지면 ASP.NET, WPF, WCF 또는 원하는 곳으로 이동할 것입니다.

행운을 빌어 요! 인프라 및 모델에

+0

감사합니다. 부수적으로, 프레임 워크의 우수성에도 불구하고 델파이에서 C#으로 전환하는 것이 가장 어려운 것은 무엇입니까? – vIceBerg

+0

WPF의 디자인 타임 경험에 대한 카운터 포인트로, 의도적으로 가난합니다 (어느 정도까지). 드래그 앤 드롭 디자이너는 생성하는 실제 코드에 광택을 적용하는 경향이 있으며 이상한 부작용이있을 수 있습니다. XAML 편집기는 intellisense와 그것이 나타내는 UI의 실시간보기를 제공합니다.이 GUI는 GUI에서 드래그하는 것만큼 빠르게 XAML을 작성합니다. 또한 WinForm 디자이너는 UI와 비즈니스 로직 (일반적으로 스노우 볼을 UI 클래스가 내장 된 신 클래스로 묶는 것을 매우 밀접하게 연관시킵니다. 큰 프로젝트 나 수명이 긴 프로젝트에는 좋지 않습니다. – STW

+0

@vIceBerg - 보자. 멀티 캐스트 대리자 (이벤트 처리기), 연결이 끊긴 데이터 (ADO.NET), 가비지 수집, 제네릭, 익명 메서드 및 LINQ가 있습니다. 이 모든 것이 델포이 녀석에게 새로운 영토입니다. C#에 관한 Jon Skeet의 저서를 통해 C#의 진화와 언어의 고급 기능에 익숙해 질 수 있습니다. 대부분 .NET이 더 쉽습니다. 우리가해야했던 오래된 API 호출은 .NET 래퍼 클래스에 의해 95 %의 시간으로 대체되었습니다. F1 키를 친구로 사귀십시오. VS2008 도움말은 우리가 D7에서했던 것보다 훨씬 뛰어납니다. – Steve

2

집중, 나는 현재 사용하고 함께 갈 것입니다 :

  • IOC의 - 나는 유니티를 사용하고 훌륭한 지금까지
  • ORM 작품 - nHibernate 수에 대한 nHibernate 수 + 유창함 nHibernate 수 + LINQ를
  • 접착제 - 당신은 내가 asp.net의 MVC와 함께 갈 것 웹 응용 프로그램을 원하는 경우 함께

물건을 넣어 자신의 접착제를 작성합니다. 자바 스크립트 없이도 모든 작업을 수행하고 jQuery와 자바 스크립트를 추가하여 더 나은 경험을 제공 할 수 있지만 필요하지는 않습니다.

데스크톱 응용 프로그램을 원한다면 무엇을 선택할 지 모르겠다. 그래서 다른 사람들이 그에 대한 조언을 할 수있게 할 것이다.

+0

당신은 인프라 측면에 들어가는 유일한 사람입니다. 고마워. – vIceBerg

관련 문제