作者x2012tw (小帅)
看板C_Sharp
标题[问题] Java学习要有的30个目标,请高手改成C#
时间Wed Feb 24 07:57:17 2010
看到此篇文章,
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)