2009-11-19 3 views
0

약 6 년 동안 Java 개발을 많이 해오 진 않았다. C# 응용 프로그램을 Java로 포팅하여 Windows와 회사의 표준 풍미에서 실행할 수 있도록해야 할 필요성이 있습니다 (논의 할 수없는 이유로). 내가 알고 싶은 것은, 그때 이래로 Java에 대한 변화를 닦아내는 데 가장 좋은 독서물이 무엇인지, 그래서 가능한 한 매끄럽게 포트를 만들 수 있다는 것입니다.자바 개발로 돌아 가기 읽기?

저는 현재 .NET Framework 3.5에서 실행 중이며 lambdas, 확장 메서드 및 LINQ를 사용하고 있습니다. 이것은 웹 서비스 호출이나 데이터베이스 호출이없는 클라이언트 측 응용 프로그램입니다. 다른 컴퓨터와 통신하기 위해 다양한 네트워크 프로토콜을 사용하고 있지만, 현재 사용중인 구성 요소 (다트 텔넷, SharpSSH 등)를 대체하기 위해 이미 구성 요소를 조사하고 있습니다.

주로 변경된 내용을 찾고 있습니다. 그 이후 자바 언어와 BCL. 난 제네릭, foreach 루프를 기억하지 않으며, 권투 및 unboxing는 피타되었습니다. 확장 메서드, lambdas 및 LINQ에 해당하는 항목이 있습니까?

+7

모노를 사용할 수 있습니까? 소스에 약간의 수정이 필요할 수도 있지만 모든 것을 Java로 포팅하는 것보다 쉽습니다. – jheddings

+0

@ yheddings : 내가 토론 할 수있는 이유 중 일부. 모노를 사용해 보았지만 짧은 이야기를하기 위해 애플리케이션의 여러 필수 구성 요소에는 모노로 변환 할 수없는 P/Invoke 호출이 필요합니다. – jasonh

답변

8

Effective Java, Second Edition이 아마도 시작 텍스트 일 ​​것입니다. 새로운 언어 기능과이를 사용하는 모범 사례에 대해 설명합니다. 그 중 일부는 아마 익숙한 것이지만, 6 년 후에는 원기를 회복하는 것이 나쁜 생각이 아닙니다.

새로운 기능에 대한 다양한 Sun 자습서 또한 새로운 기능의 좋은 시작입니다.

+0

효과적인 Java의 경우 +1 - 2-3 년 후 최대 속도를 얻으려면 올해 초 사용했습니다. – davek

2

최종 질문에 대답하려면 확장 메서드, lambdas 또는 LINQ에 해당하는 요소가 없습니다.

Java 5의 주석 및 제네릭 도입 이후 Java 언어 개발이 매우 느리게 진행되어 왔으며 대부분의 흥미로운 Java 언어 작업이 Scala과 같은 JVM 언어에서 발생했습니다. JVM을 사용해야하는 경우 스칼라와 같은 고급 언어가 사용자의 요구에 맞을 수 있습니다 (Scala는 기존 Java 라이브러리와 통합됩니다)

앞으로 제안 된 언어 개발의 집합 인 Project Coin을 확인하십시오. Java 7

+0

Hibernate/JPA가 LINQ와 유사한 기능을 제공하지 않습니까? –

+0

콜렉션 등에서 유창한 쿼리 메커니즘을 제공한다고 생각하지 않습니다. –

0

Java에서 응용 프로그램을 다시 작성하는 대신 MSIL을 Java 바이트 코드로 다시 컴파일하는 Mainsofts 제품을 고려할 수 있습니다.

http://dev.mainsoft.com/Default.aspx?tabid=166

+0

감사하지만, 타사 컨트롤의 P/Invoke 때문에 작동하지 않습니다. – jasonh