none
Java學習要有的30個目標,請高手改成C# RRS feed

  • 一般討論


  • 看到此篇文章,
    http://tech.c114.net/501/a249241.html
    就想把Java/Sun的技術改成C#/Microsoft,
    那麼相對應的技術有哪些?

    底下隨意查的,
    再請高手補充與校正.(打?)
    多謝.


    1.你需要精通面向對象分析與設計(OOA/OOD)、涉及模式(GOF,J2EE DP)以及綜合模式。
     你應該十分了解UML,尤其是class,object,interaction以及state diagrams。

    [.Net DP]
    ?

    [模式]
    ASP .NET Scriptlet Pattern
    http://wiki.dabutek.com/(S(t0suon450f4x105503yfr1e0))/ScriptletPattern.ashx

    Coding Patterns
    http://www.codeproject.com/KB/architecture/codedompatterns.aspx

    C# Design Patterns
    http://www.java2s.com/Tutorial/CSharp/0500__Design-Patterns/Catalog0500__Design-Patterns.htm
    http://www.java2s.com/Code/CSharp/Design-Patterns/CatalogDesign-Patterns.htm



    2.你需要學習JAVA語言的基礎知識以及它的核心類庫
     (
      collections,
      serialization,
      streams,
      networking,
      multithreading,
      reflection,
      event,
      handling,
      NIO,
      localization,
      以及其他
     )。

    [collections]
    http://www.java2s.com/Code/CSharp/Collections-Data-Structure/CatalogCollections-Data-Structure.htm

    [serialization]]
    http://www.java2s.com/Code/CSharp/File-Stream/Serialization.htm

    [streams]
    http://www.java2s.com/Code/CSharp/File-Stream/CatalogFile-Stream.htm

    [networking]
    http://www.java2s.com/Tutorial/CSharp/0580__Network/Catalog0580__Network.htm

    [multithreading]
    http://www.java2s.com/Code/CSharp/Thread/CatalogThread.htm

    [reflection]
    http://www.java2s.com/Code/CSharp/Reflection/CatalogReflection.htm

    [event]
    http://www.java2s.com/Code/CSharp/Event/CatalogEvent.htm

    [handling]
    http://www.java2s.com/Code/CSharp/Language-Basics/Event-Handler.htm

    [NIO]
    http://msdn.microsoft.com/zh-tw/library/system.net.networkinformation.networkinterface(VS.85).aspx

    [localization]
    http://www.java2s.com/Tutorial/CSharp/0440__I18N-Internationalization/Catalog0440__I18N-Internationalization.htm

    [核心類庫]
    Base Class Library (BCL)
    Microsoft Foundation Classes (MFC)
    Active Template Library (ATL)
    Windows Template Library (WTL)



    3.你應該了解JVM,classloaders,classreflect,以及垃圾回收的基本工作機制等。
     你應該有能力反編譯一個類文件並且明白一些基本的彙編指令。

    [VM]
    CIL
    http://en.wikipedia.org/wiki/Common_Language_Runtime

    [垃圾回收的基本工作機制]
    http://msdn.microsoft.com/zh-tw/library/dd229208.aspx

    [反編譯]
    NET的反組譯程式 Reflector
    http://catchtest.pixnet.net/blog/post/23276469
    MSIL 反組譯工具 (Ildasm.exe)
    http://msdn.microsoft.com/zh-tw/library/f7dy01k1(VS.80).aspx



    4.如果你將要寫客戶端程式,你需要學習WEB的小應用程式(applet),
     必需掌握GUI設計的思想和方法,以及桌面程式的SWING,AWT,SWT。
     你還應該對UI部件的JAVA BEAN組件模式有所了解。
     JAVA BEANS也被應用在JSP中以把業務邏輯從表現層中分離出來。

    [WEB的小應用程式]
    Active X

    [GUI設計]
    Windows Form

    [BEANS]
    Windows DNA?
    http://zh.wikipedia.org/zh-tw/Windows_DNA
    前端使用者介面層
     Internet Explorer:Web 的前端介面,使用ASP、HTML、DHTML與JavaScript等程式與標記語言。
     Windows應用程式:Windows 前端介面,使用 Visual Basic、Win32 API 或 MFC 等開發。
     Microsoft Office應用程式:與 Windows 前端介面相同,但可利用 Add-ins(增益集)來連接後端。
    應用程式伺服器層
     COM+:Windows 2000 中,MTS 的強化服務,作為應用程式元件的主行程。
     MTS:Windows NT 中,作為應用程式元件主行程之應用程式伺服器。
     MSMQ:處理大量資料之佇列執行之中介伺服器。
     DCOM:前端應用程式與應用程式伺服器間的通訊方法。
    資料存取層
     SQL Server:資料儲存中心。



    5.你需要學習java數據庫技術,如JDBCAPI並且會使用至少一種persistence/ORM構架,
     例如Hibernate,JDO, CocoBase,Top Link,Inside Liberator(國產JDO紅工廠軟體)或者iBatis。

    ODBC API?

    [ORM]
    NHibernate
    iBatis .Net
    Apache OpenJPA

    ActiveRecord pattern
    http://www.castleproject.org/activerecord/



    6.你還應該了解對象關係的阻抗失配的含義,
     以及它是如何影響業務對象的與關係型數據庫的交互,和它的運行結果,還需要掌握不同的數據庫產品運用,
     比如:oracle,mysql,mssqlserver。



    7.你需要學習JAVA的沙盒安全模式
     (
      classloaders,
      bytecodeverification,
      managers,
      policyandpermissions,
      codesigning,
      digitalsignatures,
      cryptography,
      certification,
      Kerberos,
      以及其他
     )
     還有不同的安全/認證 API,
     例如JAAS(Java Authenticationand Authorization Service),
         JCE(Java Cryptography Extension),
         JSSE(Java Secure Socket Extension),以及
         JGSS(Java General Security Service)。

    [沙盒安全模式]
    VBA 巨集?

    [安全/認證 API]
    認證?
    憑証?
    CardSpace?



    8.你需要學習Servlets,JSP,以及JSTL(Standard Tag Libraries)和可以選擇的第三方Tag Libraries。

    [Tag Libraries]
    ?



    9.你需要熟悉主流的網頁框架,例如JSF,Struts,Tapestry,Cocoon,WebWork,以及他們下面的涉及模式,如MVC/MODEL2。

    [網頁框架]
    ?

    [模式]
    ?



    10.你需要學習如何使用及管理WEB伺服器,例如tomcat,resin,Jrun,並且知道如何在其基礎上擴展和維護WEB程式。

    [WEB伺服器]
    IIS



    11.你需要學習分佈式對象以及遠程API,例如RMI和RMI/IIOP。

    [遠程API]
    DCOM
    Net Remoting & XML WebServices
    WCF



    12.你需要掌握各種流行中間件技術標準和與java結合實現,比如Tuxedo、CROBA,當然也包括java EE本身。

    [中間件技術]
    ?



    13.你需要學習最少一種的XMLAPI,例如
      JAXP(Java API for XML Processing),
      JDOM(Java for XML Document Object Model),
      DOM4J,或
      JAXR(Java API for XML Registries)。

    [XMLAPI]
    http://www.java2s.com/Code/CSharp/XML/CatalogXML.htm
    http://www.java2s.com/Code/CSharp/XML-LINQ/CatalogXML-LINQ.htm



    14.你應該學習如何利用JAVA API和工具來構建Web Service。
      例如JAX-RPC(Java API for XML/RPC),
          SAAJ(SOAP with Attachments API for Java),
          JAXB(Java Architecture for XML Binding),
          JAXM(Java API for XML Messaging),
          JAXR(Java API for XML Registries),或者
          JWSDP(Java Web Services Developer Pack)。

    [C#來構建Web Service]
    http://msdn.microsoft.com/zh-tw/library/aa290754(VS.71).aspx



    15.你需要學習一門輕量級應用程式框架,例如Spring,PicoContainer,Avalon,
      以及它們的IoC/DI風格(setter,constructor,interfaceinjection)。

    [輕量級應用程式框架]
    ?

    [Inversion of Control Dependency Injection]
    Autofac
    Castle
    ObjectBuilder
    Spring.net
    StructureMap
    Winter.NET



    16.你需要熟悉不同的J2EE技術,例如
      JNDI(Java Namingand Directory Interface),
      JMS(Java Message Service),
      JTA/JTS(Java Transaction API/Java Transaction Service),
      JMX(Java Management eXtensions),以及
      JavaMail。

    [Namingand Directory]
    ?

    [Message Service]
    ?

    [Transaction API]
    ?

    [Mail]
    using System.Web.Mail;
    http://www.java2s.com/Code/CSharp/Network/Mail.htm



    17.你需要學習企業級JavaBeans(EJB)以及它們的不同組件模式:
      Stateless/Stateful Session Beans,
      Entity Beans(包含Bean-Managed Persistence[BMP]或者Container-Managed Persistence[CMP]和它的EJB-QL),或者
      Message-Driven Beans(MDB)。

    ?



    18.你需要學習如何管理與配置一個J2EE應用程式伺服器,如WebLogic,JBoss等,
      並且利用它的附加服務,例如簇類,連接池以及分佈式處理支援。
      你還需要了解如何在它上面封裝和配置應用程式並且能夠監控、調整它的性能。

    [應用程式伺服器]
    Biztalk?



    19.你需要熟悉面向方面的程式設計以及面向屬性的程式設計(這兩個都被很容易混淆的縮寫為AOP),
      以及他們的主流JAVA規格和執行。例如AspectJ和AspectWerkz。

    [AOP]
    DotNetAOP

    AspectSharp
    http://aspectsharp.sourceforge.net/

    AOP .Net
    http://sourceforge.net/projects/aopnet/



    20.你需要熟悉對不同有用的API和framework等來為你服務。
      例如Log4J(logging/tracing),
          Quartz(scheduling),
          JGroups(network group communication),
          JCache(distributed caching),
          Lucene(full-text search),
          Jakarta Commons等等。

    [logging/tracing的API和framework]
    ?

    [scheduling的API和framework]
    ?

    [network group communication的API和framework]
    ?

    [distributed caching的API和framework]
    ?

    [full-text search的API和framework]
    Index Server?



    21.如果你將要對接或者正和舊的系統或者本地平臺,
      你需要學習JNI(Java Native Interface) and JCA(Java Connector Architecture)。

    [Native Interface]
    P/Invoke
    http://en.wikipedia.org/wiki/Platform_Invocation_Services

    [Connector Architecture]
    WF(Windows Workflow Foundation)?
    http://zh.wikipedia.org/zh-tw/Windows_Workflow_Foundation

    22.你需要熟悉JINI技術以及與它相關的分佈式系統,比如掌握CROBA。

    [分佈式系統]
    DCOM
    Net



    23.你需要Java Community Process(JCP)以及他的不同Java Specification Requests(JSRs),
      例如Portlets(168),JOLAP(69),DataMiningAPI(73),等等。

    [Community Process]
    ?

    [Specification Requests]
    CLS?



    24.你應該熟練掌握一種JAVA IDE例如sunOne,netBeans,IntelliJIDEA或者Eclipse。
      (有些人更喜歡VI或EMACS來編寫文件。隨便你用什麼了)

    [IDE]
    Visual Studio

    UEStudio
    http://www.softking.com.tw/soft/clickcount.asp?fid3=23902
    http://www.ultraedit.com/
    http://www.ithome.com.tw/itadm/article.php?c=53702&s=2

    CSharp Studio

    MonoDevelop

    SharpDevelop



    25.JAVA(精確的說是有些配置)是冗長的,它需要很多的人工代碼(例如EJB),所以你需要熟悉代碼生成工具,例如XDoclet。

    [代碼生成工具]
    ?



    26.你需要熟悉一種單元測試體系(JNunit),並且學習不同的生成、部署工具(Ant,Maven)。

    [單元測試]
    NUnit

    [部署工具]
    ClickOnce
    Windows Installer
    MSDeploy



    27.你需要熟悉一些在JAVA開發中經常用到的軟體工程過程。例如RUP(Rational Unified Process) and Agile methodologies。

    [.Net開發中經常用到的軟體工程過程]
    ?



    28.你需要能夠深入了解加熟練操作和配置不同的作業系統,比如GNU/linux,sun solaris,mac OS等,做為跨平臺軟體的開發者。

    [跨平臺軟體]
    Mono
    http://www.mono-project.com/Main_Page



    29.你還需要緊跟java發展的步伐,比如現在可以深入的學習java ME,以及各種java新規範,技術的運用,如新起的web富客戶端技術。

    [Mobile]
    Microsoft .Net Compact Framework
    Windows Mobile API

    [新起的web富客戶端技術]
    SOAP?



    30.你必需要對opensource有所了解,因為至少java的很多技術直接是靠開源來驅動發展的,如java 3D技術。

    [opensource]
    http://www.codeproject.com/
    http://www.codeplex.com/

    [2D/3D技術]
    GDI
    GDI+
    XNA
    DirectX
    OpenGL
    http://www.java2s.com/Tutorial/CSharp/0480__2D/Catalog0480__2D.htm
    2010年2月25日 上午 02:24

所有回覆

  • 請自行一個一個上網查,Google 或點部落有很多東西可以給你看。
    而不是叫別人幫你做功課,就算不是功課,這也是入門者應該要自己做的吧?
    連查資料都懶的話,那還是不要進這行好了,在這行,查資料的功能是基本中的基本。
    初學不是問題,但用不正確的態度來問問題,那就是很大的問題。
    請不要藉新手之名行小白之實,否則只會讓更多無辜的新手得不到幫助而已。
    如果不知道什麼是小白,請參閱:何謂小白
    2010年2月25日 上午 02:42
    版主
  • 這本書還不錯:
    C# for Java Developers(http://www.e-typedesign.co.uk/mspress/taiwan/books/book20764.htm)
    2010年2月25日 下午 12:12