2009-12-22 12 views
12

यह एक साधारण लेकिन कुशल गतिविधि लॉगिंग फ्रेमवर्क के बारे में है जिसे मैं अपने मौजूदा एएसपी.Net आधारित वेब-एप के साथ एकीकृत करना चाहता हूं (मेरे पास LINQ-to-SQL आधारित SQL DB है बैकएंड)। मैं डीबी संचालन करने के लिए एक सेवा-वास्तुकला की तरह कुछ उपयोग कर रहा हूं - जो प्रासंगिक LINQ संचालन का आह्वान करता है। मेरे पास लगभग हर इकाई (यानी डीबी टेबल) के लिए एक सेवा कक्षा है और यह सीआरयूडी संचालन को संभालती है।डेटाबेस में ASP.Net उपयोगकर्ता गतिविधि ट्रैकिंग

सामान्य तौर पर, मैं गतिविधियों ट्रैक करने के लिए की तरह की जरूरत है - Mr.X एक नया आइटम जोड़ दिया गया, My.Y इस फिल्टर पर खोज की, Mr.Z एक एक्सेल दस्तावेज़ में ग्रिड का परिणाम निर्यात किया, आदि ... और इसी तरह के सरल आपरेशन आधारित प्रवेश (क्षेत्र स्तरीय प्रवेश अब के लिए दूर है)

तो, यहाँ है कि मैं क्या अतः, अन्य मंचों पर आर & डी के अपने दो दिन में पाया गया है और वेब:

दृष्टिकोण 1: दो तालिकाओं का उपयोग करने का सरल पुराना तरीका: गतिविधि (अपने कार्यकर्ता के साथ सभी गतिविधियों को स्टोर करती है) & गतिविधि प्रकार (गतिविधियों के प्रकार सूचीबद्ध करता है)। मेरे पास एक सेवा परत है इसलिए या तो मेरे पास "ServieBase" कक्षा हो सकती है जो सभी सीआरयूडी घटनाओं को टैप करता है और जिसकी मुझे रूचि है, उसे लॉग करता है। सब कुछ कोड के भीतर से संभाला जाता है।

उदाहरण: http://dotnetslackers.com/articles/aspnet/Tracking-User-Activity.aspx

दृष्टिकोण 2: डेटाबेस उपयोग तालिका स्तर पर घटनाओं का दोहन करने के लिए और फिर प्रवेश प्रदर्शन से चलाता है। यह ऐप के लिए पूरी तरह से 'सार' होगा। मेरे पास प्रत्येक तालिका में "LastModifiedBy" फ़ील्ड है इसलिए मुझे 'अभिनेता' डेटा मिलेगा और मैं लॉगिंग कर सकता हूं लेकिन यह मुझे डीबी-ऑपरेशंस & तक सीमित कर सकता है, मुझे अन्य ऐप-गतिविधियों को अलग से ट्रैक करने की आवश्यकता है। लेकिन अगर इसके लायक मैं इसे मान सकता हूं।

दृष्टिकोण 3: (वैचारिक, अधिक मार्गदर्शन की जरूरत है)

3,1 MVC दृष्टिकोण - हम MVC में भविष्य में MVC गोद लेने की सोच रहे हैं और मैंने पाया कुछ कुशल लॉगिंग सुझावों जैसे - (है पारंपरिक L2S आधारित वेब अनुप्रयोग के लिए इस तरह वहाँ कुछ भी?)

Log User Activity on ASP.NET MVC Application Track user activity/actions for an asp.net mvc website?

3,2 ट्रैकिंग सेवा मैं विंडोज़ में 'ट्रैकिंग सेवा' सुविधा में आया - क्या इसका वेब समकक्ष है?

http://msdn.microsoft.com/en-us/magazine/cc163466.aspx http://www.codeproject.com/KB/WF/WWF__Tracking_Service.aspx?msg=2879654

3।3 विविध - कुछ अन्य विकल्प जो मैं भर में आया था लेकिन बहुत कायल नहीं है या मैं बेहतर है कि वे अपने काम करते हैं कहेंगे लेकिन मेरा नहीं :-)

रेफरी -

http://learn.iis.net/page.aspx/480/sample-web-analytics-tracking-module/

एसक्यूएल प्रोफाइलर: https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-5054787.html http://technet.microsoft.com/en-us/library/cc966515.aspx

तो, क्या कहते हैं? किसी भी सुझाव और नए विचारों का स्वागत है। अभी के लिए, ऐसा लगता है कि मैं पहले दो दृष्टिकोणों के बीच कहीं भी उतरूंगा क्योंकि हम भविष्य में यह आसान होना चाहते हैं कि लॉग इन करने के लिए कोई अतिरिक्त गतिविधि जोड़ने में सक्षम हो।

धन्यवाद।

उत्तर

1

मैं पहले दो दृष्टिकोणों में से एक का उपयोग कर समाप्त हुआ क्योंकि वे अधिक सरल और आसान लगते हैं। अधिकांश में वे अधिक नियंत्रण प्रदान करते हैं और आवश्यक चीज़ों को यथासंभव लचीला रखने की अनुमति देते हैं (यानी यह वास्तविक बैकएंड कोडिंग के करीब है जो इसे अधिक सुलभ बनाता है)

मैं इसे चिह्नित कर रहा हूं क्योंकि कोई अन्य व्यापक समीक्षा नहीं हुई है।

धन्यवाद।

+0

क्या आप सही आए थे। मैं एक ही चीज़ एटीएम बनाने में देख रहा हूँ। – Zapnologica

1

यहां आपके टूलकिट में जोड़ने के लिए एक और आइटम है: Sql Server Change Tracking। लेकिन यह वह सब कुछ नहीं करेगा जो आप यहां खोज रहे हैं। आप Command pattern पर एक नज़र डाल सकते हैं। मैं एक इंटरफ़ेस, ITrackedCommand बनाउंगा, और उसके बाद उन आदेशों को लागू करूँगा जो उपयोगकर्ता कर सकते हैं। फिर, प्रत्येक को कमांड प्रेषक के माध्यम से निष्पादित किया जाता है जो स्वचालित रूप से ITrackedCommand.Log को कॉल करता है। मुझे लगता है कि आपको वह स्थान मिलेगा जहां आपको जाना होगा।

संबंधित मुद्दे