SlideShare a Scribd company logo
1 of 4
KHẢO SÁT SPRING.NET
  I.    Giới thiệ u
Spring.Net là 1 framework hỗ trợ nhiều chức năng phức tạp cho việc phát triển các ứng dụng .Net.
Spring.Net giúp ta giảm số lượng dòng code, giúp ứng dụng dễ bảo trì và dễ test tự động hơn.

Spring.Net cài đặt sẵn các design pattern tiện dụng để ta có thể tích hợp dễ dàng vào ứng dụng của mình
mà không phải tốn nhiều thời gian để cài đặt lại các design pattern đó. Ví dụ như là module Inversion of
Control của Spring giúp ta tăng tính Loose Coupling cho ứng dụng của mình.

Các chức năng mà Spring.Net cung cấp :

        Dependency Injection
        Aspect-Oriented Programming
        Data access support including support for NHibenrate (ORM framework)
        Web Framework
        Integration Testing
        Validation Framework
        Dynamic Reflection
        Threading and Concurrency Support
        Object Pooling
        Expression Evaluation
        Services
        …


 II.    Các modules

Các chức năng trong Spring.Net được sắp xếp vào các module như hình sau :
1. Spring.Core

Là thành phần cơ bản nhất trong Spring cho phép ta cấu hình ứng dụng của mình bằng Dependency
Injection (Inversion of Control) .

Giả sử ta có 2 lớp A và B. Lớp A cần sử dụng 1 số phương thức của lớp B do đó A phụ thuộc vào B.

                                A                              B



Nhưng lớp B có nhiều cách cài đặt. Do đó ta sẽ thay đổi cách cài đặt lại như sau : ta tạo 1 Interface cho B,
các cách cài đặt khác của B sẽ kế thừa Interface này ( B1, B2)

                                A                              IB

                                                               B
                                     create



                                                     B1                 B2

Với cách cài đặt này ta có thể dễ dàng thay đổi việc A phụ thuộc B1 hoặc B2. Tuy nhiên để thực hiện việc
thay đổi này ta phải chỉ nh sửa lại code do đó phải biên dị ch lại chương trình gây khó khăn cho việc cấu
hình ứng dụng.
Do đó Spring.net cung cấp cho ta chức năng Dependency Injection giúp việc cấu hình này dễ dàng hơn
mà không phải biên dị ch lại chương trình. Các thông tin cấu hình được lưu trên file xml tách rời khỏi ứng
dụng. Spring.Net sẽ dựa vào thông tin này để gắn (inject) các phụ thuộc (dependency) giữa các đối tượng
giùm ta.
Ngoài ra module Spring.Core còn tích hợp 1 số chức năng sau :

   -   Expression language
   -   Validation framework
   -   Data binding framework
   -   Dynamic reflection
   -   Threading
   -   Resource abstraction

   2. Spring.Aop

Dùng module này ta có thể xây dựng ứng dụng theo kiến trúc Aspect-Oriented Programming (AOP).

   3. Spring.Data

Dùng module này giúp đạt hiệu quả cao hơn và ổn đị nh hơn khi viết chức năng kết nối dữ liệu bằng
ADO.Net

   4. Spring.Data.Nhibernate

Dùng module này để tích hợp Spring với Nhibernate

   5. Spring.Web

Moduel Spring.Web cung cấp cho ta những chức năng sau cho việc lập trình với ASP.Net

   -   Depedency Injection : hỗ trợ chức năng Dependency Injection cho các thành phần trong ASP.Net
       ( page, control, module, provider, HTTP handler)
   -   Bi-directional data binding : chức năng này giúp ta chỉ ra dữ liệu nào sẽ được đặt vào các
       control khi hiện trang web lên cho người dùng xem và các dữ liệu đó sẽ được trả lại từ các
       control khi trang web được submit. Điều này giúp ta giảm 1 lượng lớn các đoạn code chán ngắt
       nhưng dễ gây lỗi khi lập trình.
   -   Web object scopes : chức năng này giúp đị nh nghĩa các đối tượng thuộc phạm vi nào : request,
       session, application.
   -   Data model management : cung cấp chức năng tương tự nhưng tốt hơn chức năng “view state”
       của ASP.Net
   -   Validation framework : chức năng này giúp ta thực hiện việc validate trên các control dễ dàng
       mà không phải code quá nhiều
   -   Result mapping : các url thường được lưu thẳng trong code gây khó khăn cho việc thay đổi sau
       này. Với chức năng này ta sẽ đị nh nghĩa ra các tên dễ nhớ hơn và gắn nó với các url tương ứng.
       Các đị nh nghĩa này được lưu trên file xml tiện cho việc thay đổi .
   -   Localization và Master page : chức năng này giúp dễ dàng cho việc đị a phương hóa ứng dụng và
       hợ trợ master page tốt hơn
