SlideShare a Scribd company logo
Mô hình 3 lớp (3 layers) gồm:<br />Presentation Layer<br />Lớp này làm nhiệm vụ giao tiếp với người dùng cuối để thu thập dữ liệu và hiển thị kết quả/dữ liệu thông qua các thành phần trong giao diện người sử dụng. Lớp này sẽ sử dụng các dịch vụ do lớp Business Logic cung cấp. Trong .NET thì bạn có thể dùngWindows Forms, ASP.NET hay Mobile Forms để hiện thực lớp này.<br />Business Logic Layer<br />Lớp này thực hiện các nghiệp vụ chính của hệ thống, sử dụng các dịch vụ do lớp Data Access cung cấp, và cung cấp các dịch vụ cho lớp Presentation. Lớp này cũng có thể sử dụng các dịch vụ của các nhà cung cấp thứ 3 (3rd parties) để thực hiện công việc của mình (ví dụ như sử dụng dịch vụ của các cổng thanh tóan trực tuyến như VeriSign, Paypal…).<br />Data Access Layer<br />Lớp này thực hiện các nghiệp vụ liên quan đến lưu trữ và truy xuất dữ liệu của ứng dụng. Thường lớp này sẽ sử dụng các dịch vụ của các hệ quản trị cơ sở dữ liệu như SQL Server, Oracle,… để thực hiện nhiệm vụ của mình. Trong lớp này có các thành phần chính là Data Access Logic, Data Sources, Servive Agents).<br />Nhiệm vụ của từng lớp  :<br />3 lơp gồm :một tầng xử lý các kết nối tối CSDL : các xử lý liên quan đến đọc và cập nhật dữ liệu sẽ khai báo và thực hiện ở đâymột tầng thực hiện các thao tác xử lý : các xử lý liên quan đến các giải thuật để tính ra kết quả mong muốn sẽ được liệt vô phần nàytầng còn lại để thực hiện các xử lý liên quan đến phần trình diễn (xuất, và định dạng kết quả ra màn hình)<br />3 tier: Dùng cho mô hình client-server, mỗi tier thường là 1 platform riêng biệt.3 layer: Thường cùng 1 platform, nó giống cách tổ chức mã lệnh một cách rạch ròi.Điểm khác biệt dễ nhận thấy:Mô hình 3 tier có dạng tuyến tínhMô hình MVC có hình tam giác ^.^tất nhiên 2 mô hình này có những điểm tương đồng, nhưng nó 0 phải là 1.<br />Lưu ý 3 layer và 3 tier là hai khai niệm khác nhau, nói đến layer là nói đến cách tổ chức ứng dụng, còn tier là ám chỉ sự tách bạch về mặt vật lý do vậy ntier app cần n bản package cho mỗi tier.khi chúng ta làm web app thì thực sự đã tiếp cận với kiến trúc client -server, và server tier chính là web server như ISS, TOMCAT, JBOSS còn win form application thì phải thiết kế server application , các tier trao đổi dữ kiện thông qua các technique : COBRA, DCOM..WCF..etc<br />Mô hình tầng khác lớp :<br />3-Tier là mô hình 3 tầng có nghĩa là nó gồm những tầng sau: Tầng thứ nhất là tầng DAO tầng thứ 2 là tầng SERVER tầng thứ 3 là tầng Client.Trong đó tâng DAO là cơ sở dữ liệu của bạn, tầng SERVER là tầng có chứa mô hình 3-LayerCòn mô hình 3-Layer là mô hình 3 lớp nó gồm những lớp sau: lớp thứ nhất là lớp DataAccess lớp thứ 2 là lớp Bussiness và lớp thứ 3 là lớp GUI, và những lớp này nằm trong tầng SERVER của mô hình 3-Tier...Trong đó DataAccess là lớp truy suất đến cơ sở dữ liệu, Còn lớp Bussiness là lớp trung gian để giao tiếp giữa lớp GUI với lớp DA.<br />N-Tier is more about where the code / processes run (physical location), and N-Layer is more about how the code is logically groupedN-Tier là sự phân nhóm dựa trên việc code chạy ở đâu.Còn N-Layer là sự phân nhóm dựa trên chức năng của code.MVC là 1 trong nhiều cách phân nhóm khác, ở MVC thì business logic có thể nằm trong cả M và C, tùy vào việc việc business logic nằm ít hay nhiều ở C mà có thể còn có những thứ phân loại phức tạp hơn như fat Model, thin Controller ... Ngoài ra còn cả những mô hình như SOA nữa.<br />MVC :<br />Model-view-controller (MVC) là một mẫu kiến trúc được dùng trong kỹ thuật phần mềm. Trong các ứng dụng máy tính phức tạp nó đại diện cho một lượng lớn dữ liệu đối với người dùng, một nhà phát triển thường mong muốn tách dữ liệu (Model) và giao diện người dùng (View) riêng ra để có thể thay đổi giao diện người dùng mà không ảnh hưởng đến thao tác dữ liệu và dữ liệu có thể tổ chức lại mà không thay đổi giao diện người dùng. MVC giải quyết vấn đề này bằng cách tăng gấp đôi truy cập dữ liệu và logic công việc từ biểu diễn dữ liệu và tương tác người dùng, bằng cách giới thiệu một thành phần trung gian: bộ điều khiển (Controller).<br />1. LINQ là gì ?<br />LINQ là một tập hợp các thành phần mở rộng cho phép viết các câu truy vấn dữ liệu ngay trong một ngôn ngữ lập trình, như C# hoặc VB.NET.<br />LINQ là từ viết tắt của “Language-Integrated Query”<br />2. Tôi cần có gì để lập trình LINQ ?<br />LINQ có từ bản .NET 3.5, vậy nên tối thiểu chương trình của bạn phải chạy trên nền tảng này.<br />Visual Studio 2008, hoặc các phiên bản Express của nó là các bộ công cụ phát triển tiêu biểu cho ứng dụng dùng LINQ.<br />Tải về Visual Studio 2008 tại đây.<br />Tải về Visual Studio Express tại đây.<br />3. LINQ và ADO.NET khác nhau chỗ nào ?<br />Nôm na, LINQ là tập mở rộng cho phép viết các câu truy vấn ngay trong các ngôn ngữ lập trình. Nó cho phép bạn làm việc với các kiểu tập hợp dữ liệu, như XML, collection, array,… và cả CSDL.<br />ADO.NET là công nghệ cho phép các ứng dụng có thể kết nối và làm việc với các loại CSDL khác nhau (truy vấn, cập nhật, thêm, xóa, gọi thủ tục…).<br />Bản thân LINQ không phải là một công nghệ được tạo ra để thay thế ADO.NET, bạn có thể làm việc với LINQ mà không dính gì đến CSDL. Tuy nhiên, LINQ to SQL, là một phần mở rộng của LINQ, cho phép bạn có thể làm việc được với CSDL SQL Server, trong trường hợp này thì khi viết bạn có thể bỏ qua các câu lệnh ADO.NET mà chỉ quan tâm tới cú pháp mà LINQ cung cấp.<br />Nhớ rằng dù bạn không hề dùng đến ADO.NET khi viết chương trình sử dụng LINQ to SQL, nhưng đằng sau nó, ADO.NET vẫn được dùng để thực hiện kết nối, gửi các câu lệnh, các lời gọi thủ tục…<br />4. LINQ có hỗ trợ Unicode không ?<br />Có, LINQ là một thành phần của .NET, và như vậy, LINQ hỗ trợ Unicode một cách hoàn toàn tự nhiên, bạn có thể làm các thao tác chèn, sửa dữ liệu với tiếng Việt mà không cần cấu hình thêm. Tất nhiên, khi thiết kế CSDL, bạn vẫn phải chọn kiểu dữ liệu (NVARCHAR) và collation phù hợp để LINQ có thể làm việc một cách đúng đắn.<br />5. Tôi không thể tìm thấy một số phương thức (Add, RemoveAll…) như các ví dụ trong loạt bài “LINQ to SQL”<br />Kể từ bản RTM, các phương thức dùng cho thêm và xóa entity đã được đổi tên, cụ thể như sau:<br />Add đổi thành InsertOnSubmit<br />AddAll đổi thành InsertAllOnSubmit<br />Remove đổi thành DeleteOnSubmit<br />RemoveAll đổi thành DeleteAllOnSubmit<br />6. LINQ và LINQ to SQL liên quan gì với nhau?<br />LINQ là một tập hợp các công nghệ cho phép bạn thay đổi cách truy xuất vào các nguồn dữ liệu ngay từ cấp độ ngôn ngữ, các câu truy vấn LINQ có dạng tương tự SQL. LINQ hỗ trợ hầu hết các dạng nguồn dữ liệu khác nhau, bao gồm cả các đối tượng trong bộ nhớ (LINQ to Objects), XML (LINQ to XML), CSDL SQL Server (LINQ to SQL)…<br />Như vậy LINQ to SQL là phần hỗ trợ việc truy cập vào CSDL SQL Server sử dụng LINQ.<br />7. So sánh LINQ to SQL với Entity Framework:<br />Bạn xem bài viết tại đây: http://namdh.wordpress.com/2010/06/30/comparing-linq-to-sql-and-ado-net-entity-framework/<br />8. Tôi muốn lập trình LINQ với các CSDL khác SQL Server thì phải làm thế nào?<br />Bạn có thể dùng LINQ với Oracle nhờ LINQ to Oracle: http://linqtooracle.codeplex.com/<br />Bạn cũng có thể tham khảo DbLinq Project: http://code2code.net/DB_Linq/<br />9. Biểu thức Lambda là gì?<br />Bạn có thể đọc bài viết về lambda tại đây: http://namdh.wordpress.com/2009/07/22/lambda-expression/<br />10. Tôi chỉ muốn trả về một tập giới hạn các cột cần thiết thì phải viết thế nào?<br />Thông thường, để trả về đối tượng chứa toàn bộ các cột trong bảng, bạn viết: <br />var r = from c in myContext.Customers select c;<br />Để lấy về một số cột cụ thể nào đó, bạn có thể viết:<br />var r = from c in myContext.Customers select new {c.Id, c.Name, c.Address};<br />Bạn cũng có thể dùng lại một lớp đã khai báo từ trước:<br />var r = from c in myContext.Customers select new CustomerInfo {Id = c.Id,  Name = c.Name, Address = c.Address};<br />1. Mô hình 3 tầng (3-tiers) là gì?<br />Theo wikipedia thì:<br />“3-tiers là một kiến trúc kiểu client/server mà trong đó giao diện người dùng (UI-user interface), các quy tắc xử lý(BR-business rule hay BL-business logic), và việc lưu trữ dữ liệu được phát triển như những module độc lập, và hầu hết là được duy trì trên các nền tảng độc lập, và mô hình 3 tầng (3-tiers) được coi là một kiến trúc phần mềm và là một mẫu thiết kế.” (dịch lại từ wikipedia tiếng Anh).<br />Như vậy, ta có thể mô hình này phân tách ứng dụng ra làm 3 module riêng biệt, bao gồm:<br />- Tầng Presentation: được dùng để giao tiếp với người dùng, nhiệm vụ chính là hiển thị dữ liệu và nhận dữ liệu từ người dùng.<br />- Tầng Business Logic: nhiệm vụ chính là cung cấp các chức năng của phần mềm.<br />- Tầng Data: lưu trữ dữ liệu, cho phép lớp Business Logic có thể tìm kiếm, trích xuất, cập nhật… dữ liệu.<br />2. Tại sao là 3-tiers mà không phải là 3-layers?<br />Khi dùng từ layer, chúng ta nói tới việc phân chia ứng dụng thành các thành phần một cách logic theo chức năng hoặc theo vai trò, điều này giúp phần mềm của bạn có cấu trúc sáng sủa, dễ dùng lại, từ đó giúp việc phát triển và bảo trì dễ dàng hơn. Các layer khác nhau khi được thực thi vẫn có thể nằm trong cùng một vùng bộ nhớ của một process, và hiển nhiên việc giao tiếp giữa 2 layer có thể không phải là giao tiếp giữa 2 process, đồng nghĩa với việc chúng không liên quan tới mô hình client/server.<br />Trái lại, tier liên quan đến cách phân chia một cách vật lý các thành phần trên các máy tính khác nhau.<br />Điều làm nhiều người nhầm lẫn giữa layer và tier là chúng có cùng cách phân chia (presentation, business, data), tuy nhiên trên thực tế chúng khác nhau. Vì cách phân chia như trên nên 1 tier có thể chứa nhiều hơn 1 layer.<br />3. 3-tiers có những ưu và nhược điểm gì?<br />3-tiers là một kiến trúc phần mềm, có nghĩa là bạn có thể dùng nó để xây dựng nên bộ khung tổng thể của ứng dụng. Tuy nhiên bạn cần chú ý những ưu và nhược điểm sau đây để áp dụng nó một cách đúng đắn.<br />Ưu điểm:<br />- Dễ dàng mở rộng, thay đổi quy mô của hệ thống: Khi cần tải lớn, người quản trị có thể dễ dàng thêm các máy chủ vào nhóm, hoặc lấy bớt ra trong trường hợp ngược lại.<br />Nhược điểm:<br />- Việc truyền dữ liệu giữa các tầng sẽ chậm hơn vì phải truyền giữa các tiến trình khác nhau (IPC), dữ liệu cần phải được đóng gói -> truyền đi -> mở gói trước khi có thể dùng được.<br />- Việc phát triển ứng dụng phức tạp hơn.<br />4. Những công nghệ nào hỗ trợ xây dựng các ứng dụng 3-tiers?<br />Tùy thuộc vào nền tảng, bạn có thể chọn một trong các công nghệ như EJB (J2EE), COM+ (Windows), hay cũng có thể dùng các máy chủ web như nền tảng xây dựng lớp giữa (dùng webservice). Tuy nhiên, EJB và COM+ là hai tùy chọn tốt nhất vì nó có nhiều công nghệ hỗ trợ như Object Pooling, Authentication và Authority, Resource management, Remote Object Access, Transaction…<br />Các công nghệ truyền thông điệp như JMS hay MSMQ cũng hỗ trợ nhiều trong việc tạo các lời gọi không đồng bộ.<br />5. Các ứng dụng máy chủ cơ sở dữ liệu có liên quan gì đến mô hình này không?<br />Có, nó đóng vai trò tầng Data.<br />Bản thân khi hoạt động, máy chủ CSDL trở thành 1 phần không thể thiếu trong hệ thống, nó chính là nơi chứa dữ liệu của bạn. Việc dùng một hệ CSDL sẵn có là việc nên làm vì nó giúp chúng ta rất nhiều công sức, nhưng điều đó không có nghĩa là nó không thuộc vào hệ thống của chúng ta, chỉ khác ở chỗ đây là một tầng Data được xây dựng sẵn.<br />6. Lớp Data Access Layer (DAL) thuộc tầng nào?<br />Lớp Business Logic.<br />Trái với nhiều người nghĩ, cứ cái gì có chữ Data thì nó phải thuộc lớp 3, tuy nhiên vì DAL chỉ đóng vai trò truy vấn, chứ bản thân nó không cung cấp dữ liệu, và nó vẫn phải được thực thi bởi các Business Object, vậy nên trong đa số trường hợp nó sẽ nằm trong lớp 2 (một số thiết kế tách nó riêng thành 1 tier).<br />Nên nhớ rằng việc tách riêng ra một DAL giúp bạn có một thiết kế tốt hơn, nhưng không phải là bắt buộc. Và việc tự tạo một DAL với việc dùng chung một tập các lớp truy xuất dữ liệu được cung cấp bởi một công nghệ/công cụ có sẵn như LINQ to SQL, NHibernate hay Entity Framework không có gì khác nhau về kiến trúc hệ thống.<br />Có lẽ vì sự tồn tại của DAL mà rất nhiều người hiểu nhầm giữa 3-tiers và 3-layers.<br />7. Tôi nên kiểm tra dữ liệu nhập bởi người dùng ở lớp nào?<br />Kiểm tra dữ liệu ở lớp giao diện giúp giảm tải cho lớp giữa, phản hồi cũng nhanh hơn. Tuy nhiên sẽ khó có thể đảm bảo sẽ không có kẽ hở để những dữ liệu không hợp lệ được chuyển đến lớp Business Logic và thậm chí lớp Data, vậy nên thông thường việc kiểm tra nên được đặt trong tất cả các lớp tùy thuộc vào từng loại dữ liệu và phép kiểm tra. <br />8. Tôi có một ứng dụng, nó không có giao diện người dùng vì nó chỉ nhận dữ liệu từ các ứng dụng khác, tôi có thể viết theo mô hình 3-tiers được không?<br />Có, từ Presentation ở đây không mang ý nghĩa giao diện tương tác với người dùng, mà nó có nghĩa rộng hơn là phần tương tác với các hệ thống bên ngoài, ví dụ Presentation có thể là phần kết nối để truy xuất dữ liệu đến một hệ thống khác, hay một cổng để tiếp nhận các lệnh do một hệ thống khác chuyển đến.<br />9. Tôi nên đọc thêm tài liệu nào để hiểu kỹ hơn về mô hình 3 lớp và cách dùng hiệu quả các công nghệ như EJB và COM+?<br />Bạn có thể đọc thêm 2 quyển:<br />- Designing Enterprise Applications with the J2EE Platform, Second Edition, dành cho người làm J2EE (http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/).<br />- Application Architecture Guide 2.0, quyển này của các bác MS (http://www.codeplex.com/AppArchGuide/)<br />Ngay cả khi chưa viết ứng dụng mới mô hình 3-tiers thì bạn cũng RẤT RẤT RẤT nên đọc 2 quyển trên.<br />10. 3-tiers có giống MVC không?<br />Không, trong 3-tiers, quá trình đi theo chiều dọc, bắt đầu từ Presentation, sang BL, rồi tới Data, và từ Data, chạy ngược lại BL rồi quay ra lại Presentation.<br />Còn trong MVC, dữ liệu được nhận bởi View, View sẽ chuyển cho Controller cập nhật vào Model, rồi sau đó dữ liệu trong Model sẽ được đưa lại cho View mà không thông qua Controller, do vậy luồng xử lý này có hình tam giác.<br />So sánh MVC và 3-layer/tier:Giống nhau:- Cả hai đều để tách rời programming core/business logic ra khỏi những phụ thuộc về tài nguyên và môi trường.- Trong một ứng dụng nhỏ, MVC thể hiện thế nào? Presentation thể hiện giống như chức năng của View và Controller. Business và Database thể hiện giống như chức năng của Model. Như thế nhìn ở góc độ này, thì MVC tương đương với 3-layer (tất nhiên có chồng chéo như hình vẽ)Khác nhau:Trong 3-layers, quá trình đi theo chiều dọc, bắt đầu từ Presentation, sang BL, rồi tới Data, và từ Data, chạy ngược lại BL rồi quay ra lại Presentation.Còn trong mẫu Supervising Controller, dữ liệu được nhận bởi View, View sẽ chuyển cho Controller cập nhật vào Model, rồi sau đó dữ liệu trong Model sẽ được đưa lại cho View mà không thông qua Controller, do vậy luồng xử lý này có hình tam giác.<br />hông thường khi áp dụng thì người ta kết hợp cả 2: MVC được áp dụng bên phía Client. Sau đó 3 tiers được áp dụng như bình thường trên hệ thống client-server. Việc có sử dụng hay là có bọc lẫn nhau giữa MVC và 3-tier là không hoàn toàn bắt buộc, ta có thể sử dụng MVC mà không cần đến 3-tier (với những ứng dụng nhỏ) [right][size=1][url=http://congdongso.com/showthread.php?t=2782&p=7566&viewfull=1#post7566]Copyright © Cộng Đồng Số[/url][/size][/right]  <br />MÔ HÌNH ỨNG DỤNG Client/Server 3 lớp(business logic 3-Tier)Nhược điểm của mô hình 2 lớp:- Tính toán tập trung ở phía Client (Fat client – Thin Server):+ Khó nâng cấp vì phải cập nhật lại phần mềm ở toàn bộ các client.+ Do mọi thao tác trên CSDL đều thông qua mạng giữa client và server nên tốc độ của hệ thống sẽ chậm đi.- Tính toán tập trung ở phía Server (Fat Server – Thin Client): + Việc sửa đổi hoặc mở rộng sever trở nên không khả thi và tốn kém vì mã lệnh bị trộn giữa nghiệp vụ và cơ sở dữ liệu.+ Server dễ bị quá tải do phải đáp ứng quá nhiều nhiệm vụ (cả bussiness logic và database). Nếu chia ra nhiều server thì dữ liệu bị phân tán.Mô hình 3 lớp:Mô hình này bổ sung một server tương tác giữa Client và Database Server gọi là Application Server.-Client: Là các web Browser đã có sẵn (như Internet Explorer, Firefox, Opera ...) và chỉ hiểu ngôn ngữ HTML (hiện các Browser mới hiểu thêm được cả XHTML, XML). Một Browser có thể dùng để truy cập nhiều trang web và không thể thực hiện chức năng xử lý tính toán nào.-Application Server hay Web Server: Web Server (máy phục vụ Web): máy tính mà trên đó cài đặt phần mềm phục vụ Web, đôi khi người ta cũng gọi chính phần mềm đó là Web Server. Tất cả các Web Server đều hiểu và chạy được các file *.htm và *.html, tuy nhiên mỗi Web Server lại phục vụ một số kiểu file chuyên biệt chẳng hạn như IIS của Microsoft dành cho *.asp và *.aspx, Apache dành cho *.php, Sun Java System Web Server của SUN dành cho *.jsp ... -Thực hiện các yêu cầu mà Web Browser gởi tới.- Kết quả thực hiện của các đối tượng chạy trên Web Server phải ở dạng HTML, XHTML, XML.-Database Server (máy chủ cơ sở dữ liệu):Máy tính mà trên đó có cài đặt Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS). Chúng ta có một số RDBMS chẳng hạn như: SQL Server, MySQL, Oracle ... Thực hiện mọi thao tác trên cơ sở dữ liệu do Web Server yêu cầu.Ưu điểm của mô hình 3 lớp:- Hỗ trợ nhiều người dùng hơn.- Loại bỏ hoàn toàn sự phụ thuộc của Client.- Business logic được chứa trong lớp Application Server nên có những ưu điểm:+ Khả năng bảo mật và an toàn hệ thống tốt hơn: Lớp GUI không hề chứa mã lệnh thao tác trực tiếp trên CSDL, mà chỉ chứa các yêu cầu phục vụ đến lớp thứ 2. Vì vậy nếu nhà phát triển phân tích và xây dựng cácphương thức phục vụ ở lớp business logic kỹ lưỡng và an toàn thì hệ thống sẽ đạt độ bảo mật rất cao.+ Dễ mở rộng: bằng cách dùng nhiều Application Server (không dùng nhiều Database Server vì khi đó dữ liệu sẽ bị phân tán).- Dễ quản lý: việc nâng cấp, sửa đổi có thể thực hiện ở tầng vật lý tương ứng.Nhược điểm của mô hình 3 lớp:- Tốn nhiều công sức cài đặt (nhiều server) hơn.<br />Lưu ý 3-layer và 3-tier là hai khai niệm khác nhau, nói đến layer là nói đến cách tổ chức ứng dụng (vd các package trong java), còn tier là ám chỉ sự tách bạch về mặt vật lý ( client - app server - data server).3 tầng cũng chưa phải là nhiều. Hiện tại thì người ta còn chia nhỏ BLL ra thành nhiều tầng nữa. Do đó khái niệm đúng là ta dùng n-tier trong web application<br />Định nghĩa :<br />sự phân chia lớp (layer) có tính logic (mỗi layer có 1 công việc). sự phân chia tầng (tier) có tính vật lý (physical): là mô hình client-server (mỗi tier có thể đặt chung 1 nơi hoặc nhiều nơi, kết nối với nhau qua Web services, WCF, Remoting...)<br />Kiến trúc 3-Layered Phương cách này ám chỉ sự phân chia trách nhiệm trong logic các thành phần. Chúng là: Presentation, nơi hiển thị giao diện nhập dữ liệu và hiển thị kết quả. Business, còn gọi là Domain Logic, là nơi chứa phần lõi logic của ứng dụng. Ở đây chứa toàn những danh từ nghiệp vụ: khách hàng, hóa đơn, lợi tức, v.v. Không liên quan trực tiếp tới kỹ thuật hiển thị hoặc dữ liệu lưu trữ. Data Access, chứa tất cả những xử lý liên quan đến kỹ thuật lưu trữ (kết nối cơ sở dữ liệu, bảng, bản ghi, v.v.). Mặc dù có thể phân phối các phần tách biệt về vật lý, nhưng không bắt buộc. Lợi ích thực tế của kiến trúc này là mang lại tính tái sử dụng và dễ bảo trì.<br />Kiến trúc 3-Tier Trong phương cách này, chúng ta phân tách vật lý các hoạt động. Client (Front-end, Channels), bao gồm một tập hợp hạ tầng phần cứng và phần mềm khác nhau để có thể thực thi giao diện người dùng của ứng dụng. Application Server(Middleware), có thể gồm một hay nhiều máy chủ, nơi tiếp nhận yêu cầu từ Client qua giao thức tuyền và thông điệp. Back-end, tập hợp đa dạng các cơ sở hạ tầng hỗ trợ. Chúng ta có thể tìm thấy các ví dụ như cơ sở dữ liệu (trong lưu trữ cố định), hoặc các hệ thống lưu trữ trên máy tính lớn. Ứng dụng chủ ở đây đóng vai trò tập trung các dịch vụ cấp thấp (giao tiếp, bảo mật, v.v.), nối các kênh khác nhau vào mảng khuất của hệ thống.<br />Php : codeigniter,cakePHP,zend framework,symfony,yii framework..<br />java: struts, springmvc, jsf<br />LINQ hoạt động như thế nào?<br />Các bước sử dụng LINQ: <br />• Để sử dụng LINQ, bạn tạo một biểu thức LINQ. <br />• Giá trị trả về từ một biểu thức LINQ là một đối tượng iterator hiện thực IEnumerable<T> <br />• Khi bạn lặp qua đối tượng iterator, LINQ mới thực sự thực hiện công việc. Cơ chế này được gọi là Deferred Execution. <br />Vậy LINQ thực thi các biểu thức như thế nào? Câu trả lời phụ thuộc vào loại dữ liệu mà bạn truy vấn. Ví dụ như LINQ to SQL chuyển các biểu thức LINQ thành các lệnh cơ sở dữ liệu, trong khi với LINQ to Objects, mọi chuyện đơn giản hơn nhiều. Chẳng hạn như trong ví dụ trên, LINQ thực ra sử dụng một vòng lặp foreach để quét qua tập hợp, Mặc dù điều này nghe có vẻ không ấn tượng, lợi ích của LINQ nằm ở chỗ nó mang đến một cách linh động để định nghĩa các câu truy vấn có thể áp dụng được cho nhiều nguồn dữ liệu khác nhau, bao gồm các tập hợp trên bộ nhớ, XML, Dataset…<br />7) Trong MVC có the dùng ntiers không ?<br />trong mvc có thể dùng ntiers.<br />Ngược lại thì không<br />8) Trong ntiers có the dùng mvc không ?<br />Ngược lại thì không<br />9) Linq là gì ?<br />Khái niệm 1 :<br />Linq (Language Integrated Query) – ngôn ngữ truy vấn được tích hợp vào ngôn ngữ lập trình.<br />-Linq là một thành phần trong gói .Net của hãng Microsoft .<br />Linq định nghĩa là một tập hợp những toán tử truy vấn có thể sử dụng để truy vấn (loc dữ liệu) từ nhũng lớp dữ liệu chuẩn (XML,CSDL quan hệ ,..).Nó cho phép truy vấn đến bất cứ nguôn dữ liệu nào( nguồn dữ liệu cần đóng gói như đối tượng).<br />3) So sánh 3 tiers và 3 layer<br />Gióng nhau :- Đều chia làm ba tầng : Presentation- Business-Data.<br />Khác nhau:<br />3-Tier: - tier liên quan đến cách phân chia một cách vật lý các thành phần trên các máy tính khác nhau.<br />-3-tier là kiểu cấu trúc client-server.<br />- 1 tier có thể chưa nhiều layer.<br />+++Presentation Tier:là tầng mà người dùng tương tác với ứng dụng<br />+++Business Tier: là tầng mà Presentation và tầng Data sử dụng để giao tiếp với nó.<br />+++Data Tier: là tầng mà server để lưu trữ dữ liệu của ứng dụng.<br />3-Layer: Khi dùng từ layer, chúng ta nói tới việc phân chia ứng dụng thành các thành phần một cách logic theo chức năng hoặc theo vai trò:<br />- Các layer khác nhau khi được thực thi  vẫn có thể nằm trong cùng một vùng  bô nhớ của process.-> việc giao tiếp  jua hai layer  không phải là jao tiêp của hai process-> không lien quan đến mô hình client – server.<br />- Một layer không thể chứa tier.<br />2) Mô hình 3 tiers là gì ?<br />Mô hình 3 tier là một kiểu kiến trúc  client/server  mà trong đó giao diện của người dùng (UI-User interface),các quy tắc xử lý  và việc lưu trữ dữ liệu được phát triển như module  độc lập.Hầu hết ,được duy trì trên các nền tảng độc lập..Và  mô hình 3 tầng (3 tier ) được coi như  một kiến trúc phần mềm .<br />Như vậy ,mô hình 3-tier có thể chia thành ba module riêng biệt như sau:<br />-Tầng Presentation:Bao gồm máy user1,2 để  giao tiếp người dùng,nhiệm vụ chính alf hiển thị  dữ liệu và nhận dữ liệu từ người dùng.<br />- Tầng business logic:Cung cấp các chức năng của phần mềm<br />-Tầng data:Lưu trữ dữ liệu, cho phép lớp Business  logic có thể tìm kiếm , trích,xuất,cập nhật….dữ liệu.<br />Ưu điểm:<br />- Dễ dàng mở rộng,thay đổi quy mô của hệ thống.<br />-Khi cần tải lớn,người quản trị  có thể dễ dàng thêm  các máy chủ vào nhóm,hay lây bớt ra nếu ngược lại.<br />Khuyêt điểm:<br />- Việc truyền dữ liệu jua các tầng sẽ chậm vì lí do phải truyền jua  các tiến trình khác nhau(IPC).,,dữ liệu cần đóng gói -> truyền đi-> mở gói  trước khi dùng được .<br />
Thương  mại điện tử
Thương  mại điện tử
Thương  mại điện tử
Thương  mại điện tử
Thương  mại điện tử
Thương  mại điện tử
Thương  mại điện tử
Thương  mại điện tử
Thương  mại điện tử
Thương  mại điện tử
Thương  mại điện tử

