2010-02-21 17 views
8

Tôi chỉ muốn biết nếu có ai lưu trữ các lớp học hoặc phương pháp trợ giúp của họ trong một hội đồng riêng biệt và tại sao ... chỉ để quản lý sạch chúng? Tôi đã thấy rất nhiều bài viết về cách sử dụng một thư mục trợ giúp bên trong dự án MVC của bạn và mang lại cho tôi những ngày xưa lộn xộn trong ASP.NET, nơi mọi người đang sử dụng thư mục App_code thay vì dọn dẹp sạch sẽ những thứ như thế này. .Bạn có lưu trữ các lớp trợ giúp của bạn trong một hội đồng riêng biệt không?

Và tương tự như vậy không ai làm kiến ​​trúc thực sự sẽ đặt mô hình trong một số thư mục trong hội đồng web MVC của bạn. Họ sẽ đi trong MyApp.DataLayer lắp ráp hoặc MyApp.Models hoặc một cái gì đó như thế này.

+0

Bạn có thể làm rõ một điều: Bạn có đang nói cụ thể về các phương pháp mở rộng Trình trợ giúp HTML và các lớp chứa chúng không?Hay bạn đang nói rộng rãi hơn về các "lớp học trợ giúp" khác nhau được tạo ra trong quá trình xây dựng một ứng dụng? Bài viết của bạn nói "các lớp trợ giúp", nhưng nó cũng đề cập đến thư mục "trợ giúp", là nơi mà nhiều người đặt "các phương thức trợ giúp HTML" (và các lớp tĩnh chứa các phương thức đó). –

Trả lời

1

Tôi sử dụng các dự án để tách các lớp khác nhau trong ứng dụng web hoặc biểu mẫu của mình. Nó cho phép tôi tôn trọng các quy tắc kinh doanh tốt hơn. Ngoài ra tôi thấy dễ dàng hơn để theo dõi nơi tôi cần phải đi nếu tôi muốn thay đổi.

Nhưng tôi đã thấy mọi người sử dụng các thư mục gắn nhãn các lớp trong giải pháp nhưng tôi nghĩ đó là một chút lộn xộn.

2

Chúng tôi có một số người trợ giúp trong một dự án riêng và một số trong dự án web. Tôi nghĩ bạn sẽ thấy rằng một số người trợ giúp của bạn cần sử dụng các trừu tượng mà bạn đã xác định trong chính dự án web của mình. Và điều đó thường sẽ buộc bạn phải đưa những người trợ giúp đó vào dự án web, vì không có khả năng mong muốn có một dự án khác có tham chiếu đến dự án web. Tôi không coi nó giống như sử dụng App_Code. Đây là những tệp được biên dịch tại thời gian biên dịch bên trong IDE của bạn, không có "ma thuật" đặc biệt được áp dụng cho App_Code.

+0

Tôi không có ý nghĩa giống như App_Code nghĩa đen chỉ là khái niệm đưa bất cứ thứ gì nên ở trong một hội đồng riêng biệt trong thực tế trong một số thư mục con trong ứng dụng web của bạn mà với tôi là armature. – PositiveGuy

+1

Tôi hiểu. Độ nghiêng đầu tiên của tôi là đưa chúng vào một hội đồng riêng biệt. Nhưng đó là sai lầm. Lần đầu tiên tôi cần tạo một trình trợ giúp HTML đã sử dụng một lớp trong dự án web của tôi, tôi nhận ra rằng, ít nhất là cho tình huống của tôi, và có lẽ trong nhiều tình huống, những người trợ giúp tốt nhất thuộc về dự án web. –

3

Vâng, nhưng vì lý do, đó là chung cho hội đồng khác cũng

  • trở thành dễ dàng để cắm vào bất kỳ dự án khác. (Có thể cần một số phiên bản).
  • Reusable
  • dễ dàng để cải thiện
  • Dễ khúc xạ
  • Như không một phần của một dự án, nhưng dự án chính nó, nó rất dễ dàng để tài liệu và dễ dàng cho các nhà phát triển để hiểu
  • Xóa ra một số mớ hỗn độn

Nhưng đối với tất cả những gì ở trên, lắp ráp của bạn, khi đã sẵn sàng, phải là một "công việc cũng được thực hiện" , khác khôn ngoan, nó là tốt hơn để giữ cho các lớp helper để nơi họ thuộc về.

+0

Tôi ít nhiều nói về những người trợ giúp cụ thể cho chỉ một dự án nhất định. Tôi vẫn nghĩ rằng tách chúng ra khỏi thể chất chỉ làm cho nó dễ dàng hơn nhiều để tìm những thứ (khám phá khả năng) và một cách chuyên nghiệp hơn nhiều để duy trì và để giảm bớt lộn xộn trong ứng dụng web của bạn. – PositiveGuy

+0

Không phải tất cả những người trợ giúp bạn tạo sẽ được sử dụng lại trên bất kỳ dự án mvc nào. – PositiveGuy

1

Có, vì chúng là một phần của Lớp kinh doanh. Hai thưởng phạt lớn:

  • Có thể dùng lại
  • Testability

Hãy ghi nhớ rằng chức năng tiện ích của bạn và lớp helper có thể sẽ là một số thành phần sử dụng nhiều nhất của toàn bộ hệ thống của bạn. Nếu không có thử nghiệm BICEP đầy đủ, bạn sẽ có nguy cơ thực sự không thể chấp nhận được.

0

Hầu hết những người trợ giúp mà tôi tạo thường là lớp cụ thể vì vậy tôi có xu hướng giữ chúng với lắp ráp cụm lắp ráp cần chúng. Tôi không thấy lý do để thêm vào một dự án khác để lưu trữ một số lượng lớn các lớp trợ giúp cụ thể.

Các vấn đề liên quan