6. Spring.Web.Extension

Hỗ trợ chức năng AJAX tốt hơn

   7. Spring.Services

Kết hợp các chức năng DI và AOP cho việc sử dụng service

   8. Spring.Testing.Nunit

Dùng module này để thực hiện việc testing với NUnit


III.   Nhậ n xét
Framework Spring.Net cung cấp nhiều chức năng tiện lợi cho việc xây dưng 1 ứng dụng lớn. Nhưng để sửa
dụng tốt nó cần tìm hiểu nhiều hơn. Việc cấu hình trên file xml không đơn giản do thiếu công cụ hỗ trợ
(IntelliSense, kiểm tra lỗi …).

Ngoài ra nên tìm hiểu thêm về cách tích hợp các kiến trúc MVC, MVP với Spring.Net để xây dựng ứng
dụng tốt hơn.


IV.    Tham khảo

   -   Spring.net documentation
   -   Các bài viết về cách dung Dependency Injection và AOP của Spring.Net, kiến trúc MVC, MVP -
       http://nthoai.blogspot.com/search/label/Spring.NET
   -   Spring.Net – QnA - http://www.infoq.com/articles/SpringDotNET-QnA
   -   Dependency Injection for Loose Coupling - Billy McCafferty -
       http://www.codeproject.com/KB/architecture/DependencyInjection.aspx

More Related Content

Viewers also liked

East india securities rating advisory wc
East india securities rating advisory wcEast india securities rating advisory wc
East india securities rating advisory wcChirag Majithia
 
2b comparisons of inequality
2b comparisons of inequality2b comparisons of inequality
2b comparisons of inequalityLaura Riddle
 
C:\Fakepath\Theft Control
C:\Fakepath\Theft ControlC:\Fakepath\Theft Control
C:\Fakepath\Theft ControlNancy-jo Manney
 
Evaluation of Main Task
Evaluation of Main TaskEvaluation of Main Task
Evaluation of Main Tasknanzbx
 
ülkeler
ülkelerülkeler
ülkeleraybars
 
The Mulberry House School Improvement Plan 2013
The Mulberry House School Improvement Plan 2013The Mulberry House School Improvement Plan 2013
The Mulberry House School Improvement Plan 2013mhs2010
 
Creating Narrow Listening Libraries (Joint)
Creating Narrow Listening Libraries (Joint)Creating Narrow Listening Libraries (Joint)
Creating Narrow Listening Libraries (Joint)Anne-Marie Tanahashi
 
WordPress 3.0 and BuddyPress
WordPress 3.0 and BuddyPressWordPress 3.0 and BuddyPress
WordPress 3.0 and BuddyPressrfair404
 
Design for Networks
Design for NetworksDesign for Networks
Design for NetworksCOINs2010
 
Conception émergente
Conception émergenteConception émergente
Conception émergenteazeau
 
Poster yener fatma
Poster yener fatmaPoster yener fatma
Poster yener fatmamiroli
 
Bach cuoc tuong_ky_pho
Bach cuoc tuong_ky_phoBach cuoc tuong_ky_pho
Bach cuoc tuong_ky_phoGiang Nguyễn
 
The Big Miracle vocabulary
The Big Miracle vocabularyThe Big Miracle vocabulary
The Big Miracle vocabularymicklethwait
 
Launch of Museum Development East Midlands' Digital Strategies programme June...
Launch of Museum Development East Midlands' Digital Strategies programme June...Launch of Museum Development East Midlands' Digital Strategies programme June...
Launch of Museum Development East Midlands' Digital Strategies programme June...Fiona Marshall
 

Viewers also liked (20)

East india securities rating advisory wc
East india securities rating advisory wcEast india securities rating advisory wc
East india securities rating advisory wc
 
