09/10/2018, 23:27
Giải pháp dùng CSDL cho ứng dụng web.
Thật ra cái này cũng là ý định mình chuẩn bị làm mà thôi. Các bạn xem mình trình bày thử có thích hợp ko nhé.
Nếu có cách nào hay hơn thì xin cho ý kiến để mình tham khảo.
Mình là một lập trình viên, chuyên làm các ứng dụng web nhỏ cho các doanh nghiệp.
Công nghệ mình thường sử dụng lập trình web là Asp.Net
Các website mình làm thông thưởng chỉ là trang giới thiệu sản phẩm, tin tức, đặt hàng … và một số chức năng đơn giản khác.
Từ trước tới giờ mình vẫn hay dùng CSDL là SQL Server hoặc Access.
Nhưng có khó khăn như sau:
Thật ra mình đã làm với MS-SQL rất nhiều dự án và khá rành về thằng này nhưng nếu dùng hệ CSDL MS-SQL thì host thuê thường có giá cao nên khách hàng không chịu, và việc đưa dữ liệu lên host mất nhiều thời gian nhất là các host không cho phép dùng Backup – Restore.
Nếu dùng Access làm cơ sở dữ liệu thì mình không thích lắm vì không hiểu sao các ứng dụng mình làm(asp.net với access) thì thường truy xuất rất chậm, chậm hơn nhiều so với MS-SQL(mình đã thử nhiều cách kết nối nhưng vẫn vậy. mặt dù lúc trước mình dùng asp 3.0 với Access thì chạy vẫn rất nhanh)
Mình chưa dùng asp.net làm việc với MySQL, nhưng nghe nói muốn dùng asp.net kết nối với MY-SQL thì phải cài thêm driver gì đó, mình sợ các nhà cung cấp host họ ko cài thì cũng thua.
Và cuối cùng là giải pháp mình đưa ra là dùng XML để làm CSDL cho web. Anh XML này mình cũng đã tìm hiểu và cũng biết cách [thêm – xóa – sửa hay truy xuất] với nó. Nhưng mình cũng ngại là nếu làm một website tin tức chẳn hạn, khi đó tin tức sẽ chứa nhiều bản tin, và text tương đối nhiều thì ko biết anh XML này có đảm đương nổi?, hoặc các sản phẩm có nhiều mối quan hệ cha con, nhiều cấp thì lưu trữ có khó khăn lắm hay không.
Mấy ngày qua mình suy nghĩ nhưng chưa có giải pháp nào cho các ứng dụng sau này. Rất mong ý kiến đóng góp của các bạn.
Nếu các bạn nào đã có kinh nghiệm hay gặp trường hợp như mình thì cùng nhau chia sẽ các bạn nhé.
Nếu có cách nào hay hơn thì xin cho ý kiến để mình tham khảo.
Mình là một lập trình viên, chuyên làm các ứng dụng web nhỏ cho các doanh nghiệp.
Công nghệ mình thường sử dụng lập trình web là Asp.Net
Các website mình làm thông thưởng chỉ là trang giới thiệu sản phẩm, tin tức, đặt hàng … và một số chức năng đơn giản khác.
Từ trước tới giờ mình vẫn hay dùng CSDL là SQL Server hoặc Access.
Nhưng có khó khăn như sau:
Thật ra mình đã làm với MS-SQL rất nhiều dự án và khá rành về thằng này nhưng nếu dùng hệ CSDL MS-SQL thì host thuê thường có giá cao nên khách hàng không chịu, và việc đưa dữ liệu lên host mất nhiều thời gian nhất là các host không cho phép dùng Backup – Restore.
Nếu dùng Access làm cơ sở dữ liệu thì mình không thích lắm vì không hiểu sao các ứng dụng mình làm(asp.net với access) thì thường truy xuất rất chậm, chậm hơn nhiều so với MS-SQL(mình đã thử nhiều cách kết nối nhưng vẫn vậy. mặt dù lúc trước mình dùng asp 3.0 với Access thì chạy vẫn rất nhanh)
Mình chưa dùng asp.net làm việc với MySQL, nhưng nghe nói muốn dùng asp.net kết nối với MY-SQL thì phải cài thêm driver gì đó, mình sợ các nhà cung cấp host họ ko cài thì cũng thua.
Và cuối cùng là giải pháp mình đưa ra là dùng XML để làm CSDL cho web. Anh XML này mình cũng đã tìm hiểu và cũng biết cách [thêm – xóa – sửa hay truy xuất] với nó. Nhưng mình cũng ngại là nếu làm một website tin tức chẳn hạn, khi đó tin tức sẽ chứa nhiều bản tin, và text tương đối nhiều thì ko biết anh XML này có đảm đương nổi?, hoặc các sản phẩm có nhiều mối quan hệ cha con, nhiều cấp thì lưu trữ có khó khăn lắm hay không.
Mấy ngày qua mình suy nghĩ nhưng chưa có giải pháp nào cho các ứng dụng sau này. Rất mong ý kiến đóng góp của các bạn.
Nếu các bạn nào đã có kinh nghiệm hay gặp trường hợp như mình thì cùng nhau chia sẽ các bạn nhé.
Bài liên quan
mong ý kiến khác của các bạn tìm ra giải pháp data cho ứng dụng web với asp.net
cũng như lời khuyên của các bạn ở trên, PHP và MySQL là tốt nhất cho giải pháp của bạn!
còn nếu vẫn thích ASP.NET(C#) thì chịu khó tốn tiền và chịu khó thuyết phục khách hàng thôi, vì giá thành sản phẩm sẽ cao hơn PHP là điều chắc chắn.
p/s: mình thấy ở VN, các doanh nghiệp vừa và nhỏ để đặt làm web bằng PHP, chứ ASP.NET thì rất ít
Khi chúng ta tham gia box này, hãy tôn trọng ý kiến của bạn ấy. Bạn ấy thích dùng ASP.net, không nên đề nghị chuyển các ngôn ngữ lập trình khác. Vấn đề chúng ta cùng xem thử có loại CSDL nào vẹn toàn cho bạn ấy áp dụng không.
1. SQL Server: Giá thuê host cao
Nếu bạn nghĩ giá từ 7 - 20 USD/month là mắc thì cũng không hẵn. (Host 20 USD dung lượng 2G, Băng thông unlimited.)
Tuy nhiên, nếu khách hàng vẫn cho là mắc thì đành chịu. Nhưng nên thuyết phục khách hàng của bạn vì theo thực tế, nếu bạn tìm host hỗ trợ ASP.Net thì bỏ phần SQL Server giá cũng không giảm bao nhiêu. (nếu thuê host, giá chỉ có thể giảm 2 - 5 USD).
Việc các host không hỗ trợ backup và restore từ xa: chính xác, cái này là mệt nhất.
2. Access: Chậm, mệt.
Chính xác. Nhưng bạn kiểm tra lại xem bạn kết nối từ ASP.net tới Access bằng cách nào. Ngoài ra, bạn không nên dùng DataSet để chứa dữ liệu nhận về từ Access. Một vài thủ thuật nho nhỏ có thể giúp bạn cải tiến tốc độ website khi có truy cập cơ sở dữ liệu ví dụ dùng DataReader sẽ cho tốc độ truy cập nhanh hơn nhiều lần so với Dataset đặc biệt khi bạn truy xuất số lượng lớn records.
3. Asp.Net & MySQL: khó cấu hình nếu chỉ thuê hosting
Chính xác.Để MySQL hoạt động tốt với .Net, bạn cần cấu hình hỗ trợ Transaction cho MySQL,cái này phải làm trực tiếp trên server. Tuy nhiên, hiện nay có nhiều công ty hosting hỗ trợ MySQL trên Windows nên chắc chắn họ sẽ config giúp bạn. Khi thuê host cứ hỏi thẳng rằng bạn có thể kết nối từ ASP.net tới MySQL không. Nếu được thì quá khỏe, mọi việc kết nối từ ASP.net đên MySQL giống như đến SQL Server, chỉ cần đổi connection string là ok. (Tham khảo thêm trang www.connectionstrings.com)
4. XML
Nếu bạn dùng XML, ngoài việc file XML càng lớn, truy xuất càng chậm như có bạn đề cập ở trên, còn vài điểm bạn cần quan tâm như sau:
a. Nếu dùng XLM, mọi dữ liệu bạn phải lưu vào file (các file) XML, vậy suy ra bạn cần dung lượng hosting lớn ---> cũng tốn thêm tiền
b. Mỗi khi muốn backup hay restore các file cũng cực kỳ khó và hơn nữa, ngoài việc dùng code, bạn không thể sử dụng bất kỳ phần mềm chuyên dụng nào xử lý các "record" dữ liệu trong file XML --> bất lợi cho công tác quản lý.
c. File XML chỉ là một file trên host, người dùng web khác rất dễ truy cập và down về. Và như vậy, bạn chỉ có thể chứa vào đó những dữ liệu không quan trọng (chẳng hạn tin tức). Còn với những dữ liệu quan trọng? ví dụ thông tin về người dùng? account? tài khoản? Nếu bạn chứa trong file XML thì bạn phải bảo mật thư mục thật kỹ, đòi hỏi nhiều kỹ năng trong việc bảo mật hosting --> phức tạp trong việc bảo mật.
Hì hì, không có gì vẹn toàn hết phải không. Bạn cứ tìm hiểu kỹ và quyết định lựa chọn giải pháp thích hợp. Chúc bạn công việc thuận lợi và nhiều thành công với .Net