More Related Content

What's hot

Đồ án xây dựng Website bán hàng đồ chơi trẻ em
Đồ án xây dựng Website bán hàng đồ chơi trẻ emĐồ án xây dựng Website bán hàng đồ chơi trẻ em
Đồ án xây dựng Website bán hàng đồ chơi trẻ em
nataliej4
 
Phân tích và thiết kế hệ thống quản lý quán Internet
Phân tích và thiết kế hệ thống quản lý quán InternetPhân tích và thiết kế hệ thống quản lý quán Internet
Phân tích và thiết kế hệ thống quản lý quán Internet
nataliej4
 
Thiết kế website bán điện thoại di động bằng PHP
Thiết kế website bán điện thoại di động bằng PHPThiết kế website bán điện thoại di động bằng PHP
Thiết kế website bán điện thoại di động bằng PHP
Nguyễn Danh Thanh
 
docx.vn - Xay dung website ban quan ao online
docx.vn - Xay dung website ban quan ao onlinedocx.vn - Xay dung website ban quan ao online
docx.vn - Xay dung website ban quan ao online
Vi Thái
 
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Tú Cao
 
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOT
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOTĐề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOT
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOT
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Báo cáo thực tập chuyên đề wordpress
Báo cáo thực tập chuyên đề wordpressBáo cáo thực tập chuyên đề wordpress
Báo cáo thực tập chuyên đề wordpress
vngnhuhaiyen236
 