2b comparisons of inequality
2b comparisons of inequality2b comparisons of inequality
2b comparisons of inequality
 
C:\Fakepath\Theft Control
C:\Fakepath\Theft ControlC:\Fakepath\Theft Control
C:\Fakepath\Theft Control
 
Commission recherche, renforcement de capacité, formation - Ecovillage Madaga...
Commission recherche, renforcement de capacité, formation - Ecovillage Madaga...Commission recherche, renforcement de capacité, formation - Ecovillage Madaga...
Commission recherche, renforcement de capacité, formation - Ecovillage Madaga...
 
Lucas thankful
Lucas thankfulLucas thankful
Lucas thankful
 
Evaluation of Main Task
Evaluation of Main TaskEvaluation of Main Task
Evaluation of Main Task
 
Aprianti
ApriantiAprianti
Aprianti
 
ülkeler
ülkelerülkeler
ülkeler
 
The Mulberry House School Improvement Plan 2013
The Mulberry House School Improvement Plan 2013The Mulberry House School Improvement Plan 2013
The Mulberry House School Improvement Plan 2013
 
Creating Narrow Listening Libraries (Joint)
Creating Narrow Listening Libraries (Joint)Creating Narrow Listening Libraries (Joint)
Creating Narrow Listening Libraries (Joint)
 
WordPress 3.0 and BuddyPress
WordPress 3.0 and BuddyPressWordPress 3.0 and BuddyPress
WordPress 3.0 and BuddyPress
 
Design for Networks
Design for NetworksDesign for Networks
Design for Networks
 
Conception émergente
Conception émergenteConception émergente
Conception émergente
 
Poster yener fatma
Poster yener fatmaPoster yener fatma
Poster yener fatma
 
Ung dung web chuong 8
Ung dung web  chuong 8Ung dung web  chuong 8
Ung dung web chuong 8
 
Carson thankful
Carson thankfulCarson thankful
Carson thankful
 
Bach cuoc tuong_ky_pho
Bach cuoc tuong_ky_phoBach cuoc tuong_ky_pho
Bach cuoc tuong_ky_pho
 
The Big Miracle vocabulary
The Big Miracle vocabularyThe Big Miracle vocabulary
The Big Miracle vocabulary
 
Ellie thankful
Ellie thankfulEllie thankful
Ellie thankful
 
Launch of Museum Development East Midlands' Digital Strategies programme June...
Launch of Museum Development East Midlands' Digital Strategies programme June...Launch of Museum Development East Midlands' Digital Strategies programme June...
Launch of Museum Development East Midlands' Digital Strategies programme June...
 

Similar to 5.spring.net

429157477-Slide-Bao-Cao.pdf
429157477-Slide-Bao-Cao.pdf429157477-Slide-Bao-Cao.pdf
429157477-Slide-Bao-Cao.pdfToNguyen16
 
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 duKim Hyun Hai
 
Tổng quan về struts framework, mvc
Tổng quan về struts framework, mvc  Tổng quan về struts framework, mvc
Tổng quan về struts framework, mvc truong nguyen
 
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 MVCMasterCode.vn
 
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-2000Trần Đức Anh
 
01 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc501 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc5Thanh Nguyen
 
Web Architecture
Web ArchitectureWeb Architecture
Web ArchitectureHiep Luong
 
Tu hoc microsoft asp.net
Tu hoc microsoft asp.netTu hoc microsoft asp.net
Tu hoc microsoft asp.netnamhh1984ag
 
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ửgacon2009
 
Báo cáo thực tập chuyên nghành lập trình Android GPSGroup
Báo cáo thực tập chuyên nghành lập trình Android GPSGroupBáo cáo thực tập chuyên nghành lập trình Android GPSGroup
Báo cáo thực tập chuyên nghành lập trình Android GPSGroupTinh Ngo
 
Hoc sql server 2000
Hoc sql server 2000Hoc sql server 2000
Hoc sql server 2000phamhuuai
 
Baocao ltm
Baocao ltmBaocao ltm
Baocao ltmptlong96
 
Asp net
Asp netAsp net
Asp netquanvn
 
Giới thiệu ASP.NET Core 2.0
Giới thiệu ASP.NET Core 2.0Giới thiệu ASP.NET Core 2.0
Giới thiệu ASP.NET Core 2.0Huân Bùi Đình
 

Similar to 5.spring.net (20)

