2009-12-08 5 views
0

나는 ASP.NET MVC 사이트에서 일하고 있는데, 나의 요구 사항 중 일부는 사용자들이 서로에게 메시지를 보낼 수 있다는 것이다.ASP.NET MVC에서 첨부 파일을 처리 할 수 ​​있어야하는 경우 어떻게 메시징 기능을 디자인하겠습니까?

표면적으로 이것은 어려운 작업이 아닙니다. 가장 단순화 된 양식의 메시징은 "SenderID, ReceiversID (FK), 제목, 메시지"등과 같은 단순한 "Messages"테이블입니다. 그러나 "첨부 파일"은 어떻게 처리합니까? 사용자는 금융 정보가 담긴 웹 사이트에서 기밀 PDF를 탐색 할 수 있으며 "보고서 보내기"버튼을 클릭하여 텍스트 메시지와 함께 다른 사용자에게 보고서를 보낼 수 있다고 가정합니다.

마찬가지로 파일을 여러 개 업로드하고 메시지와 함께 보낼 수 있습니다 (탐색 할 수있는 내부 문서가 아닌).

ASP.NET MVC에서 어떻게 처리합니까?

어딘가에 첨부 파일이 있다고 생각했습니다. 사용자가 "보고서 보내기"를 클릭하거나 문서를 업로드하면 해당 파일이 첨부 파일 폴더에 복사되고 첨부 파일 테이블에 항목이 만들어집니다. .

그런 다음 사용자가/messaging/attachments/{fileID}와 같은 경로가있는 링크를 클릭하면 적절한 파일이 전송됩니다. 첨부 파일/파일 테이블에있는 각 파일의 체크섬을 유지할 수도 있으므로 사용자가 동일한 보고서를 보내면 첨부 파일 폴더에있는 파일을 복제하지 않을 것입니다.

이메일을 다시 발명하는 것처럼 느껴지 긴하지만 클라이언트는 보안 준수를 유지하기 위해 이러한 보고서를 사용자에게 이메일로 보낼 수는 없지만 검색을 위해 시스템에 로그인해야한다고 주장합니다. 그들.

이런 식으로 진행하는 것이 올바른 방법입니까 아니면 다른 접근 방식을 찾아야합니까?

+2

그것은 나가 그것을 할 것입니다 근본적으로이다. –

+0

아이디어가 괜찮아 보입니다. SQL Server 2008을 사용하는 경우 FILESTREAM 사용에 대해 생각할 수 있습니다. 파일에 대한 액세스가 훨씬 쉬워집니다. – LukLed

+0

그게 내가하는 일도 마찬가지다. 그냥 파일을 GUID로 사용하는 것의 의미를 생각해 보자. 그냥 보안의 또 다른 층 (모호함) 일 뿐이다. 그것은 내가 일상적으로 사용하는 것입니다 (int가 아닌 GUID를 사용하는 추가 된 오버 헤드를 명심하십시오). –

답변

0

정확하게 사용자의 요구 사항을 잘 모르겠지만 CMS 시스템이나 SharePoint를 사용해보십시오. 그것들은 문서 관리와 메시징 작업에 필요한 메 커닉을 가지고있을 것입니다. 앱이 분리되어 있더라도 여전히 셰어 포인트를 백엔드로 통합하여 대량의 복잡성을 줄일 수 있습니다.

대부분의 경우, 여기 바퀴를 다시 발명하고 있습니다 ... 그리고 그것은 정말 큰 바퀴입니다. 넘어서 얻는 것을 시도하십시오 :

+0

저는 휠의 크기에 대해 동의하지 않습니다. 제한된 환경에서 표준을 준수하는 것에 대해 걱정할 필요가 없으므로 상당히 간단한 문제입니다. – Murph

+0

질문에있는 정보에 따르면, 이것은 아마도 간단한 경우 중 하나가 아닙니다. KingNestor는 여러 개의 첨부 파일에 대해 이야기하고 있습니다. 일부는 로컬 클라이언트의 일부 원격 저장 장치에 있습니다. 그는 업로드, 전달, 보안 처리, 파일 복제 감소에 대해 이야기합니다. 이것은 잘 뻗은 영토이지만 사소한 것은 아닙니다. 이러한 종류의 기능은 개발하고 올바르게 진행하는 데 많은 시간을 필요로합니다. 그러나 잘 자라는 지역이기 때문에 자신 만의 롤링 대신 사용할 수있는 기존 솔루션이 많이 있습니다. –