2011-02-04 21 views
5

Bir kullanıcının erişim haklarını belirleyen if ifadeleri içeren karmaşık bir C# yöntemim var.C# yöntemi mantığını görselleştirme

Bu mantığı görselleştirmenin bir yolunu, örneğin bir iş akışı şemasını veya benzer bir şeyi arıyorum.

Bu .NET 3.5 ve Visual Studio (tercihen serbestçe kullanılabilir) araçları bu yapabilirler mevcuttur 2010.

kullanıyor?

NB: Metod çağrılarını (ör. Çağrı hiyerarşisi) görselleştirmek için birçok araç buldum, aradığım şey bu değil. Mantığı görselleştirmek için bir araç arıyorum.

Teşekkür

DÜZENLEME: Benim araştırmanın parçası olarak ben Flowchart4C# buldunuz ama düpedüz satın almak 200 $ ve deneme bana ben bunu istediğini yapar onaylamak izin vermiyor! (< 5 koşullu ifade).

+0

http://www.refactoring.com/catalog/replaceConditionalWithVisitor.html iyi olduğunu vardır Otomatik bir araç için doğru mu? –

+6

Bu büyük yöntemi yeniden düzenlemek isteyebilirsiniz, böylece ana kısım düz İngilizce olarak başlangıç ​​olarak okur. – Marco

+1

Denemem. Öncelikle yolları kapsayan ve mevcut davranışı doğrulayan birim testleri yazın. İkincisi, yöntemleri, vb. Ayıklayarak kodu netleştirmek için otomatik refactoring araçlarını kullanın. – TrueWill

cevap

3

yönteminizi Refactor: Burada Koşullamalar


http://www.refactoring.com/catalog/replaceConditionalWithPolymorphism.html

http://www.refactoring.com/catalog/replaceNestedConditionalWithGuardClauses.html ama başa çıkmak için bazı öneriler muhtemelen bu Daha açıkçası, sen aradığınız

+0

Teşekkürler @Marco - En alakalı güvenlik maddelerini buldum - Akışkan kullanıcı türlerine atanan görevlerim var. – Russell

+0

Soru: Mantığı ayrı yöntemlere dönüştürmek, harita ihtiyacını ortadan kaldırmanın bir yoludur. Fonksiyonum kritik öneme sahiptir (bir web isteği her yapıldığında güvenlik kontrolü olmak), bunu birden fazla yönteme ayırarak performansa zarar verebilir mi? – Russell

+1

Fonksiyon çağrılarını optimize etmek için derleyiciye güvenirim. Parametrelerin geçirilmesinde çok fazla veri kopyalanmıyorsa, önce okunabilir kodu tercih ederim ve gerekirse daha sonra performans konusunda endişeleniyorum. – Marco

1

Otomatik olmayan: Kullanım dia (Windows, Linux: akış şeması-şablonlar vardır) veya Inkscape (Windows, Linux, Mac: vektör grafik).

Otomatik: Refactor önce otomatikleştirin.

+0

Teşekkürler @Leonidas - Ben katılıyorum Dia harika bir ücretsiz bir araçtır.:) Otomatik olarak ideal bir şekilde haritalamak için çalışıyorum. – Russell