429157477-Slide-Bao-Cao.pdf
429157477-Slide-Bao-Cao.pdf429157477-Slide-Bao-Cao.pdf
429157477-Slide-Bao-Cao.pdf
 
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
 
Tổng quan về struts framework, mvc
Tổng quan về struts framework, mvc  Tổng quan về struts framework, mvc
Tổng quan về struts framework, mvc
 
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
 
Chapter9
Chapter9Chapter9
Chapter9
 
Chapter9
Chapter9Chapter9
Chapter9
 
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
 
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
 
01 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc501 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc5
 
Web Architecture
Web ArchitectureWeb Architecture
Web Architecture
 
Windows Aruze
Windows AruzeWindows Aruze
Windows Aruze
 
Tu hoc microsoft asp.net
Tu hoc microsoft asp.netTu hoc microsoft asp.net
Tu hoc microsoft asp.net
 
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ử
 
Báo cáo thực tập chuyên nghành lập trình Android GPSGroup
Báo cáo thực tập chuyên nghành lập trình Android GPSGroupBáo cáo thực tập chuyên nghành lập trình Android GPSGroup
Báo cáo thực tập chuyên nghành lập trình Android GPSGroup
 
Hoc sql server 2000
Hoc sql server 2000Hoc sql server 2000
Hoc sql server 2000
 
Tu hoc SQL 2000
Tu hoc SQL 2000Tu hoc SQL 2000
Tu hoc SQL 2000
 
Baocao ltm
Baocao ltmBaocao ltm
Baocao ltm
 
Asp net
Asp netAsp net
Asp net
 
Tu hoc asp
Tu hoc aspTu hoc asp
Tu hoc asp
 
Giới thiệu ASP.NET Core 2.0
Giới thiệu ASP.NET Core 2.0Giới thiệu ASP.NET Core 2.0
Giới thiệu ASP.NET Core 2.0
 

More from Giang Nguyễn

Php can ban_bai1_laptrinhwebphp.com
Php can ban_bai1_laptrinhwebphp.comPhp can ban_bai1_laptrinhwebphp.com
Php can ban_bai1_laptrinhwebphp.comGiang Nguyễn
 
Lap trinh web dong voi php my sql
Lap trinh web dong voi php my sqlLap trinh web dong voi php my sql
Lap trinh web dong voi php my sqlGiang Nguyễn
 
Kentcources 110109221507-phpapp01
Kentcources 110109221507-phpapp01Kentcources 110109221507-phpapp01
Kentcources 110109221507-phpapp01Giang Nguyễn
 
Hay php architect eav modeling
Hay php architect   eav modelingHay php architect   eav modeling
Hay php architect eav modelingGiang Nguyễn
 
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dong
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dongHaiphongit.com.tai lieu-php.my sql-thiet-ke-web-dong
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dongGiang Nguyễn
 
Haiphongit.com.tai lieu-laptrinh ph-pvamysql
Haiphongit.com.tai lieu-laptrinh ph-pvamysqlHaiphongit.com.tai lieu-laptrinh ph-pvamysql
Haiphongit.com.tai lieu-laptrinh ph-pvamysqlGiang Nguyễn
 
Haiphongit.com.tai lieu-learning-php-my sql
Haiphongit.com.tai lieu-learning-php-my sqlHaiphongit.com.tai lieu-learning-php-my sql
Haiphongit.com.tai lieu-learning-php-my sqlGiang Nguyễn
 
Joomla administratormanual vi_20060206
Joomla administratormanual vi_20060206Joomla administratormanual vi_20060206
Joomla administratormanual vi_20060206Giang Nguyễn
 
Canbanvethietkevalaptrinhgame
CanbanvethietkevalaptrinhgameCanbanvethietkevalaptrinhgame
CanbanvethietkevalaptrinhgameGiang Nguyễn
 
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menu
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menuBuilding websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menu
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menuGiang Nguyễn
 
Eclipse pdt indigo release review
Eclipse pdt   indigo release reviewEclipse pdt   indigo release review
Eclipse pdt indigo release reviewGiang Nguyễn
 
Bai tap lap trinh web voi joomla csau
Bai tap   lap trinh web voi joomla csauBai tap   lap trinh web voi joomla csau
Bai tap lap trinh web voi joomla csauGiang Nguyễn
 