Báo cáo thực tập chuyên đề Wordpress
Báo cáo thực tập chuyên đề WordpressBáo cáo thực tập chuyên đề Wordpress
Báo cáo thực tập chuyên đề Wordpress
vngnhuhaiyen236
 
THIẾT KẾ, CHẾ TẠO GIÀN PHƠI ĐỒ THÔNG MINH
THIẾT KẾ, CHẾ TẠO GIÀN PHƠI ĐỒ THÔNG MINHTHIẾT KẾ, CHẾ TẠO GIÀN PHƠI ĐỒ THÔNG MINH
THIẾT KẾ, CHẾ TẠO GIÀN PHƠI ĐỒ THÔNG MINH
nataliej4
 
Phân tích thiết kế hệ thống hướng đối tượng, làm doc và case study mô tả kịch...
Phân tích thiết kế hệ thống hướng đối tượng, làm doc và case study mô tả kịch...Phân tích thiết kế hệ thống hướng đối tượng, làm doc và case study mô tả kịch...
Phân tích thiết kế hệ thống hướng đối tượng, làm doc và case study mô tả kịch...
chung nguyen
 
Tieng Anh chuyen nganh CNTT
Tieng Anh chuyen nganh CNTTTieng Anh chuyen nganh CNTT
Tieng Anh chuyen nganh CNTT
Popping Khiem - Funky Dance Crew PTIT
 
