2010-06-15 27 views
5

Tôi đã được cấp một vấn đề về bảo mật. Một ngân hàng sẽ không cho phép sử dụng DLL trong dự án. Cần có loại cấu trúc nào để cho phép DataAccess và hoặc sử dụng các dịch vụ bên ngoài (như một mailchimp của ứng dụng email, icontct)..NET mà không sử dụng DLL

có ai khác gặp phải vấn đề này trước đây không? Nếu họ có dự án được cấu trúc như thế nào (.net 3.5+).

Cảm ơn, KJ

+1

tôi cũng sẽ chấp nhận mọi người nói với tôi rằng đây là một câu hỏi chậm như tôi nghĩ rằng khái niệm về develping mà không dlls là hơi lạ một chút. – Kieran

+4

Tôi không nghĩ rằng bạn có thể sử dụng. Net * ở tất cả * mà không sử dụng DLL, khung dựa trên chúng (ví dụ System.dll). Đối với vấn đề đó, bạn không thể sử dụng * Windows * mà không sử dụng DLL (ví dụ kernel32.dll). –

+1

Người đã đưa ra quyết định chết não này có bao giờ nhìn vào thư mục hệ thống cửa sổ không? –

Trả lời

5

Bạn có nghĩa là không có DLL bên ngoài nào có thể được sử dụng không? .NET về cơ bản là một loạt các DLL (BCL) + thời gian chạy. Tuy nhiên, tôi có thể tưởng tượng rằng ngân hàng này muốn có thể kiểm tra mã ứng dụng của bạn mà không phải kiểm tra bất kỳ hội đồng bên ngoài nào bằng cách sử dụng .NET Reflector. Trong trường hợp đó, ngay cả khi sử dụng ILMerge sẽ không thực hiện thủ thuật, bởi vì điều này không làm cho vấn đề bảo mật biến mất. Nó sẽ chỉ ẩn những hội đồng bên ngoài bên trong hội đồng ứng dụng của bạn và làm cho mọi thứ khó kiểm tra hơn.

Tôi nghĩ bạn chỉ có tùy chọn là sử dụng ít khung bên ngoài nhất có thể và nếu bạn sử dụng chúng, hãy để ngân hàng kiểm tra chúng bằng .NET Reflector và hiển thị chính xác cấu hình nào bạn sử dụng.

Thành thật mà nói, tôi nghĩ rằng nó là khá khó khăn để được rất hiệu quả mà không cần sử dụng các thư viện bên ngoài. Ví dụ như một khung khai thác gỗ. Ngay cả những lợi ích ứng dụng đơn giản nhất từ ​​việc có khung đăng nhập.


Mặc dù các loại tổ chức này rất không phổ biến, nhưng không thể sử dụng bất kỳ dll bên ngoài nào là cực kỳ khắc nghiệt. Các tổ chức này thường có một danh sách trắng các phiên bản của các khung công tác cụ thể mà họ tin cậy. Bạn nên yêu cầu danh sách đó. Họ nên có một cái.

+0

Sau khi biết thêm thông tin về vấn đề này, tôi sẽ nhận được thông tin gần nhất. Sử dụng tối thiểu các dll bên ngoài cho phép họ kiểm tra mã.(Phần tồi tệ nhất là nó không liên quan gì đến hệ thống của họ được lưu trữ bên ngoài và không chia sẻ dữ liệu mà chúng chỉ nghiêm ngặt !!) ... – Kieran

15

Tôi tin rằng bạn có thể làm điều này với ILMerge. Về cơ bản, bạn hợp nhất tất cả các DLL cần thiết vào EXE chính.

+0

Rất tuyệt. Bạn có thể hợp nhất trong các framework DLL không? –

+2

Với một số công cụ bạn có thể biên dịch trong khung .net cũng như –

+0

trong khi điều này thật tuyệt, nó vẫn sẽ không gặp vấn đề mà chúng đã đặt ra cho tôi. Tôi nghĩ câu hỏi của tôi hơi thiếu sót. Cảm ơn bạn đã trả lời =) – Kieran

4

Bạn có thể muốn làm rõ yêu cầu của họ. Tôi nghi ngờ rằng khi ngân hàng nói "không có dll" họ thực sự có nghĩa là "không có dlls tùy chỉnh trong system32". Nếu điều này thực sự là những gì họ có nghĩa là, bạn nên sử dụng dlls trong thư mục ứng dụng của bạn (hoặc nếu nó là một ứng dụng web - trong thư mục bin của nó).

Nếu điều đó không xảy ra, và chúng thực sự nghiêm cấm việc sử dụng bất kỳ tệp DLL nào chưa được cài đặt sẵn trên hệ thống của chúng, bạn vẫn có thể sử dụng .Net framework chỉ giống nhau. Các hội đồng CLR/BCL được tải từ GAC và được cài đặt sẵn trên bất kỳ máy nào có .Net.

Tất nhiên, nếu họ không có Net cài đặt trên máy tính của họ ... :-)

+0

+1 cho câu trả lời nhưng Steven có khá nhiều những gì bạn nói. – Kieran

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