2011-06-12 29 views
5

son zamanlarda bir ASP.NET MVC uygulamasında olayları kullanma konusunda kafamda bu fikri yaşadım. Örnek Örneğin, bir kullanıcı bir yorum oluşturduğunda, sunucu tarafında bu bir olayı tetikleyecektir, örneğin bir hesap denetleyicisi bağlanabilir ve bu nedenle bir olayda hesabı belirtilen kodu tetikleyebilir. 1 Bunu denediniz mi, yoksa bir web uygulamasında olduğu gibi olayları kullanmak mümkün mü?ASP.NET MVC Olayları

İşte bir örnek. enter image description here bir yorum denetleyicisi rağmen bu Comments kontrolör benim statik olay yöneticisi bir olay tetikler yapacak, web sitemde bir yorum yarattı kullanır. Bu, bu etkinliğe bağlı olan tüm yöntemleri yürütecektir. Bu örnekte, AccountController ekinde "OnCommentCreate()" bulunur. Şimdi bütün bunlar başka bir iş parçacığında kullanıcılar sonra olmalıdır, bu nedenle olayların üstesinden gelirken kullanıcı için sayfa hiçbir olay olmadığı sürece devam edecektir. Bunu bir zaman çizelgesinde kalıcı bir bağlantıyla nerede kullanacağımı düşündüm veya kodu merkezden dağıtmak için kullanılabilir. Bir örnek için, bir kullanıcı adı değiştiğinde çağrılacak bir olaya sahip olabilirim, günlük dosyalarından geçecek ve kullanıcının ismini yeni kullanıcı adına değiştirecek.

Bu

+1

Sorunuz açık değil. Eğer Sonra olaylar istemci tarafı olmayan –

cevap

4

İsterseniz mutlaka bunu yapabilirsiniz, DoomStone. ASP.NET MVC'nin kendisi, .NET olay modelini kullanarak olay yapmaz, ancak tanımladığınız şey gerçekten .NET olayı değildir; uygulamanızda daha fazla yayınlamak için & abone olun.

Bir düşünce bağlı yaptığınızı başlamak kaç etkinlik ve bunları yapmak ne, sen amaca eventing çerçeveler veya WF, ya da muhtemelen bir mesaj kuyruğu kullanarak içine görünebilir olmasıdır.

Ben de hedefinize ulaşmanın başka seçenekleri göz önünde teşvik edecek, Söylediğin. Verdiğiniz örnekler, bir şeyi yanlış anlamış olmadıkça, olay tabanlı programlama için bana tatlı nokta olarak gelmiyor.

** Güncelleme ** Ben yorumunuzun ardından başka bir düşünce vardı. Yani, kısa cevap 'evet' bu, özellikle diğer sunucularda var olabilecek hizmetler ve belki de (bazı durumlarda) bile size ait olmayan dekuplaj hizmetleri için iyi bilinen bir model. Orada mevcut çerçeveler var, ama tanımladığınız şey tamamen evde yetiştirilebilir. Her olay için WKO'nuza bir yöntem hazırlayabilirsiniz (örnek gösterileriniz gibi) veya daha fazla esneklik istiyorsanız, özel bir İleti sınıfı alan genel bir eylem (.eg Yayımla veya Gönder) tanımlayabilirsiniz ve ardından aramalar yapabilirsiniz. WKO, olaya yazılan bir ileti gönderebilir (başka bir deyişle, OnCommentCreated()'u çağırmak yerine, Publish(new CommentCreatedMessage({data}));'u arayabilirler) Bu şekilde, çözümün büyümesini daha kolay hale getirme eğilimi vardır.

+1

örnekler sadece fikir birkaçı i nerede düşünme kapalı, ama ben sadece bir düşünce vardı ve sadece 1 tane daha yaptığını bilmek istedim: D – Androme

+0

Hey Paul, Bu sorudaki düşüncelerinizi ister misiniz: http: // stackoverflow.com/sorular/27747294/kullanarak etkinlikler-delegeler-in-çok-kiracı-web uygulaması ana soru, bu istek kapsamı başına bir asp.net uygulamasında olayları ve delege kullanarak mantıklı geliyor edilir? Bu büyük bir yük var mı? – Yashvit

1

ASP.NET MVC Framework olay tek seçenek olmadığını kontrol etmek ve istemci tarafı kodu gibi kullanarak el olaylarını işlemek için yani (aynı bildiğim kadarıyla), tahrik edilmez iyi açıklık umut AJAX denetleyici Eylem yöntemlerini çağırır.

Yani comment veritabanına gönderilen ve kaydedilir sizin senaryosunda, periyodik AJAX sunucuya çağrıları aracılığıyla yeni yorumlar için yoklamak gerekir.

+1

? yapmaya çalıştığınız şeyin somut bir örneğini sağlar, ancak% 100 sunucu tarafı. – Androme

+0

@DoomStone, bu faydalı yorum için teşekkürler. – Kon