Báo cáo đồ án học phần 2: Tìm hiểu và viết ứng dụng tra từ điển viết tắt của ...
Báo cáo đồ án học phần 2: Tìm hiểu và viết ứng dụng tra từ điển viết tắt của ...Báo cáo đồ án học phần 2: Tìm hiểu và viết ứng dụng tra từ điển viết tắt của ...
Báo cáo đồ án học phần 2: Tìm hiểu và viết ứng dụng tra từ điển viết tắt của ...
Nguyễn Plus
 
Đề tài Quản lý tiền điện
Đề tài Quản lý tiền điệnĐề tài Quản lý tiền điện
Đề tài Quản lý tiền điện
Dịch vụ viết thuê Khóa Luận - ZALO 0932091562
 
Báo cáo thực tập tại Trung Tâm athena
Báo cáo thực tập tại Trung Tâm athenaBáo cáo thực tập tại Trung Tâm athena
Báo cáo thực tập tại Trung Tâm athenaThảo Trần
 

What's hot (15)

Đồ án xây dựng Website bán hàng đồ chơi trẻ em
Đồ án xây dựng Website bán hàng đồ chơi trẻ emĐồ án xây dựng Website bán hàng đồ chơi trẻ em
Đồ án xây dựng Website bán hàng đồ chơi trẻ em
 
Phân tích và thiết kế hệ thống quản lý quán Internet
Phân tích và thiết kế hệ thống quản lý quán InternetPhân tích và thiết kế hệ thống quản lý quán Internet
Phân tích và thiết kế hệ thống quản lý quán Internet
 
Thiết kế website bán điện thoại di động bằng PHP
Thiết kế website bán điện thoại di động bằng PHPThiết kế website bán điện thoại di động bằng PHP
Thiết kế website bán điện thoại di động bằng PHP
 
docx.vn - Xay dung website ban quan ao online
docx.vn - Xay dung website ban quan ao onlinedocx.vn - Xay dung website ban quan ao online
docx.vn - Xay dung website ban quan ao online
 
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
 
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOT
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOTĐề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOT
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOT
 
Báo cáo thực tập chuyên đề wordpress
Báo cáo thực tập chuyên đề wordpressBáo cáo thực tập chuyên đề wordpress
Báo cáo thực tập chuyên đề wordpress
 
Báo cáo thực tập chuyên đề Wordpress
Báo cáo thực tập chuyên đề WordpressBáo cáo thực tập chuyên đề Wordpress
Báo cáo thực tập chuyên đề Wordpress
 
THIẾT KẾ, CHẾ TẠO GIÀN PHƠI ĐỒ THÔNG MINH
THIẾT KẾ, CHẾ TẠO GIÀN PHƠI ĐỒ THÔNG MINHTHIẾT KẾ, CHẾ TẠO GIÀN PHƠI ĐỒ THÔNG MINH
THIẾT KẾ, CHẾ TẠO GIÀN PHƠI ĐỒ THÔNG MINH
 
Phân tích thiết kế hệ thống hướng đối tượng, làm doc và case study mô tả kịch...
Phân tích thiết kế hệ thống hướng đối tượng, làm doc và case study mô tả kịch...Phân tích thiết kế hệ thống hướng đối tượng, làm doc và case study mô tả kịch...
Phân tích thiết kế hệ thống hướng đối tượng, làm doc và case study mô tả kịch...
 
Tieng Anh chuyen nganh CNTT
Tieng Anh chuyen nganh CNTTTieng Anh chuyen nganh CNTT
Tieng Anh chuyen nganh CNTT
 
Báo cáo đồ án học phần 2: Tìm hiểu và viết ứng dụng tra từ điển viết tắt của ...
Báo cáo đồ án học phần 2: Tìm hiểu và viết ứng dụng tra từ điển viết tắt của ...Báo cáo đồ án học phần 2: Tìm hiểu và viết ứng dụng tra từ điển viết tắt của ...
Báo cáo đồ án học phần 2: Tìm hiểu và viết ứng dụng tra từ điển viết tắt của ...
 
