As a Java developer familiar with Aspect-Oriented Programming (AOP) I have recently began to look at ASP.NET 3.5. I immediately came across Partial Classes and Types. Back in the Java world, HyperJ seems to have come and gone as an implementation of Multi-Dimensional Separation of Concenrs (MDSoC) and a means for Subject-Oriented Programming (SOP).
When it comes to writing code, MDSoC and AOP are nice techniques to reduce repeated concerns, however when it is your turn to decipher and debug someone else's code, would you rather they hadn't split the class across several files with separate concerns? Practically I am cannot yet imagine how we would develop and manage a sustainable business service with MDSoC except for common functionality e.g. transactional concerns.