Your SlideShare is downloading. ×
Công nghệ dot_net
Công nghệ dot_net
Công nghệ dot_net
Công nghệ dot_net
Công nghệ dot_net
Công nghệ dot_net
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Công nghệ dot_net

485

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
485
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Giới thiệu .NET của MicrosoftDoanh thu trong việc bán application software) của Microsoft đang đi xuống, thị trườnginternet đi lên. Microsoft đã có đường hướng và kế hoạch xây dựng .NET để chống lạiLAMP, java (Linux Apache MySQL PHP) ...Tình hình trước đâyTrong chiến trường tin học trước đây, không kể các Database như Oracle, SQL Server,Informix .v.v. ta phải nhắc đến: Java, Linux hay Unix, C++, Delphi MSWindows vàVisual Basic. Nếu muốn đeo đuổi với Unix ta cũng có thể dùng Linux, một OperatingSystem trưởng thành, chắc chắn và miễn phí. Thường thường hể nói Linux người ta hàm ýnó dùng XWindows để cung cấp một GUI (Graphical User Interface) tương đương vớiMSWindows3.1 ngồi phía trên MSDOS. Có điều Linux thì thật sự multi-tasking, có nghĩalà ta có thể chạy nhiều chương trình cùng một lúc. Viết chương trình bằng C hay C++ trênLinux và dùng XWindows không bao giờ là chuyện đơn giản.Sau nầy ta cũng có thể viết Java, một ngôn ngữ do Sun sáng tác cách đây hơn 5 năm và cóthể chạy trên nhiều OS, độc lập với CPU (tức là Intel, Risc hay hiệu gì cũng không thànhvấn đề). Đặc biệt Java rất thích hợp cho việc viết chương trình cho Internet. Tuy nhiên,Java vẫn còn chạy chậm và trên thực tế vẫn chưa thật sự thịnh hành. Mặc dầu SunCorporation và IBM có đẩy mạnh Java, nhưng dường như Microsoft đã dùng ASP để chậnbớt ảnh hưởng của Java.Để lập trình trên Web, lâu nay người ta vẫn dùng cgi-Perl, và gần đây dùng php, môt ngônngữ giống như Perl nhưng cách dùng khiến nó chạy nhanh hơn. Ta có thể triển khai Perltrên Unix/Linux hay MSWindows. Tuy nhiên có nhiều người không thích làm việc vớiregular expressions và những quy ước khác thường về lập trình của Perl nên không ưadùng Perl. Hơn nữa, các phần cho thêm rất hay của Perl như User Interface, Database .v.v.được triển khai bởi những người khác nhau, chớ không phải từ cùng một tổ chức. Do đó, takhông bao giờ đuợc đảm bảo về sự yểm trợ lâu dài hay biết rõ đuờng hướng tương lai củacác thứ mình dùng.
  • 2. Còn trên MSWindows thì ta có thể viết chương trình bằng Visual C++, Delphi hay VisualBasic. Visual C++ thì làm được nhiều chuyện nhưng khó dùng. Visual Basic thì đơn giản,dễ học và dễ dùng nhất nên nó rất thịnh hành. Lý do chính là Visual Basic giúp ta viếtchương trình dùng MSWindows mà không bắt buộc ta phải biết rất nhiều về cáchMSWindows hoạt động. Ta chỉ cần có một số kiến thức căn bản tối thiểu về MSWindowslà đủ rồi. Từ quan điển của VB, mọi liên hệ với MSWindows đều tự nhiên và dễ hiểu. Cóđiều Visual Basic không phải là một ngôn ngữ Object Oriented.Delphi là hậu thân của Turbo Pascal của Borland. Nó giống và tương đối dễ dùng nhưVisual Basic. Delphi thì Object Oriented. Các controls dùng trên các Forms của mộtchương trình Delphi đều tự động generate codes. Khổ nổi nếu ta sửa đổi các controls nhiềulần thì công tác code generation của Delphi thỉnh thoảng gặp trở ngại. Ngoài ra, công tyBorland sản xuất Delphi bị Corel bên Gia Nã Đại mua rồi đổi tên, họ không đảm bảotương lai của sản phẩm khi chuyển hướng bằng cách nhấn mạnh vào JBuilder (dùng choJava). Trong lúc tình hình rối loạn, một số guru của Delphi về đầu thú với Microsoft, cácversion mới của Delphi không thật sự tiến bộ hơn bao nhiêu, nên người ta không dám đầutư việc triển khai phần mềm vào Delphi.Trong khi đó Visual Basic không cần phải generate code nên Visual Basic bền vững hơnDelphi trong khi ta thiết kế các Forms. Nói như thế, không phải che đậy nhiều khuyết điểmcủa Visual Basic như: * Không yểm trợ OOD, nhất là khả năng thừa kế (inheritance) * Giới hạn về việc chạy nhiều task nhẹ cùng một lúc (mutithreading) trong mộtapplication. Thí dụ như ta không thể dùng VB để viết một service kiểu NT. * Khả năng Error Handling rất yếu, bất tiện cho môi trường multi-tier (phân code ranhiều lớp) * Khó dùng chung với các ngôn ngữ khác như C++ chẳng hạn * Không có User Interface thích hợp cho InternetVì Visual Basic không thích hợp cho việc lập trình trên Web Server nên Microsoft sáng tácra Active Server Pages (ASP). Các trang ASP gồm có vừa HTML vừa VBScript (hayJavaScript), nằm lẫn lộn nhau. Khi xử lý một trang ASP hể HTML thì được gởi thẳng quabrowser (client), còn VBScript thì tạo ra các dòng HTML để gởi qua browser. Trừ các Subhay Function, vị trí của VBScript trong các trang ASP rất quan trọng.Khi có nhóm codes nào ưng ý ta muốn biến nó thành một ActiveX và install nó trên WebServer. Vì lý do an ninh, các Internet Service Provider (ISP) làm host cho Web site củachúng ta thường thường rất miễn cưỡng install một ActiveX lạ trên máy của họ. Ngoài ra,việc uninstall ActiveX trên MSWindowsNT 4.0 không phải dễ ăn nên công tác quản lýversion của các ActiveX thừơng làm cho các Web administrators nhức đầu. Ai đã từng trảiqua việc quản lý các version của DLL trên MSWindows đều than phiền tại sao phảiregister các DLL và nhất là tại sao chỉ có thể register một version của DLL mà thôi. Họchán quá, nên đặt ra từ "DLL hell" (địa ngục DLL).Để giúp ta lập trình ASP nhanh, Microsoft cho ra Visual Interdev, một IDE (IntergratedDevelopment Environment) hơi giống như Visual Basic. Visual Interdev cho ta cácDesign-Time Controls giống như các Intrinsic Controls của Visual Basic (td: Label,
  • 3. Textbox, Listbox .v.v..). Tiếc thay Visual Interdev không bền vững lắm nên sau khi dùngthử Visual Interdev một thời gian, đa số lập trình viên bỏ nó.Để thay thế Visual Interdev, Macromedia cho ra Drumbeat 2000. Drumbeat 2000 làmnhiều chuyện hơn, và dễ dùng hơn Visual Interdev. Nó tự động generate VBScript cho mọihoàn cảnh và kết quả là các trang ASP rất linh động. Nhưng có lẽ vì mối liên hệ củaMacromedia với các tác giả của Drumbeat 2000 (một sản phẩm do một công ty khác bánlại cho Macromedia) không tốt đẹp lắm nên Macromedia không còn yểm trợ Drumbeat2000.Dầu sao bản thân ASP hãy còn một số khuyết điểm quan trọng, nhất là khi chạy trênInternet Information Server với NT4.0, ASP không đáng tin cậy lắm.Nói tóm lại, nếu ta theo trường phái Microsoft thì việc lập trình trên desktop, chodistributed system và Web không ăn rơ nhau. Muốn di chuyển từ Desktop development lênWeb development là phải đi qua một chặn đường học hỏi thêm rất mệt xác.====Trong phần này chúng ta sẽ có cái nhìn tổng quan về nguồn gốc của dotnet và dotnet framework. Tâm điểm của công nghệ dotnet. Một công nghệ với nhiều ưu điểm nổi trội so vớicác công nghệ khác hiện tại ....Nguồn gốc của .NETĐầu năm 1998, sau khi hoàn tất version 4 của Internet Information Server (IIS), một độilập trình ở Microsoft nhận thấy họ còn rất nhiều sáng kiến để kiện toàn IIS. Họ bắt đầuthiết kế một architecture mới dựa trên những ý đó và project đuợc đặt tên là NextGeneration Windows Services (NGWS).Sau khi Visual Basic 6 đuợc trình làng vào cuối năm 1998, dự án kế tiếp mang tên VisualStudio 7 đuợc xáp nhập vào NGWS. Đội ngũ COM+/MTS góp vào một universal runtimecho tất cả các ngôn ngữ lập trình trong Visual Studio, mà họ có ý định cho ngay cả cácngôn ngữ lập trình của công ty khác dùng luôn.Công tác nầy được giữ bí mật mãi đến hội nghị Professional Developers Conference ởOrlando vào tháng 7/2000. Đến tháng 11/2000 thì Microsoft cho phát hành Beta 1 của.NET gồm ba CD. Tính đến lúc ấy thì Microsoft đã làm việc trên dự án ấy gần ba năm rồi.Điều ấy cắt nghĩa tại sao Beta 1 version tương đối rất vững chải..NET mang dấu tích những sáng kiến đã được áp dụng trước đây như p-code trong UCSDPascal cho đến Java Virtual Marchine. Có điều Microsoft góp nhặt những sáng kiến củangười khác, kết hợp với những sáng kiến của chính mình để làm nên một sản phẩm ăn rơtừ trong ra ngoài. Có lẽ cuối năm 2001 hay đầu năm 2002 Microsoft mới phát hành .NET.Có người hỏi Microsoft xem .NET quan trọng như thế nào. Các "xếp" của Microsoft chobiết 80% tài khóa Research & Development (Nghiên cứu và Triển khai) của Microsofttrong năm 2001 được dành cho .NET, và tối hậu, tất cả sản phẩm của Microsoft đều sẽđược dọn nhà qua .NET platform.
  • 4. Nhìn qua .NET Framework.NET gồm có hai phần: Framework và Integrated Development Environment (IDE).Framework cung cấp tất cả những gì cần thiết căn bản. Chữ Framework có nghĩa là cáiKhung hay khung cảnh trong đó ta dùng những hạ tầng cơ sở theo một qui ước nhất địnhđể công việc trôi chảy. Còn IDE cung cấp một môi trường giúp ta triển khai dễ dàng,nhanh chóng hơn. Nếu không có IDE ta cũng có thể dùng Notepad và line commands đểtriển khai nhưng nó chậm hơn. Do đó, nếu có chỗ nào IDE genareted code có vẽ quá rắcrối, bạn nên trở về Framework để xem mình thật sự tối thiểu cần những thứ gì. Vì nói chocùng, Framework là quan trọng nhất, còn IDE bất quá chỉ là một công cụ gắn lên phía trênFramework thôi. Trong .NET, C# và VB.NET đều dùng cùng một IDE.Thứ nhất, ta thấy Framework của .NET gói Operating System (OS) lại, khiến lập trình viênkhông phải quan tâm đến những việc liên hệ đến OS như file handling và memoryallocation. Nó cho ta mọi tầng lớp triển khai phần mềm từ việc trình bày (presentation) chođến các bộ phận (components) và dữ kiện (data).Thứ hai, .NET đã được thiết kế từ con số không để giúp ta có thể lập trình cho Internet dễdàng như cho desktop.Tầng dưới chótTrong hình trên, ở tầng dưới chót là Common Language Runtime (CLR) . Ðây là trung tâmđiểm của .NET Famework, nó là hầm máy để chạy các năng tính của .NET. Nó gồm cómột hệ thống chung cho data types (các loại dữ kiện) để giúp việc thừa kế từ các ngôn ngữlập trình khác nhau có thể thực hiện đuợc.Ngoài việc allocation và management of memory, CLR còn giữ các refrerence đến objectsvà đỗ rác (handle garbage collection), tức là thâu lại các mảnh vụn memory không cầndùng nữa. Trước đây, mỗi khi một DLL đuợc loaded vào memory, system sẽ ghi nhận cóbao nhiêu task dùng nó để khi task cuối cùng chấm dứt thì system unload DLL và trả lạiphần memory nó dùng trước đây để system dùng cho chuyện khác. Chớ nếu allocatememory để dùng mà không nhớ dispose nó thì sẽ bị memory leak (rỉ ), lần lần ta dùng hếtmemory, bị bắt buộc phải reboot OS. Nhưng bây giờ .NET dùng một process độc lập để
  • 5. làm việc garbage collection. Cả hai cách góp lại memory nầy đều có ưu và khuyết điểmtùy theo tình huống.CLR có thể đuợc trình bày chi tiết hơn như dưới đây:.NET cho phép các ngôn ngữ lập trình khác nhau có thể được compile ra một ngôn ngữtrung gian, gọi là Microsoft Intermediate Language (MSIL) hay gọi tắt là IntermediateLanguage (IL), giống giống như p-code hay Java Byte-Code. Nếu trong Java ta cần JavaVitual Machine thì ở đây ta cần CLR để chạy chương trình. Ðộc lập với CPU hardware, ILcode chạy trong CLR đuợc nói là managed code. Tức là CLR lãnh trách nhiệm dòm ngó,không cho code làm bậy như nhảy đến một chỗ không tưởng, viết bừa chồng lên memorycủa người khác hay đi ngoài giới hạn của một array.Khi IL code chạy, nó đuợc chuyển ra machine language của target CPU bằng một Just-in-Time (JIT) Compiler. Trong .NET, Microsoft yểm trợ các ngôn ngữ C++, JScript,VB.NET (còn gọi là VB 7) và C# (đọc là C sharp, như nốt C với dấu thăng trong âm nhạc),một ngôn ngữ mới do guru Anders Hejlsberg chế ra. Hejlsberg là người thiết kế Delphi ởBorland trước đây.Microsoft đã bỏ J++. Người ta nói hầu hết .NET Framework đuợc viết bằng C#, có lẽ rấtnhiều code của MFC (Microsoft Foundation Classes) và J++ Class libraries đều đuợc portqua C# một cách dễ dàng vì C# rất giống Java.Một số công ty đang hợp tác với Microsoft để triển khai các ngôn ngữ Cobol, Eiffel, Lisp,Python và Smalltalk cho CLR. Công ty Rational, hảng bán công cụ nổi tiếng UML Rose,sắp hoàn thành một Java to IL compiler. Dĩ nhiên, ta biết đây chỉ là một chiêu thức tiếp thịcủa Microsoft mà thôi. Chớ nói lập trình bằng Java mà không hưởng những phúc lợi củaJ2EE platform APIs như RMI (Remote Method Invocation), JDBC (Java DatabaseConnectivity), JSP (Java Sever Pages), .v.v.. thì như nói trong tiếng Anh có câu "thesyntax says Java. but Java it aint!" (cú pháp là Java, nhưng chả là Java gì cả).Thật ra, trên lý thuyết, muốn thêm một ngôn ngữ lập trình mới vào .NET ta chỉ cần làmsao ngôn ngữ theo đúng qui ước ngôn ngữ của IL gọi là Common Language Specification(CLS), rồi viết một compiler để compile từ ngôn ngữ ấy ra IL. Nói thì dễ, nhưng để VisualBasic comply với CLS, Microsoft đã biến dạng VB6 ra VB7 mà lơ mơ chúng ta nhậnkhông ra là Visual Basic.
  • 6. Nói tóm lại, .NET chỉ yểm trợ một ngôn ngữ duy nhất, IL. Qua IL ta có inheritance laigiống giữa các ngôn ngữ khác nhau. Ở tầng IL ta có debugger dùng cho mọi ngôn ngữ.Trong Framework, các classes cung cấp tất cả các dịch vụ và APIs cần thiết cho việc triểnkhai lập trình ứng dụng. Chúng được sắp xếp theo tầng lớp (hierarchy) và tự códocumentation (cẩm nang).

×