1. JAVA: Java là một mã nguồn mở do đó ta không phải lo lắng về giấy phép. Java là dễ sử dụng ngôn ngữ lập trình. Nó rất dễ dàng để viết, biên dịch và gỡ lỗi cho các ngôn ngữ lập trình khác. Java là hướng đối tượng vì Java là tập trung vào việc tạo ra các đối tượng, thao tác, và làm cho các đối tượng làm việc cùng nhau. .Nó có thể tạo ra các chương trình mô đun và sử dụng lại code. Một trong những lợi ích đáng kể nhất của Java là khả năng di chuyển dễ dàng từ một trong những hệ thống khác. Java có khả năng chạy các chương trình tương tự trên nhiều hệ thống khác nhau là rất quan trọng cho phần mềm World Wide Web. Java thành công lúc này bằng được nền độc lập ở cả hai nguồn và mức nhị phân. Viết chương trình mạng trong Java này cũng dễ như việc gửi và nhận dữ liệu đến và từ một file. JAVA là rất hữu ích cho việc tạo ứng dụng web động. JAVA lập trình cho phép bảo mật và hiệu suất cao phát triển trên nhiều nền tảng. Outsource Java tại Rightway giải pháp, giám định trong JAVAJ2EE phát triển với các lập trình viên JAVA chuyên nghiệp.2. .NET Hiện giờ trên thế giới mà ta muốn thực hiện trên nền Windows, tỷ như data access, windowing, nối mạng hay ngay cả mọi công dụng đa dạng của Win32 API (Application Programming Interface) đều có thể vận dụng dễ dàng qua kiểu mẫu đối tượng (objects) rất đơn giản (simple object model). Ngôn ngữ lập trình VB.NET đã được hiện đại hóa, bao gồm nhiều classes và mọi đặc trưng (features) của 1 ngôn ngữ lập trình kiểu OOP, không thua kém gì C++, J++ hay C, ...
Shuffle IsasIV Developed by • Bùi Phan Anh Vũ: • Huỳnh Thủy Ngân: • Huỳnh Minh Tính : NIIT Trang1 SO SÁNH JAVA VÀ .NET Shuffle IsasIV Trang2 SO SÁNH JAVA VÀ .NET Mã Số Lớp: B100052 Ngày Bắt Đầu:05/11/2010 Ngày Kết Thúc: 19/11/2010 Giảng Viên Hướng Dẫn: Nhóm Thực Hiện: Bùi Phan Anh Vũ Shuffle IsasIV Trang3 NIIT CHỨNG NHẬN Đây là chứng nhận báo cáo về đề tài “Java và .Net” do Bùi Phan Anh Vũ, Huỳnh Thủy Ngân và Huỳnh Minh Tính thực hiện qua các khóa học ở học viện NIIT. Giảng Viên Hướng Dẫn: Phạm Tiến Phúc Shuffle IsasIV Trang4 JAVA VÀ .NET A. Tính Linh Hoạt Và Khả Năng Phát Triển I. So Sánh Tính Linh Hoạt Của Java và .NET: 1. JAVA: - Java là một mã nguồn mở do đó ta không phải lo lắng về giấy phép. - Java là dễ sử dụng ngôn ngữ lập trình. - Nó rất dễ dàng để viết, biên dịch và gỡ lỗi cho các ngôn ngữ lập trình khác. - Java là hướng đối tượng vì Java là tập trung vào việc tạo ra các đối tượng, thao tác, và làm cho các đối tượng làm việc cùng nhau. Nó có thể tạo ra các chương trình mô đun và sử dụng lại code. - Một trong những lợi ích đáng kể nhất của Java là khả năng di chuyển dễ dàng từ một trong những hệ thống khác. - Java có khả năng chạy các chương trình tương tự trên nhiều hệ thống khác nhau là rất quan trọng cho phần mềm World Wide Web. - Java thành công lúc này bằng được nền độc lập ở cả hai nguồn và mức nhị phân. - Viết chương trình mạng trong Java này cũng dễ như việc gửi và nhận dữ liệu đến và từ một file. JAVA là rất hữu ích cho việc tạo ứng dụng web động. JAVA lập trình cho phép bảo mật và hiệu suất cao phát triển trên nhiều nền tảng. - Outsource Java tại Rightway giải pháp, giám định trong JAVA/J2EE phát triển với các lập trình viên JAVA chuyên nghiệp. 2. .NET - Hiện giờ trên thế giới mà ta muốn thực hiện trên nền Windows, tỷ như data access, windowing, nối mạng hay ngay cả mọi công dụng đa dạng của Win32 API (Application Programming Interface) đều có thể vận dụng dễ dàng qua kiểu mẫu đối tượng (objects) rất đơn giản (simple object model). - Ngôn ngữ lập trình VB.NET đã được hiện đại hóa, bao gồm nhiều classes và mọi đặc trưng (features) của 1 ngôn ngữ lập trình kiểu OOP, không thua kém gì C++, J++ hay C#, Shuffle IsasIV Trang5 JAVA VÀ .NET - Việc quản lý memory được nâng cấp và tinh vi hơn nhằm bảo đảm các ứng dụng bị té hay cư xử tệ bạt (badly behaved component or application) không ảnh hưỡng gì đến các ứng dụng khác. - ASP.NET được dùng để thay thế ASP, đồng thời cung cấp các trang Web được biên dịch giúp tiến trình xử lý các yêu cầu từ Client browser hiệu quả hơn. Hơn nữa, còn bao gồm nhiều thành phần soạn sẵn (pre-written components) gọi là Server Control dùng trong các HTML Form và giao diện (user interface) làm việc phát triển mạng thêm dễ dàng và đầy hứng thú. - Các ngôn ngữ lập trình được phác thảo để làm việc gần nhau hơn, do đó nguồn mã của VB.NET, C++, C#, có thể sử dụng trộn lẫn với nhau rất thoải mái, tỷ như ta có thể viết mã cho 1 class với VB.NET rồi kế thừa 1 class khác mà mã là C# hay C++, sau đó vẫn 'debug' ngon lành giữa các ngôn ngữ lập trình khác nhau đó. - Thành phần (components) được gói kỹ trong 1 đơn vị gọi là assembly có thể tự xác minh lý lịch và công dụng làm việc bố trí hay triển khai rất dễ dàng. II. Khả Năng Phát Triền Của Java Và .Net: 1. JAVA: -Sự tích hợp chặt chẽ giữa các công cụ miễn phí tạo thành bộ khởi đầu các ứng dụng Java của bạn: Eclipse, DB2 Express-C 9.5, và WebSphere Application Server Community Edition 2.0 (gọi tắt là Máy chủ ứng dụng) đã đáp ứng tốt các nhu cầu của các nhà phát triển ứng dụng Java EE và các dịch vụ web. Đi đôi với hướng dẫn này là hướng dẫn, Khởi đầu các ứng dụng Java của bạn, Phần 1: Phần mềm miễn phí, phát triển nhanh chóng, trình bày về cách các công cụ này làm việc cùng nhau như thế nào để phát triển phần mềm Java EE. -Ngày càng có nhiều nhà phát triển Java đang thử nghiệm các giao diện người dùng trên nền web tương tác cao, bao gồm các lựa chọn mà không đòi hỏi phải sử dụng một thùng chứa Java EE truyền thống. Những khám phá như vậy thường bắt bạn phải học thêm một ngôn ngữ lập trình chưa qua kiểm chứng, phải làm việc với công cụ có mức chất lượng beta, và đặt cược vào công nghệ triển khai chưa qua thử thách với thời gian. Shuffle IsasIV Trang6 JAVA VÀ .NET -Thật bất ngờ cho bạn khi biết được rằng bộ công cụ mạnh, làm ra sản phẩm thực sự, do IBM hậu thuẫn miễn phí mà bạn đang dùng cho các nhiệm vụ phát triển Java EE cũng có thể là người bạn tốt nhất của bạn trong việc khám phá lĩnh vực phát triển giao diện người dùng thay thế. Tin tức tuyệt vời nhất là ở chỗ tất cả các mã chương trình của bạn — gọn nhẹ hay truyền thống — có thể tận dụng ưu thế của tập hợp đặc tính dễ sử dụng, phong phú của Eclipse, sự hoàn thiện và mạnh mẽ của DB2 Express-C, và hỗ trợ triển khai cấp thế giới của Máy chủ ứng dụng. -Hướng dẫn này cho bạn thấy làm thế nào để di chuyển một ứng dụng từ một thiết kế truyền thống tới một thiết kế dựa trên công nghệ JavaScript không đồng bộ (Asynchronous JavaScript) và XML (Ajax) — tất cả nằm trong môi trường thân thiện và quen thuộc của bộ khởi đầu ứng dụng Java của bạn. -Để khởi đầu các ứng dụng Java của bạn, IBM đã gộp một tổ hợp mạnh các thành phần phần mềm có sẵn miễn phí với nhau để truy cập dữ liệu, phát triển và triển khai ứng dụng: • Máy chủ cơ sở dữ liệu DB2 Express-C 9.5 • Máy chủ ứng dụng WebSphere phiên bản cộng đồng 2.0 • Môi trường phát triển tích hợp Eclipse (Eclipse IDE) -Bạn không bị buộc phải sử dụng những gói này trong tổ hợp như trên; mỗi gói đều làm việc được với nhiều thành phần dựa trên các chuẩn mở khác nhau. Bạn có thể sử dụng Eclipse với các máy chủ ứng dụng khác (kể cả không phải Java) và các cơ sở dữ liệu khác. Máy chủ ứng dụng không đòi hỏi DB2 Express-C 9.5 hay Eclipse. Và DB2 Express-C 9.5 có thể phù hợp với các môi trường phát triển và triển khai khác với Eclipse và Máy chủ ứng dụng. Nhưng, rồi bạn sẽ hiểu đầy đủ từ hướng dẫn này, khi sử dụng bộ tích hợp chặt chẽ như một tổng thể nói trên, bạn sẽ có rất nhiều thuận lợi. -Thông tin về hướng dẫn này Shuffle IsasIV Trang7 JAVA VÀ .NET -Bạn sẽ bắt đầu hướng dẫn này bằng cách tạo ra một bảng thông tin nhân viên, sử dụng công nghệ JSP và servlet tiêu chuẩn. Bạn sẽ làm tất cả các công việc phát triển và thử nghiệm bằng cách sử dụng bộ khởi đầu các ứng dụng Java. Bạn sẽ thiết kế các ứng dụng trong Eclipse và sau đó triển khai và thử nghiệm nó trên Máy chủ ứng dụng. Các ứng dụng sẽ tìm về và hiển thị thông tin nhân viên, bao gồm cả hình ảnh, từ một cơ sở dữ liệu DB2 Express-C 9.5 theo chế độ tương tác. -Sau đó, hướng dẫn này thảo luận về một số hạn chế trong thiết kế ứng dụng JSP và chỉ ra cách làm thế nào để một giải pháp dựa trên Ajax nhẹ có thể giúp để vượt qua các hạn chế này. Hướng dẫn này cũng giới thiệu các khái niệm Ajax cơ bản và một bộ dụng cụ Java phổ biến có tên là Web trực tiếp từ xa (Direct Web Remoting - DWR) (xem Tài nguyên). Bạn sẽ chuyển đổi ứng dụng sang một thiết kế nhẹ. Các ứng dụng được thiết kế lại nằm trong một trang HTML, lưu trú trên Máy chủ ứng dụng hoạt động như một máy chủ Web đơn giản, truy cập trực tiếp thông tin cơ sở dữ liệu DB2 Express C sử dụng Ajax và tuần tự hóa ký pháp đối tượng JavaScript (JavaScript Object Notation - JSON). 2 .NET - Cần nhắc lại là Java là một ngôn ngữ lập trình tân tiến, được thiết kế ngay từ đầu để dùng cho Internet, hỗ trợ Unicode, với nguyên tắc "Write Once, Run Everywhere". Java đến từ C++, nhưng đơn giản hơn, nhất là không có pointers. Nó được compiled ra "byte code" để có thể chạy trên bất cứ computer nào hỗ trợ "Java Virtual Machine", một dạng code intepreter. Do đó nó là platform independent, lôi cuốn những tổ chức và cá nhân ghét Microsoft. Trên thực tế, Java không thích hợp cho desktop application và Java Applet bị coi là quá chậm khi chạy trong WebBrowsers. Dầu vậy, vì Microsoft không cung cấp phương tiện hoàn hảo cho Web Development nên Java đã chiếm một vị thế vững vàng trong Enterprise/E- Commerce WebDevelopment. Shuffle IsasIV Trang8 JAVA VÀ .NET -ASP là một giải pháp tạm thời của Microsoft cho WebServer Application nên nó có nhiều khuyết điểm. -Dù Microsoft không nhìn nhận, nhưng C# là hậu tự của Java, tức là nó ngồi trên vai của người khổng lồ Java, cũng giống như trước đây Java ngồi trên vai người khổng lồ C++ . Nhớ là Java chào đời năm 1995, còn C# được thiết kế năm 1998. -C# giữ tất cả các ưu điểm của Java và thêm nhiều sáng kiến như: a. Dùng Common Language Runtime (CLR) để hỗ trợ nhiều ngôn ngữ lập trình (cho phép cross-language inheritance), có Just-In-Time compiler, garbage collector (automatic memory management) và Security check. Framework của CLR cung cấp đầy đủ mọi Classes ta cần từ Thread, Stream, Serialization, Remoting cho đến Encryption. b. Trong C# mọi data đều là Object, khoảng cách giữa value type và reference type được nối lại. Properties, Methods và Events là căn bản, tức là chúng được Framework hỗ trợ tự nhiên. Thí dụ như ta có thể viết o.Value++ thay vì o.SetValue(o.GetValue()+1) . c. C# dùng "Attributes" để dặn compiler chứa các tin tức về components mà lúc run-time CLR đọc được. d. Webservices rất đơn giản và hiệu năng. e. Hỗ trợ XML tuyệt đối. Nói chung cái gì Java làm hay thì C# làm hay hơn, thí dụ như Event Handling và Remoting. Shuffle IsasIV Trang9 JAVA VÀ .NET * Chiến Lược -Trong khi Sun phát minh ra Java vì sự tình cờ thì tạo ra .NET, trong đó có C#, là cả một chiến lược của Microsoft. Trong tương lai tất cả applications của Microsoft đều được ported qua .NET. Mới đây Microsoft release 6 CDs cho 6800 IT professionals ở một week-long conference. Các CDs nầy chứa Microsoft XML- based blueprint - software for .NET Framework, VisualStudio.NET, technology preview for .NET Alerts, .NET Speech và Commerce Server 2002, software development kits cho .NET My Services và .NET Compact Framework. Lúc ấy, Microsoft cũng phát hành Microsoft XML Core Services (MSXML 4.0) và SQLXML 2.0 (một upgrade của SQL Server 2000). -Sự lấn áp của Java đối với Microsoft VB6/VC++/ASP trong mấy năm trước có lẽ cũng giống như Netscape đối với Internet Explorer. Theo thống kê Microsoft chiếm 42% Server Market (và đang tăng lên) với trên 90% desktop market. Nếu không còn nhiều Platforms trong Market thì đặc tính Platform Independence không còn quan trọng nữa. -Ngoài ra, .NET Framework với CLR powerful hơn JVM nhiều. Và ngay cả đặc tính "Write Once, Run Everywhere", thật ra chỉ là lý thuyết nên nhiều khi người ta vẫn phải test JVM mới với Java program của mình, nên có câu "Write Once, Debug EveryWhere". -Ta phải nhớ rằng Bill Gates xuất thân là một programmer nên ông ta hiểu programmer hơn ai hết. Viển tượng của Bill Gates khủng khiếp và ông dám nói, dám làm. -Một khi đã nhất quyết rồi thì dù thất bại bao nhiêu lần, rốt cuộc ông ta cũng phải thắng. Như MSWord thắng WordPerfect, MSWindows thắng McIntosh, VisualStudio thắng Borland, WindowsNT thắng Unix, IE thắng Netscape, ngay cả vụ kiện AntiTrust của 18 tiểu bang ở Mỹ rốt cuộc không ai làm gì được. Shuffle IsasIV Trang10 JAVA VÀ .NET III. So sánh Java Và .Net - Java cho ta một tầm nhìn về công nghệ, .NET chỉ đem lại cho ta một tầm nhìn về công cụ. - Java đại diện cho mã nguồn mở, .NET đại diện cho mã nguồn gần như không bao giờ mở. - Java làm viêc với nhiều framework, .NET gần như chỉ thích nghi tốt nhất với 1 framework là chính nó. - Cùng 1 vấn đề Java có thể lựa chọn nhiều giải pháp (từ commerce đến opensource) WebLogic hay JBoss đều vô tư , .NET gần như chỉ có thể chọn 1 giải pháp là commerce, thậm chí giải pháp đó còn phải có cái thêm cái đóng dấu M$ mới có thể hoạt động - IDE cho Java có thể lựa chọn thoải mái từ opensource (eclipse, netbean, ) đến commerce (WebSphere, IntelliJ IDEA, Jbuilder, ) , IDE cho .NET chỉ có thể là VS.NET, hoặc Borland Developer (cũng là money nốt). - Java run anywhere từ unix, linux, mac, windows .NET chỉ có thể làm bạn với windows - Java giúp người mới học IT sử dụng tốt keyboard, .NET lại giúp họ thành thạo với mouse. - Ở thời đại nông nghiệp "tư liệu sản xuất" là đất đai, công cụ lao động là "cái cày, con Sửu" thời đại thông tin, Java cho ta "đất đai màu mỡ" .NET cho ta "con Sửu khỏe, cái cày to". - Java chú trọng tính ổn định, bảo mật .NET chú trọng sự thoải mái và tốc độ. [...]... định dạng hay trang web và các đốI tượng khác - Object Browser: thư viện tên miền và lớp trình duyệt cho Microsoft.NET - Solution Explorer: theo ngôn ngữ của Visual Studio, solution là một bộ phận của mã file và mã nguồn khác được dùng để xây dựng các trình ứng dụng Công cụ Solution Explorer được dùng để để quản lý và trình duyệt các file trong solution Trang32 Shuffle IsasIV JAVA VÀ NET - Team Explorer:... dữ liệu Các đặc điểm nổi bật cho từng thành phần PHP -Bộ so n thảo PHP (tự hoàn thành mã, tô màu cú pháp và ngữ vựng của mã) -Hỗ trợ chú thích heredoc và PHTML -Gỡ rối bằng Xdebug -Tự động phát sinh mã cho cơ sở dữ liệu MySQL JavaScript và Ajax Trang26 Shuffle IsasIV JAVA VÀ NET -Trình so n thảo JavaScript và bộ gỡ rối -Trình quản lý thư viện JavaScript -Các thư viện: giao diện người dùng Yahoo , Woodstock,... chậm hơn các chương trình NET - Bảo mật source code không tốt bằng NET Trang17 Shuffle IsasIV JAVA VÀ NET 4 Kết luận: Java và NET có những mục tiêu an ninh và các cơ chế tương tự được hưởng lợi NET của thiết kế từ quá khứ kinh nghiệm hơn so với Java Ví dụ về các thiết kế này sạch hơn bao gồm các tập lệnh MSIL, mã truy cập bảo đảm chứng cứ, và chính sách cấu hình .NET có thể che chắn nhà phát triển từ... các báo cáo lỗ hổng bảo mật Java trong những năm qua Lập trình an toàn Internet đội [8, 49 , 50] và McGraw và Felten [22] xác định một số sớm triển khai thực hiện lỗ hổng trong Java Trang15 Shuffle IsasIV JAVA VÀ NET Việc công bố công khai rộng rãi nhất vấn đề bảo mật trong NET W32.Donut, một loại virus nắm quyền kiểm so t thực thi trước khi thời gian chạy NET đã kiểm so t [46 ] Tuy nhiên, kể từ NET ra... các gói SVR4 Java ME Trang29 Shuffle IsasIV JAVA VÀ NET -Wizard cho dự án mới cho phép bổ sung các thành phần tùy chọn vào Visual Designer Palette -Các thành phần SVG UI trong SVG Composer cho phép thiết kế giao diện đa dạng -Các thành phần Data Binding Custom mới trong Visual Designer Palette -Nâng cấp công cụ cho ProGuard 4. 2 và test framework cho JMUnit 1.1.0 Java SE -Gỡ rối Java đa luồng -Java Swing... chủ ý Trang 14 Shuffle IsasIV JAVA VÀ NET II So sánh hai nền tảng Java và NET: 1 Tóm lược: Nhiều hệ thống thực thi các chương trình không đáng tin cậy trong các máy ảo (VM) để hạn chế truy cập tài nguyên hệ thống của mình CN giới thiệu các máy ảo Java vào năm 1995, chủ yếu nhằm mục như là một trọng lượng nhẹ nền tảng để thực hiện các mã không tin cậy bên trong các trang web Gần đây, Microsoft đã phát... có thể kể tên như sau: C/C++ ( Visual C++), VB.NET (Visual Basic NET), va C# (Visual C#)… cũng như hỗ trợ các ngôn ngữ khác như F#, Python, và Ruby; ngoài ra vẫn đảm bảo hỗ trợ XML/XSLT, HTML/XHTML, JavaScript và CSS… Trang31 Shuffle IsasIV JAVA VÀ NET 2 Những chức năng của Microsoft Visual Studio: Microsoft Visual Studio có những chức năng cơ bản sau: + So n thảo mã ( code editor) + Trình gỡ lỗi (debugger)... trợ nhiều hệ điều hành khác nhau như Windows, Mac, Linux, và Solaris NetBean bao gồm một IDE mã nguồn mở và một nền tảng ứng dụng cho phép nhà phát triển nhanh chóng tạo nên các ứng dụng dành cho web, doanh nghiệp, desktop và thiết bị di động bằng các ngôn ngữ lập trình Java, C/C++, JavaScript, Ruby, Groovy, và PHP Trang25 Shuffle IsasIV JAVA VÀ NET NetBeans IDE 6.5 Beta cung cấp nhiều tính năng mới... Prototype -Hoàn thiện trình so n thảo CSS JavaEE và phát triển Web -Tăng cường hỗ trợ Spring, Hibernate, JSF, tự phát sinh JSF CRUD, JPA (API Java bền bĩ) -Tạo các dịch vụ web RESTful từ các bảng cơ sở dữ liệu hoặc từ các đối tượng JPA -Kéo và thả các dịch vụ SaaS vào các file PHP -Cải thiện bộ so n thảo SQL (hoàn thành mã, lưu/gọi lại các truy vấn, và nhiều hơn nữa) -Cải thiện việc nhập và đồng bộ hóa các... khi lưu Trang27 Shuffle IsasIV JAVA VÀ NET Groovy và Grails -Phát triển ứng dụng Groovy thuần khiết hoặc dùng Groovy trong các dự án Java SE -Bộ so n thảo Groovy (hoàn thành mã, tô màu và những thứ khác) -Framework ứng dụng web Grails -Mở các ứng dụng Grails không cần thêm metadata Ruby và Rails -Giao diện Test Runner mới để hiện thị kết quả test -Cải thiện Rake: Rake Runner và một file Rake được tạo . điểm. -Dù Microsoft không nhìn nhận, nhưng C# là hậu tự của Java, tức là nó ngồi trên vai của người khổng lồ Java, cũng giống như trước đây Java ngồi trên vai người khổng lồ C++ . Nhớ là Java chào. Linh Hoạt Và Khả Năng Phát Triển I. So Sánh Tính Linh Hoạt Của Java và .NET: 1. JAVA: - Java là một mã nguồn mở do đó ta không phải lo lắng về giấy phép. - Java là dễ sử dụng ngôn ngữ lập trình thắng Unix, IE thắng Netscape, ngay cả vụ kiện AntiTrust của 18 tiểu bang ở Mỹ rốt cuộc không ai làm gì được. Shuffle IsasIV Trang10 JAVA VÀ .NET III. So sánh Java Và .Net - Java cho ta một tầm