Access Nguyen Son Hai
Access Nguyen Son HaiAccess Nguyen Son Hai
Access Nguyen Son Hai
 
Đề tài Quản lý tiền điện
Đề tài Quản lý tiền điệnĐề tài Quản lý tiền điện
Đề tài Quản lý tiền điện
 
Báo cáo thực tập tại Trung Tâm athena
Báo cáo thực tập tại Trung Tâm athenaBáo cáo thực tập tại Trung Tâm athena
Báo cáo thực tập tại Trung Tâm athena
 

Similar to Thương mại điện tử

Web Architecture
Web ArchitectureWeb Architecture
Web Architecture
Hiep Luong
 
Tailieu.vncty.com giao-trinh-sql-2000
Tailieu.vncty.com   giao-trinh-sql-2000Tailieu.vncty.com   giao-trinh-sql-2000
Tailieu.vncty.com giao-trinh-sql-2000
Trần Đức Anh
 
Mvc 3
Mvc 3Mvc 3
Mvc 3
Lê Tài
 
Báo cáo kĩ thuật phần mềm và ứng dụng
Báo cáo kĩ thuật phần mềm và ứng dụngBáo cáo kĩ thuật phần mềm và ứng dụng
Báo cáo kĩ thuật phần mềm và ứng dụngVượng Đặng
 
chuong 1 - Tong quan ve Lap trinh mang.ppt
chuong 1 - Tong quan ve Lap trinh mang.pptchuong 1 - Tong quan ve Lap trinh mang.ppt
chuong 1 - Tong quan ve Lap trinh mang.ppt
khamgo1191
 
Hoc sql server 2000
Hoc sql server 2000Hoc sql server 2000
Hoc sql server 2000
phamhuuai
 
Book storeonline it-slideshares.blogspot.com
Book storeonline it-slideshares.blogspot.comBook storeonline it-slideshares.blogspot.com
Book storeonline it-slideshares.blogspot.com
phanleson
 
Bao cao web cake php
Bao cao web cake phpBao cao web cake php
Bao cao web cake php
laonap166
 
Luận văn: Tích hợp dịch vụ nghiệp vụ ngân hàng theo mô hình soa
Luận văn: Tích hợp dịch vụ nghiệp vụ ngân hàng theo mô hình soaLuận văn: Tích hợp dịch vụ nghiệp vụ ngân hàng theo mô hình soa
Luận văn: Tích hợp dịch vụ nghiệp vụ ngân hàng theo mô hình soa
Dịch vụ viết bài trọn gói ZALO 0917193864
 
SAP BASIS Overview (Vietnamese)
SAP BASIS Overview (Vietnamese)SAP BASIS Overview (Vietnamese)
SAP BASIS Overview (Vietnamese)
Triet Hoang
 
Gt he quan_tri_csdl_ms_sql_server
Gt he quan_tri_csdl_ms_sql_serverGt he quan_tri_csdl_ms_sql_server
Gt he quan_tri_csdl_ms_sql_server
anhanh81
 
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
LmTrn286060
 
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
LmTrn286060
 
Asp.net mvc framework qua cac vi du
Asp.net mvc framework  qua cac vi duAsp.net mvc framework  qua cac vi du
Asp.net mvc framework qua cac vi du
Kim Hyun Hai
 
Lập trình web asp.net MVC
Lập trình web asp.net MVCLập trình web asp.net MVC
Lập trình web asp.net MVC
MasterCode.vn
 

Similar to Thương mại điện tử (20)

Mo hinh-3-lop
Mo hinh-3-lopMo hinh-3-lop
Mo hinh-3-lop
 
Web Architecture
Web ArchitectureWeb Architecture
Web Architecture
 
Tailieu.vncty.com giao-trinh-sql-2000
Tailieu.vncty.com   giao-trinh-sql-2000Tailieu.vncty.com   giao-trinh-sql-2000
Tailieu.vncty.com giao-trinh-sql-2000
 
Mvc 3
Mvc 3Mvc 3
Mvc 3
 
Báo cáo kĩ thuật phần mềm và ứng dụng
Báo cáo kĩ thuật phần mềm và ứng dụngBáo cáo kĩ thuật phần mềm và ứng dụng
Báo cáo kĩ thuật phần mềm và ứng dụng
 
chuong 1 - Tong quan ve Lap trinh mang.ppt
chuong 1 - Tong quan ve Lap trinh mang.pptchuong 1 - Tong quan ve Lap trinh mang.ppt
chuong 1 - Tong quan ve Lap trinh mang.ppt
 
Hoc sql server 2000
Hoc sql server 2000Hoc sql server 2000
Hoc sql server 2000
 
Book storeonline it-slideshares.blogspot.com
Book storeonline it-slideshares.blogspot.comBook storeonline it-slideshares.blogspot.com
Book storeonline it-slideshares.blogspot.com
 
Tu hoc SQL 2000
Tu hoc SQL 2000Tu hoc SQL 2000
Tu hoc SQL 2000
 
Bao cao web cake php
Bao cao web cake phpBao cao web cake php
Bao cao web cake php
 
04 de cuong
04 de cuong04 de cuong
04 de cuong
 
Luận văn: Tích hợp dịch vụ nghiệp vụ ngân hàng theo mô hình soa
Luận văn: Tích hợp dịch vụ nghiệp vụ ngân hàng theo mô hình soaLuận văn: Tích hợp dịch vụ nghiệp vụ ngân hàng theo mô hình soa
Luận văn: Tích hợp dịch vụ nghiệp vụ ngân hàng theo mô hình soa
 
SAP BASIS Overview (Vietnamese)
SAP BASIS Overview (Vietnamese)SAP BASIS Overview (Vietnamese)
SAP BASIS Overview (Vietnamese)
 
Asp.net 3.5 _1
Asp.net 3.5 _1Asp.net 3.5 _1
Asp.net 3.5 _1
 
Gt he quan_tri_csdl_ms_sql_server
Gt he quan_tri_csdl_ms_sql_serverGt he quan_tri_csdl_ms_sql_server
Gt he quan_tri_csdl_ms_sql_server
 
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
 
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
 
Phan 1 sv
Phan 1   svPhan 1   sv
Phan 1 sv
 
Asp.net mvc framework qua cac vi du
Asp.net mvc framework  qua cac vi duAsp.net mvc framework  qua cac vi du
Asp.net mvc framework qua cac vi du
 
Lập trình web asp.net MVC
Lập trình web asp.net MVCLập trình web asp.net MVC
Lập trình web asp.net MVC
 

Recently uploaded

GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdfGIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
Điện Lạnh Bách Khoa Hà Nội
 
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
duykhoacao
 
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nayẢnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
chinhkt50
 
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
Nguyen Thanh Tu Collection
 
AV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in englishAV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in english
Qucbo964093
 
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
Nguyen Thanh Tu Collection
 
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
ngocnguyensp1
 
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
https://www.facebook.com/garmentspace
 
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdfBAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
phamthuhoai20102005
 
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptxDẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
nvlinhchi1612
 

Recently uploaded (10)

GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdfGIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
 
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
 
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nayẢnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
 
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
 
AV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in englishAV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in english
 
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
 
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
 
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
 
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdfBAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
 
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptxDẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
 