More from Giang Nguyễn (20)

Php can ban_bai1_laptrinhwebphp.com
Php can ban_bai1_laptrinhwebphp.comPhp can ban_bai1_laptrinhwebphp.com
Php can ban_bai1_laptrinhwebphp.com
 
Os xmldomphp
Os xmldomphpOs xmldomphp
Os xmldomphp
 
Os php-7oohabits
Os php-7oohabitsOs php-7oohabits
Os php-7oohabits
 
Os php-5.3new1
Os php-5.3new1Os php-5.3new1
Os php-5.3new1
 
Lap trinh web dong voi php my sql
Lap trinh web dong voi php my sqlLap trinh web dong voi php my sql
Lap trinh web dong voi php my sql
 
Kentcources 110109221507-phpapp01
Kentcources 110109221507-phpapp01Kentcources 110109221507-phpapp01
Kentcources 110109221507-phpapp01
 
Php day4
Php day4Php day4
Php day4
 
Hay php architect eav modeling
Hay php architect   eav modelingHay php architect   eav modeling
Hay php architect eav modeling
 
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dong
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dongHaiphongit.com.tai lieu-php.my sql-thiet-ke-web-dong
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dong
 
Haiphongit.com.tai lieu-laptrinh ph-pvamysql
Haiphongit.com.tai lieu-laptrinh ph-pvamysqlHaiphongit.com.tai lieu-laptrinh ph-pvamysql
Haiphongit.com.tai lieu-laptrinh ph-pvamysql
 
Chuong07 php
Chuong07 phpChuong07 php
Chuong07 php
 
Bai th08 php voi csdl
Bai th08 php voi csdlBai th08 php voi csdl
Bai th08 php voi csdl
 
Haiphongit.com.tai lieu-learning-php-my sql
Haiphongit.com.tai lieu-learning-php-my sqlHaiphongit.com.tai lieu-learning-php-my sql
Haiphongit.com.tai lieu-learning-php-my sql
 
Hd lap pttkht2008
Hd lap pttkht2008Hd lap pttkht2008
Hd lap pttkht2008
 
Joomla administratormanual vi_20060206
Joomla administratormanual vi_20060206Joomla administratormanual vi_20060206
Joomla administratormanual vi_20060206
 
Canbanvethietkevalaptrinhgame
CanbanvethietkevalaptrinhgameCanbanvethietkevalaptrinhgame
Canbanvethietkevalaptrinhgame
 
C1
C1C1
C1
 
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menu
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menuBuilding websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menu
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menu
 
Eclipse pdt indigo release review
Eclipse pdt   indigo release reviewEclipse pdt   indigo release review
Eclipse pdt indigo release review
 
Bai tap lap trinh web voi joomla csau
Bai tap   lap trinh web voi joomla csauBai tap   lap trinh web voi joomla csau
Bai tap lap trinh web voi joomla csau
 

