[問題] Java學習要有的30個目標,請高手改成C#

看板C_Sharp作者 (小帥)時間16年前 (2010/02/24 07:57), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
看到此篇文章, 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 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.121.217.98 ※ 編輯: x2012tw 來自: 122.121.217.98 (02/24 08:15)
文章代碼(AID): #1BX6jXim (C_Sharp)
文章代碼(AID): #1BX6jXim (C_Sharp)