Thương mại điện tử

  • 1. Mô hình 3 lớp (3 layers) gồm:<br />Presentation Layer<br />Lớp này làm nhiệm vụ giao tiếp với người dùng cuối để thu thập dữ liệu và hiển thị kết quả/dữ liệu thông qua các thành phần trong giao diện người sử dụng. Lớp này sẽ sử dụng các dịch vụ do lớp Business Logic cung cấp. Trong .NET thì bạn có thể dùngWindows Forms, ASP.NET hay Mobile Forms để hiện thực lớp này.<br />Business Logic Layer<br />Lớp này thực hiện các nghiệp vụ chính của hệ thống, sử dụng các dịch vụ do lớp Data Access cung cấp, và cung cấp các dịch vụ cho lớp Presentation. Lớp này cũng có thể sử dụng các dịch vụ của các nhà cung cấp thứ 3 (3rd parties) để thực hiện công việc của mình (ví dụ như sử dụng dịch vụ của các cổng thanh tóan trực tuyến như VeriSign, Paypal…).<br />Data Access Layer<br />Lớp này thực hiện các nghiệp vụ liên quan đến lưu trữ và truy xuất dữ liệu của ứng dụng. Thường lớp này sẽ sử dụng các dịch vụ của các hệ quản trị cơ sở dữ liệu như SQL Server, Oracle,… để thực hiện nhiệm vụ của mình. Trong lớp này có các thành phần chính là Data Access Logic, Data Sources, Servive Agents).<br />Nhiệm vụ của từng lớp :<br />3 lơp gồm :một tầng xử lý các kết nối tối CSDL : các xử lý liên quan đến đọc và cập nhật dữ liệu sẽ khai báo và thực hiện ở đâymột tầng thực hiện các thao tác xử lý : các xử lý liên quan đến các giải thuật để tính ra kết quả mong muốn sẽ được liệt vô phần nàytầng còn lại để thực hiện các xử lý liên quan đến phần trình diễn (xuất, và định dạng kết quả ra màn hình)<br />3 tier: Dùng cho mô hình client-server, mỗi tier thường là 1 platform riêng biệt.3 layer: Thường cùng 1 platform, nó giống cách tổ chức mã lệnh một cách rạch ròi.Điểm khác biệt dễ nhận thấy:Mô hình 3 tier có dạng tuyến tínhMô hình MVC có hình tam giác ^.^tất nhiên 2 mô hình này có những điểm tương đồng, nhưng nó 0 phải là 1.<br />Lưu ý 3 layer và 3 tier là hai khai niệm khác nhau, nói đến layer là nói đến cách tổ chức ứng dụng, còn tier là ám chỉ sự tách bạch về mặt vật lý do vậy ntier app cần n bản package cho mỗi tier.khi chúng ta làm web app thì thực sự đã tiếp cận với kiến trúc client -server, và server tier chính là web server như ISS, TOMCAT, JBOSS còn win form application thì phải thiết kế server application , các tier trao đổi dữ kiện thông qua các technique : COBRA, DCOM..WCF..etc<br />Mô hình tầng khác lớp :<br />3-Tier là mô hình 3 tầng có nghĩa là nó gồm những tầng sau: Tầng thứ nhất là tầng DAO tầng thứ 2 là tầng SERVER tầng thứ 3 là tầng Client.Trong đó tâng DAO là cơ sở dữ liệu của bạn, tầng SERVER là tầng có chứa mô hình 3-LayerCòn mô hình 3-Layer là mô hình 3 lớp nó gồm những lớp sau: lớp thứ nhất là lớp DataAccess lớp thứ 2 là lớp Bussiness và lớp thứ 3 là lớp GUI, và những lớp này nằm trong tầng SERVER của mô hình 3-Tier...Trong đó DataAccess là lớp truy suất đến cơ sở dữ liệu, Còn lớp Bussiness là lớp trung gian để giao tiếp giữa lớp GUI với lớp DA.<br />N-Tier is more about where the code / processes run (physical location), and N-Layer is more about how the code is logically groupedN-Tier là sự phân nhóm dựa trên việc code chạy ở đâu.Còn N-Layer là sự phân nhóm dựa trên chức năng của code.MVC là 1 trong nhiều cách phân nhóm khác, ở MVC thì business logic có thể nằm trong cả M và C, tùy vào việc việc business logic nằm ít hay nhiều ở C mà có thể còn có những thứ phân loại phức tạp hơn như fat Model, thin Controller ... Ngoài ra còn cả những mô hình như SOA nữa.<br />MVC :<br />Model-view-controller (MVC) là một mẫu kiến trúc được dùng trong kỹ thuật phần mềm. Trong các ứng dụng máy tính phức tạp nó đại diện cho một lượng lớn dữ liệu đối với người dùng, một nhà phát triển thường mong muốn tách dữ liệu (Model) và giao diện người dùng (View) riêng ra để có thể thay đổi giao diện người dùng mà không ảnh hưởng đến thao tác dữ liệu và dữ liệu có thể tổ chức lại mà không thay đổi giao diện người dùng. MVC giải quyết vấn đề này bằng cách tăng gấp đôi truy cập dữ liệu và logic công việc từ biểu diễn dữ liệu và tương tác người dùng, bằng cách giới thiệu một thành phần trung gian: bộ điều khiển (Controller).<br />1. LINQ là gì ?<br />LINQ là một tập hợp các thành phần mở rộng cho phép viết các câu truy vấn dữ liệu ngay trong một ngôn ngữ lập trình, như C# hoặc VB.NET.<br />LINQ là từ viết tắt của “Language-Integrated Query”<br />2. Tôi cần có gì để lập trình LINQ ?<br />LINQ có từ bản .NET 3.5, vậy nên tối thiểu chương trình của bạn phải chạy trên nền tảng này.<br />Visual Studio 2008, hoặc các phiên bản Express của nó là các bộ công cụ phát triển tiêu biểu cho ứng dụng dùng LINQ.<br />Tải về Visual Studio 2008 tại đây.<br />Tải về Visual Studio Express tại đây.<br />3. LINQ và ADO.NET khác nhau chỗ nào ?<br />Nôm na, LINQ là tập mở rộng cho phép viết các câu truy vấn ngay trong các ngôn ngữ lập trình. Nó cho phép bạn làm việc với các kiểu tập hợp dữ liệu, như XML, collection, array,… và cả CSDL.<br />ADO.NET là công nghệ cho phép các ứng dụng có thể kết nối và làm việc với các loại CSDL khác nhau (truy vấn, cập nhật, thêm, xóa, gọi thủ tục…).<br />Bản thân LINQ không phải là một công nghệ được tạo ra để thay thế ADO.NET, bạn có thể làm việc với LINQ mà không dính gì đến CSDL. Tuy nhiên, LINQ to SQL, là một phần mở rộng của LINQ, cho phép bạn có thể làm việc được với CSDL SQL Server, trong trường hợp này thì khi viết bạn có thể bỏ qua các câu lệnh ADO.NET mà chỉ quan tâm tới cú pháp mà LINQ cung cấp.<br />Nhớ rằng dù bạn không hề dùng đến ADO.NET khi viết chương trình sử dụng LINQ to SQL, nhưng đằng sau nó, ADO.NET vẫn được dùng để thực hiện kết nối, gửi các câu lệnh, các lời gọi thủ tục…<br />4. LINQ có hỗ trợ Unicode không ?<br />Có, LINQ là một thành phần của .NET, và như vậy, LINQ hỗ trợ Unicode một cách hoàn toàn tự nhiên, bạn có thể làm các thao tác chèn, sửa dữ liệu với tiếng Việt mà không cần cấu hình thêm. Tất nhiên, khi thiết kế CSDL, bạn vẫn phải chọn kiểu dữ liệu (NVARCHAR) và collation phù hợp để LINQ có thể làm việc một cách đúng đắn.<br />5. Tôi không thể tìm thấy một số phương thức (Add, RemoveAll…) như các ví dụ trong loạt bài “LINQ to SQL”<br />Kể từ bản RTM, các phương thức dùng cho thêm và xóa entity đã được đổi tên, cụ thể như sau:<br />Add đổi thành InsertOnSubmit<br />AddAll đổi thành InsertAllOnSubmit<br />Remove đổi thành DeleteOnSubmit<br />RemoveAll đổi thành DeleteAllOnSubmit<br />6. LINQ và LINQ to SQL liên quan gì với nhau?<br />LINQ là một tập hợp các công nghệ cho phép bạn thay đổi cách truy xuất vào các nguồn dữ liệu ngay từ cấp độ ngôn ngữ, các câu truy vấn LINQ có dạng tương tự SQL. LINQ hỗ trợ hầu hết các dạng nguồn dữ liệu khác nhau, bao gồm cả các đối tượng trong bộ nhớ (LINQ to Objects), XML (LINQ to XML), CSDL SQL Server (LINQ to SQL)…<br />Như vậy LINQ to SQL là phần hỗ trợ việc truy cập vào CSDL SQL Server sử dụng LINQ.<br />7. So sánh LINQ to SQL với Entity Framework:<br />Bạn xem bài viết tại đây: http://namdh.wordpress.com/2010/06/30/comparing-linq-to-sql-and-ado-net-entity-framework/<br />8. Tôi muốn lập trình LINQ với các CSDL khác SQL Server thì phải làm thế nào?<br />Bạn có thể dùng LINQ với Oracle nhờ LINQ to Oracle: http://linqtooracle.codeplex.com/<br />Bạn cũng có thể tham khảo DbLinq Project: http://code2code.net/DB_Linq/<br />9. Biểu thức Lambda là gì?<br />Bạn có thể đọc bài viết về lambda tại đây: http://namdh.wordpress.com/2009/07/22/lambda-expression/<br />10. Tôi chỉ muốn trả về một tập giới hạn các cột cần thiết thì phải viết thế nào?<br />Thông thường, để trả về đối tượng chứa toàn bộ các cột trong bảng, bạn viết: <br />var r = from c in myContext.Customers select c;<br />Để lấy về một số cột cụ thể nào đó, bạn có thể viết:<br />var r = from c in myContext.Customers select new {c.Id, c.Name, c.Address};<br />Bạn cũng có thể dùng lại một lớp đã khai báo từ trước:<br />var r = from c in myContext.Customers select new CustomerInfo {Id = c.Id,  Name = c.Name, Address = c.Address};<br />1. Mô hình 3 tầng (3-tiers) là gì?<br />Theo wikipedia thì:<br />“3-tiers là một kiến trúc kiểu client/server mà trong đó giao diện người dùng (UI-user interface), các quy tắc xử lý(BR-business rule hay BL-business logic), và việc lưu trữ dữ liệu được phát triển như những module độc lập, và hầu hết là được duy trì trên các nền tảng độc lập, và mô hình 3 tầng (3-tiers) được coi là một kiến trúc phần mềm và là một mẫu thiết kế.” (dịch lại từ wikipedia tiếng Anh).<br />Như vậy, ta có thể mô hình này phân tách ứng dụng ra làm 3 module riêng biệt, bao gồm:<br />- Tầng Presentation: được dùng để giao tiếp với người dùng, nhiệm vụ chính là hiển thị dữ liệu và nhận dữ liệu từ người dùng.<br />- Tầng Business Logic: nhiệm vụ chính là cung cấp các chức năng của phần mềm.<br />- Tầng Data: lưu trữ dữ liệu, cho phép lớp Business Logic có thể tìm kiếm, trích xuất, cập nhật… dữ liệu.<br />2. Tại sao là 3-tiers mà không phải là 3-layers?<br />Khi dùng từ layer, chúng ta nói tới việc phân chia ứng dụng thành các thành phần một cách logic theo chức năng hoặc theo vai trò, điều này giúp phần mềm của bạn có cấu trúc sáng sủa, dễ dùng lại, từ đó giúp việc phát triển và bảo trì dễ dàng hơn. Các layer khác nhau khi được thực thi vẫn có thể nằm trong cùng một vùng bộ nhớ của một process, và hiển nhiên việc giao tiếp giữa 2 layer có thể không phải là giao tiếp giữa 2 process, đồng nghĩa với việc chúng không liên quan tới mô hình client/server.<br />Trái lại, tier liên quan đến cách phân chia một cách vật lý các thành phần trên các máy tính khác nhau.<br />Điều làm nhiều người nhầm lẫn giữa layer và tier là chúng có cùng cách phân chia (presentation, business, data), tuy nhiên trên thực tế chúng khác nhau. Vì cách phân chia như trên nên 1 tier có thể chứa nhiều hơn 1 layer.<br />3. 3-tiers có những ưu và nhược điểm gì?<br />3-tiers là một kiến trúc phần mềm, có nghĩa là bạn có thể dùng nó để xây dựng nên bộ khung tổng thể của ứng dụng. Tuy nhiên bạn cần chú ý những ưu và nhược điểm sau đây để áp dụng nó một cách đúng đắn.<br />Ưu điểm:<br />- Dễ dàng mở rộng, thay đổi quy mô của hệ thống: Khi cần tải lớn, người quản trị có thể dễ dàng thêm các máy chủ vào nhóm, hoặc lấy bớt ra trong trường hợp ngược lại.<br />Nhược điểm:<br />- Việc truyền dữ liệu giữa các tầng sẽ chậm hơn vì phải truyền giữa các tiến trình khác nhau (IPC), dữ liệu cần phải được đóng gói -> truyền đi -> mở gói trước khi có thể dùng được.<br />- Việc phát triển ứng dụng phức tạp hơn.<br />4. Những công nghệ nào hỗ trợ xây dựng các ứng dụng 3-tiers?<br />Tùy thuộc vào nền tảng, bạn có thể chọn một trong các công nghệ như EJB (J2EE), COM+ (Windows), hay cũng có thể dùng các máy chủ web như nền tảng xây dựng lớp giữa (dùng webservice). Tuy nhiên, EJB và COM+ là hai tùy chọn tốt nhất vì nó có nhiều công nghệ hỗ trợ như Object Pooling, Authentication và Authority, Resource management, Remote Object Access, Transaction…<br />Các công nghệ truyền thông điệp như JMS hay MSMQ cũng hỗ trợ nhiều trong việc tạo các lời gọi không đồng bộ.<br />5. Các ứng dụng máy chủ cơ sở dữ liệu có liên quan gì đến mô hình này không?<br />Có, nó đóng vai trò tầng Data.<br />Bản thân khi hoạt động, máy chủ CSDL trở thành 1 phần không thể thiếu trong hệ thống, nó chính là nơi chứa dữ liệu của bạn. Việc dùng một hệ CSDL sẵn có là việc nên làm vì nó giúp chúng ta rất nhiều công sức, nhưng điều đó không có nghĩa là nó không thuộc vào hệ thống của chúng ta, chỉ khác ở chỗ đây là một tầng Data được xây dựng sẵn.<br />6. Lớp Data Access Layer (DAL) thuộc tầng nào?<br />Lớp Business Logic.<br />Trái với nhiều người nghĩ, cứ cái gì có chữ Data thì nó phải thuộc lớp 3, tuy nhiên vì DAL chỉ đóng vai trò truy vấn, chứ bản thân nó không cung cấp dữ liệu, và nó vẫn phải được thực thi bởi các Business Object, vậy nên trong đa số trường hợp nó sẽ nằm trong lớp 2 (một số thiết kế tách nó riêng thành 1 tier).<br />Nên nhớ rằng việc tách riêng ra một DAL giúp bạn có một thiết kế tốt hơn, nhưng không phải là bắt buộc. Và việc tự tạo một DAL với việc dùng chung một tập các lớp truy xuất dữ liệu được cung cấp bởi một công nghệ/công cụ có sẵn như LINQ to SQL, NHibernate hay Entity Framework không có gì khác nhau về kiến trúc hệ thống.<br />Có lẽ vì sự tồn tại của DAL mà rất nhiều người hiểu nhầm giữa 3-tiers và 3-layers.<br />7. Tôi nên kiểm tra dữ liệu nhập bởi người dùng ở lớp nào?<br />Kiểm tra dữ liệu ở lớp giao diện giúp giảm tải cho lớp giữa, phản hồi cũng nhanh hơn. Tuy nhiên sẽ khó có thể đảm bảo sẽ không có kẽ hở để những dữ liệu không hợp lệ được chuyển đến lớp Business Logic và thậm chí lớp Data, vậy nên thông thường việc kiểm tra nên được đặt trong tất cả các lớp tùy thuộc vào từng loại dữ liệu và phép kiểm tra. <br />8. Tôi có một ứng dụng, nó không có giao diện người dùng vì nó chỉ nhận dữ liệu từ các ứng dụng khác, tôi có thể viết theo mô hình 3-tiers được không?<br />Có, từ Presentation ở đây không mang ý nghĩa giao diện tương tác với người dùng, mà nó có nghĩa rộng hơn là phần tương tác với các hệ thống bên ngoài, ví dụ Presentation có thể là phần kết nối để truy xuất dữ liệu đến một hệ thống khác, hay một cổng để tiếp nhận các lệnh do một hệ thống khác chuyển đến.<br />9. Tôi nên đọc thêm tài liệu nào để hiểu kỹ hơn về mô hình 3 lớp và cách dùng hiệu quả các công nghệ như EJB và COM+?<br />Bạn có thể đọc thêm 2 quyển:<br />- Designing Enterprise Applications with the J2EE Platform, Second Edition, dành cho người làm J2EE (http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/).<br />- Application Architecture Guide 2.0, quyển này của các bác MS (http://www.codeplex.com/AppArchGuide/)<br />Ngay cả khi chưa viết ứng dụng mới mô hình 3-tiers thì bạn cũng RẤT RẤT RẤT nên đọc 2 quyển trên.<br />10. 3-tiers có giống MVC không?<br />Không, trong 3-tiers, quá trình đi theo chiều dọc, bắt đầu từ Presentation, sang BL, rồi tới Data, và từ Data, chạy ngược lại BL rồi quay ra lại Presentation.<br />Còn trong MVC, dữ liệu được nhận bởi View, View sẽ chuyển cho Controller cập nhật vào Model, rồi sau đó dữ liệu trong Model sẽ được đưa lại cho View mà không thông qua Controller, do vậy luồng xử lý này có hình tam giác.<br />So sánh MVC và 3-layer/tier:Giống nhau:- Cả hai đều để tách rời programming core/business logic ra khỏi những phụ thuộc về tài nguyên và môi trường.- Trong một ứng dụng nhỏ, MVC thể hiện thế nào? Presentation thể hiện giống như chức năng của View và Controller. Business và Database thể hiện giống như chức năng của Model. Như thế nhìn ở góc độ này, thì MVC tương đương với 3-layer (tất nhiên có chồng chéo như hình vẽ)Khác nhau:Trong 3-layers, quá trình đi theo chiều dọc, bắt đầu từ Presentation, sang BL, rồi tới Data, và từ Data, chạy ngược lại BL rồi quay ra lại Presentation.Còn trong mẫu Supervising Controller, dữ liệu được nhận bởi View, View sẽ chuyển cho Controller cập nhật vào Model, rồi sau đó dữ liệu trong Model sẽ được đưa lại cho View mà không thông qua Controller, do vậy luồng xử lý này có hình tam giác.<br />hông thường khi áp dụng thì người ta kết hợp cả 2: MVC được áp dụng bên phía Client. Sau đó 3 tiers được áp dụng như bình thường trên hệ thống client-server. Việc có sử dụng hay là có bọc lẫn nhau giữa MVC và 3-tier là không hoàn toàn bắt buộc, ta có thể sử dụng MVC mà không cần đến 3-tier (với những ứng dụng nhỏ) [right][size=1][url=http://congdongso.com/showthread.php?t=2782&p=7566&viewfull=1#post7566]Copyright © Cộng Đồng Số[/url][/size][/right]  <br />MÔ HÌNH ỨNG DỤNG Client/Server 3 lớp(business logic 3-Tier)Nhược điểm của mô hình 2 lớp:- Tính toán tập trung ở phía Client (Fat client – Thin Server):+ Khó nâng cấp vì phải cập nhật lại phần mềm ở toàn bộ các client.+ Do mọi thao tác trên CSDL đều thông qua mạng giữa client và server nên tốc độ của hệ thống sẽ chậm đi.- Tính toán tập trung ở phía Server (Fat Server – Thin Client): + Việc sửa đổi hoặc mở rộng sever trở nên không khả thi và tốn kém vì mã lệnh bị trộn giữa nghiệp vụ và cơ sở dữ liệu.+ Server dễ bị quá tải do phải đáp ứng quá nhiều nhiệm vụ (cả bussiness logic và database). Nếu chia ra nhiều server thì dữ liệu bị phân tán.Mô hình 3 lớp:Mô hình này bổ sung một server tương tác giữa Client và Database Server gọi là Application Server.-Client: Là các web Browser đã có sẵn (như Internet Explorer, Firefox, Opera ...) và chỉ hiểu ngôn ngữ HTML (hiện các Browser mới hiểu thêm được cả XHTML, XML). Một Browser có thể dùng để truy cập nhiều trang web và không thể thực hiện chức năng xử lý tính toán nào.-Application Server hay Web Server: Web Server (máy phục vụ Web): máy tính mà trên đó cài đặt phần mềm phục vụ Web, đôi khi người ta cũng gọi chính phần mềm đó là Web Server. Tất cả các Web Server đều hiểu và chạy được các file *.htm và *.html, tuy nhiên mỗi Web Server lại phục vụ một số kiểu file chuyên biệt chẳng hạn như IIS của Microsoft dành cho *.asp và *.aspx, Apache dành cho *.php, Sun Java System Web Server của SUN dành cho *.jsp ... -Thực hiện các yêu cầu mà Web Browser gởi tới.- Kết quả thực hiện của các đối tượng chạy trên Web Server phải ở dạng HTML, XHTML, XML.-Database Server (máy chủ cơ sở dữ liệu):Máy tính mà trên đó có cài đặt Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS). Chúng ta có một số RDBMS chẳng hạn như: SQL Server, MySQL, Oracle ... Thực hiện mọi thao tác trên cơ sở dữ liệu do Web Server yêu cầu.Ưu điểm của mô hình 3 lớp:- Hỗ trợ nhiều người dùng hơn.- Loại bỏ hoàn toàn sự phụ thuộc của Client.- Business logic được chứa trong lớp Application Server nên có những ưu điểm:+ Khả năng bảo mật và an toàn hệ thống tốt hơn: Lớp GUI không hề chứa mã lệnh thao tác trực tiếp trên CSDL, mà chỉ chứa các yêu cầu phục vụ đến lớp thứ 2. Vì vậy nếu nhà phát triển phân tích và xây dựng cácphương thức phục vụ ở lớp business logic kỹ lưỡng và an toàn thì hệ thống sẽ đạt độ bảo mật rất cao.+ Dễ mở rộng: bằng cách dùng nhiều Application Server (không dùng nhiều Database Server vì khi đó dữ liệu sẽ bị phân tán).- Dễ quản lý: việc nâng cấp, sửa đổi có thể thực hiện ở tầng vật lý tương ứng.Nhược điểm của mô hình 3 lớp:- Tốn nhiều công sức cài đặt (nhiều server) hơn.<br />Lưu ý 3-layer và 3-tier là hai khai niệm khác nhau, nói đến layer là nói đến cách tổ chức ứng dụng (vd các package trong java), còn tier là ám chỉ sự tách bạch về mặt vật lý ( client - app server - data server).3 tầng cũng chưa phải là nhiều. Hiện tại thì người ta còn chia nhỏ BLL ra thành nhiều tầng nữa. Do đó khái niệm đúng là ta dùng n-tier trong web application<br />Định nghĩa :<br />sự phân chia lớp (layer) có tính logic (mỗi layer có 1 công việc). sự phân chia tầng (tier) có tính vật lý (physical): là mô hình client-server (mỗi tier có thể đặt chung 1 nơi hoặc nhiều nơi, kết nối với nhau qua Web services, WCF, Remoting...)<br />Kiến trúc 3-Layered Phương cách này ám chỉ sự phân chia trách nhiệm trong logic các thành phần. Chúng là: Presentation, nơi hiển thị giao diện nhập dữ liệu và hiển thị kết quả. Business, còn gọi là Domain Logic, là nơi chứa phần lõi logic của ứng dụng. Ở đây chứa toàn những danh từ nghiệp vụ: khách hàng, hóa đơn, lợi tức, v.v. Không liên quan trực tiếp tới kỹ thuật hiển thị hoặc dữ liệu lưu trữ. Data Access, chứa tất cả những xử lý liên quan đến kỹ thuật lưu trữ (kết nối cơ sở dữ liệu, bảng, bản ghi, v.v.). Mặc dù có thể phân phối các phần tách biệt về vật lý, nhưng không bắt buộc. Lợi ích thực tế của kiến trúc này là mang lại tính tái sử dụng và dễ bảo trì.<br />Kiến trúc 3-Tier Trong phương cách này, chúng ta phân tách vật lý các hoạt động. Client (Front-end, Channels), bao gồm một tập hợp hạ tầng phần cứng và phần mềm khác nhau để có thể thực thi giao diện người dùng của ứng dụng. Application Server(Middleware), có thể gồm một hay nhiều máy chủ, nơi tiếp nhận yêu cầu từ Client qua giao thức tuyền và thông điệp. Back-end, tập hợp đa dạng các cơ sở hạ tầng hỗ trợ. Chúng ta có thể tìm thấy các ví dụ như cơ sở dữ liệu (trong lưu trữ cố định), hoặc các hệ thống lưu trữ trên máy tính lớn. Ứng dụng chủ ở đây đóng vai trò tập trung các dịch vụ cấp thấp (giao tiếp, bảo mật, v.v.), nối các kênh khác nhau vào mảng khuất của hệ thống.<br />Php : codeigniter,cakePHP,zend framework,symfony,yii framework..<br />java: struts, springmvc, jsf<br />LINQ hoạt động như thế nào?<br />Các bước sử dụng LINQ: <br />• Để sử dụng LINQ, bạn tạo một biểu thức LINQ. <br />• Giá trị trả về từ một biểu thức LINQ là một đối tượng iterator hiện thực IEnumerable<T> <br />• Khi bạn lặp qua đối tượng iterator, LINQ mới thực sự thực hiện công việc. Cơ chế này được gọi là Deferred Execution. <br />Vậy LINQ thực thi các biểu thức như thế nào? Câu trả lời phụ thuộc vào loại dữ liệu mà bạn truy vấn. Ví dụ như LINQ to SQL chuyển các biểu thức LINQ thành các lệnh cơ sở dữ liệu, trong khi với LINQ to Objects, mọi chuyện đơn giản hơn nhiều. Chẳng hạn như trong ví dụ trên, LINQ thực ra sử dụng một vòng lặp foreach để quét qua tập hợp, Mặc dù điều này nghe có vẻ không ấn tượng, lợi ích của LINQ nằm ở chỗ nó mang đến một cách linh động để định nghĩa các câu truy vấn có thể áp dụng được cho nhiều nguồn dữ liệu khác nhau, bao gồm các tập hợp trên bộ nhớ, XML, Dataset…<br />7) Trong MVC có the dùng ntiers không ?<br />trong mvc có thể dùng ntiers.<br />Ngược lại thì không<br />8) Trong ntiers có the dùng mvc không ?<br />Ngược lại thì không<br />9) Linq là gì ?<br />Khái niệm 1 :<br />Linq (Language Integrated Query) – ngôn ngữ truy vấn được tích hợp vào ngôn ngữ lập trình.<br />-Linq là một thành phần trong gói .Net của hãng Microsoft .<br />Linq định nghĩa là một tập hợp những toán tử truy vấn có thể sử dụng để truy vấn (loc dữ liệu) từ nhũng lớp dữ liệu chuẩn (XML,CSDL quan hệ ,..).Nó cho phép truy vấn đến bất cứ nguôn dữ liệu nào( nguồn dữ liệu cần đóng gói như đối tượng).<br />3) So sánh 3 tiers và 3 layer<br />Gióng nhau :- Đều chia làm ba tầng : Presentation- Business-Data.<br />Khác nhau:<br />3-Tier: - tier liên quan đến cách phân chia một cách vật lý các thành phần trên các máy tính khác nhau.<br />-3-tier là kiểu cấu trúc client-server.<br />- 1 tier có thể chưa nhiều layer.<br />+++Presentation Tier:là tầng mà người dùng tương tác với ứng dụng<br />+++Business Tier: là tầng mà Presentation và tầng Data sử dụng để giao tiếp với nó.<br />+++Data Tier: là tầng mà server để lưu trữ dữ liệu của ứng dụng.<br />3-Layer: Khi dùng từ layer, chúng ta nói tới việc phân chia ứng dụng thành các thành phần một cách logic theo chức năng hoặc theo vai trò:<br />- Các layer khác nhau khi được thực thi vẫn có thể nằm trong cùng một vùng bô nhớ của process.-> việc giao tiếp jua hai layer không phải là jao tiêp của hai process-> không lien quan đến mô hình client – server.<br />- Một layer không thể chứa tier.<br />2) Mô hình 3 tiers là gì ?<br />Mô hình 3 tier là một kiểu kiến trúc client/server mà trong đó giao diện của người dùng (UI-User interface),các quy tắc xử lý và việc lưu trữ dữ liệu được phát triển như module độc lập.Hầu hết ,được duy trì trên các nền tảng độc lập..Và mô hình 3 tầng (3 tier ) được coi như một kiến trúc phần mềm .<br />Như vậy ,mô hình 3-tier có thể chia thành ba module riêng biệt như sau:<br />-Tầng Presentation:Bao gồm máy user1,2 để giao tiếp người dùng,nhiệm vụ chính alf hiển thị dữ liệu và nhận dữ liệu từ người dùng.<br />- Tầng business logic:Cung cấp các chức năng của phần mềm<br />-Tầng data:Lưu trữ dữ liệu, cho phép lớp Business logic có thể tìm kiếm , trích,xuất,cập nhật….dữ liệu.<br />Ưu điểm:<br />- Dễ dàng mở rộng,thay đổi quy mô của hệ thống.<br />-Khi cần tải lớn,người quản trị có thể dễ dàng thêm các máy chủ vào nhóm,hay lây bớt ra nếu ngược lại.<br />Khuyêt điểm:<br />- Việc truyền dữ liệu jua các tầng sẽ chậm vì lí do phải truyền jua các tiến trình khác nhau(IPC).,,dữ liệu cần đóng gói -> truyền đi-> mở gói trước khi dùng được .<br />