5.spring.net

  • 1. KHẢO SÁT SPRING.NET I. Giới thiệ u Spring.Net là 1 framework hỗ trợ nhiều chức năng phức tạp cho việc phát triển các ứng dụng .Net. Spring.Net giúp ta giảm số lượng dòng code, giúp ứng dụng dễ bảo trì và dễ test tự động hơn. Spring.Net cài đặt sẵn các design pattern tiện dụng để ta có thể tích hợp dễ dàng vào ứng dụng của mình mà không phải tốn nhiều thời gian để cài đặt lại các design pattern đó. Ví dụ như là module Inversion of Control của Spring giúp ta tăng tính Loose Coupling cho ứng dụng của mình. Các chức năng mà Spring.Net cung cấp : Dependency Injection Aspect-Oriented Programming Data access support including support for NHibenrate (ORM framework) Web Framework Integration Testing Validation Framework Dynamic Reflection Threading and Concurrency Support Object Pooling Expression Evaluation Services … II. Các modules Các chức năng trong Spring.Net được sắp xếp vào các module như hình sau :
  • 2. 1. Spring.Core Là thành phần cơ bản nhất trong Spring cho phép ta cấu hình ứng dụng của mình bằng Dependency Injection (Inversion of Control) . Giả sử ta có 2 lớp A và B. Lớp A cần sử dụng 1 số phương thức của lớp B do đó A phụ thuộc vào B. A B Nhưng lớp B có nhiều cách cài đặt. Do đó ta sẽ thay đổi cách cài đặt lại như sau : ta tạo 1 Interface cho B, các cách cài đặt khác của B sẽ kế thừa Interface này ( B1, B2) A IB B create B1 B2 Với cách cài đặt này ta có thể dễ dàng thay đổi việc A phụ thuộc B1 hoặc B2. Tuy nhiên để thực hiện việc thay đổi này ta phải chỉ nh sửa lại code do đó phải biên dị ch lại chương trình gây khó khăn cho việc cấu hình ứng dụng. Do đó Spring.net cung cấp cho ta chức năng Dependency Injection giúp việc cấu hình này dễ dàng hơn mà không phải biên dị ch lại chương trình. Các thông tin cấu hình được lưu trên file xml tách rời khỏi ứng dụng. Spring.Net sẽ dựa vào thông tin này để gắn (inject) các phụ thuộc (dependency) giữa các đối tượng giùm ta.
  • 3. Ngoài ra module Spring.Core còn tích hợp 1 số chức năng sau : - Expression language - Validation framework - Data binding framework - Dynamic reflection - Threading - Resource abstraction 2. Spring.Aop Dùng module này ta có thể xây dựng ứng dụng theo kiến trúc Aspect-Oriented Programming (AOP). 3. Spring.Data Dùng module này giúp đạt hiệu quả cao hơn và ổn đị nh hơn khi viết chức năng kết nối dữ liệu bằng ADO.Net 4. Spring.Data.Nhibernate Dùng module này để tích hợp Spring với Nhibernate 5. Spring.Web Moduel Spring.Web cung cấp cho ta những chức năng sau cho việc lập trình với ASP.Net - Depedency Injection : hỗ trợ chức năng Dependency Injection cho các thành phần trong ASP.Net ( page, control, module, provider, HTTP handler) - Bi-directional data binding : chức năng này giúp ta chỉ ra dữ liệu nào sẽ được đặt vào các control khi hiện trang web lên cho người dùng xem và các dữ liệu đó sẽ được trả lại từ các control khi trang web được submit. Điều này giúp ta giảm 1 lượng lớn các đoạn code chán ngắt nhưng dễ gây lỗi khi lập trình. - Web object scopes : chức năng này giúp đị nh nghĩa các đối tượng thuộc phạm vi nào : request, session, application. - Data model management : cung cấp chức năng tương tự nhưng tốt hơn chức năng “view state” của ASP.Net - Validation framework : chức năng này giúp ta thực hiện việc validate trên các control dễ dàng mà không phải code quá nhiều - Result mapping : các url thường được lưu thẳng trong code gây khó khăn cho việc thay đổi sau này. Với chức năng này ta sẽ đị nh nghĩa ra các tên dễ nhớ hơn và gắn nó với các url tương ứng. Các đị nh nghĩa này được lưu trên file xml tiện cho việc thay đổi . - Localization và Master page : chức năng này giúp dễ dàng cho việc đị a phương hóa ứng dụng và hợ trợ master page tốt hơn
  • 4. 6. Spring.Web.Extension Hỗ trợ chức năng AJAX tốt hơn 7. Spring.Services Kết hợp các chức năng DI và AOP cho việc sử dụng service 8. Spring.Testing.Nunit Dùng module này để thực hiện việc testing với NUnit III. Nhậ n xét Framework Spring.Net cung cấp nhiều chức năng tiện lợi cho việc xây dưng 1 ứng dụng lớn. Nhưng để sửa dụng tốt nó cần tìm hiểu nhiều hơn. Việc cấu hình trên file xml không đơn giản do thiếu công cụ hỗ trợ (IntelliSense, kiểm tra lỗi …). Ngoài ra nên tìm hiểu thêm về cách tích hợp các kiến trúc MVC, MVP với Spring.Net để xây dựng ứng dụng tốt hơn. IV. Tham khảo - Spring.net documentation - Các bài viết về cách dung Dependency Injection và AOP của Spring.Net, kiến trúc MVC, MVP - http://nthoai.blogspot.com/search/label/Spring.NET - Spring.Net – QnA - http://www.infoq.com/articles/SpringDotNET-QnA - Dependency Injection for Loose Coupling - Billy McCafferty - http://www.codeproject.com/KB/architecture/DependencyInjection.aspx