Làm sao để sếp tức điên
Tại sao lập trình viên ko chịu refactor code?
Posted by Tran Dang Khoa at 8:00 PM
Cách đây vài tuần, một người bạn nhờ tư vấn một framework để phát triển ứng dụng winform trên .NET (dùng C# để phát triển). Cái này làm mình nhớ đến một framework tương tự đã build trên Java để làm một số ứng dụng ERP ở Pissoft cách đây 3 năm.
Sau một số chọn lựa, cuối cùng cũng đã thiết kế được phần core và hoàn tất một số feature chính của framework.
Library nền tảng:
+ Spring .NET
+ NHibernate
Hướng tiếp cận:
+ Domain driven: thiết kế hệ thống từ domain entity (ko xuất phát từ RDBMS)
Những feature chính mà framework hỗ trợ:
+ Sinh tự động Database Access Layer, Business layer từ domain entity
+ Hỗ trợ sinh Hibernate mapping từ domain model (ở mức đơn giản và thông dụng nhất). Mô hình mapping và sinh code dựa trên những best practices mà mình đã làm trên những ứng dụng dựa trên NHibernate hơn 3 năm gần đây.
+ Sinh ra GUI cho các domain entity (chưa hỗ trợ cho các quan hệ nhiều nhiều).
+ Cơ chế Validation trên UI cho winform. Cái này bác Microsoft hỗ trợ chuối quá - nên buộc phải viết lại.
Vài screenshot giới thiệu đến mọi người:
Posted by Tran Dang Khoa at 12:06 PM
(Bài viết này dành cho những ai đã từng sử dụng NHibernate)
Để test những câu Hibernate query, mọi người thường sử dụng Unit test để kiểm tra hoặc viết một app đơn giản để thử nghiệm. Tuy nhiên, có một công cụ khá hữu hiệu để ta có thể làm việc này một cách dễ dàng: NHibernate Query Analyzer. Công cụ này được phát triển bởi Ayende Rahien.
Mọi người có thể download nó về tại đây: http://www.assembla.com/wiki/show/NHibernateQueryAnalyzer
Mình sử dụng NHibernate Query analyzer từ những ngày đầu tiên nó được phát triển (cách đây gần 2 năm). Qua một thời gian, tool này được upgrade lên khá nhiều và cập nhật với phiên bản của NHibernate mới (2.1).
Tool này khá hữu hiệu. Tuy nhiên hơi bị khó xài. Mà hình như tool nào do developer tự phát triển cũng đều khó xài (just funny). Đặc biệt là lúc config ở giai đoạn đầu dễ gặp nhiều vấn đề.
Dưới đây là một số step cơ bản mọi người có thể làm theo để chạy được nó:
1. Add vào assembly dll chứa các entity cần map.
True=1;False=0 true NHibernate.Driver.SqlClientDriver NHibernate.Dialect.MsSql2005Dialect NHibernate.Connection.DriverConnectionProvider Data Source=TIGER\SQLEXPRESS;Database=TinyERP;User ID=sa;Password=1234;
select user from User user left outer join user.UserGroup order by user.UserGroup.NameCó thể xem câu sql sinh ra do NHibernate ở bottom textbox.
Posted by Tran Dang Khoa at 11:20 AM
Diseño e iconos por N.Design Studio | A Blogger por Blog and Web