Co jest lepsze pod względem możliwości, łatwości użycia, dokumentacji, przykładów, społeczności/wsparcia, integracji VS, znanych implementacji, długoterminowej żywotności i budować szybkość, aby zaimplementować niestandardowe ramy AOP?Mono Cecil vs. PostSharp Core vs. Microsoft CCI do implementacji ram AOP
Zacznę od tego, co wiem (mam tylko próbował PostSharp do tej pory):
- Microsoft Common Compiler Instrastruture (CCI): Czytałem, że służy do FxCop , ILMerge, SpeC# i Umowy kodów. Wydaje się być bardzo niski poziom as it does not even take care of correcting offsets for branch codes that are borken when IL is modified with it.
- PostSharp ma 5 lat, ma wiele możliwości dla AOP (np streszczenia pewne rzeczy trzeba by mieć do zrobić ręcznie z IL away), kod źródłowy dostępny, opracowany/obsługiwane przez tylko jednego człowieka ale jest on planuje podejmowania tej działalności gospodarczej, ma dokumentację, ale mogłoby być lepiej, buduje się około dwa razy tak długo, bardzo małe próbki, jak wstrzykiwać IL i wersja 2.0 zostanie wydany wkrótce który zapowiada się znacznie ulepszony.
- Mono Cecil: napisany przez jednego faceta, część pakietu Mono i jest plug-in dla reflektor nazywa REFLEXIL który używa Mono Cecil.
Dziękujemy za podzielenie się wrażeniami! Myślę, że zawsze możesz użyć narzędzia PEVerify do sprawdzenia poprawności produkowanych złożeń. Korzystam teraz z PostSharp i mogłem zrobić z nim wszystko, co chciałem (i masz rację, znajdując przyczynę, może to być bardzo frustrujące ...). Co masz na myśli mówiąc bardziej dojrzałe? Mniej buggy? Czy istnieje szczególny powód, dla którego nie korzystasz z PostSharp? Z ciekawości, co robi twój program? –
Mój program to fuzja/obkurczanie, więc PostSharp nie był dla mnie pomocą. I tak, znalazłem Microsoft.CCI mniej wadliwy, i obsługuje więcej funkcji CLI (mieszane złożeń, na przykład). Jednak model obiektowy jest naprawdę trudny w użyciu. Użyłem PEVerify do sprawdzenia wygenerowanych złożeń (i nie jestem pewien, czy mógłbym odnieść sukces bez niego :)) Jednak błędy często łamią proces generowania zespołu, a PEVerify jest w takich przypadkach bezużyteczne. – skevar7