PostSharp is the #1 pattern-aware extension to C# and VB. It allows developers to eradicate boilerplate by offloading repeating work from humans to machines. Includes some the most common patterns and gives you the tools to build your own.
I was searching for a .net AOP-Framework when I came across PostSharp. Beside common things like the notifypropertychanged-attribute and logging - I found it awesome that I could add Aspects to an external Assembly. Great Tool and nice support.
A very powerful, excellent, tool for .NET development which makes implementing critical solution-wide functionality ... that has, historically, been problematic, like effective Property change notification, easy modification of threading for selected methods, and logging ... not only possible, but, possible in a way that simply has not been possible before.
Once you have started using aspect-oriented programming (AOP) with PostSharp, you will come to rely on it.
Excellent product, make it very simple to do common talks like logging and caching via attributes (annotations). Very powerful capabilities. Lovely way to move distracting code out of actually-doing-something code
A great tool which IMHO is a must if you want clean code that only focus on business requirements, I had the chance to work with PostSharp in a mission critical projects with tight deadlines during that period my experience was just perfect as PostSharp came to the rescue.
Working with different clients as a software consultant I usually recommend it to my clients to reduce code cluttering, bugs, time and to improve productivity.
As a Bizspark member I find it really a big + from Postsharp to offer a discount.
Thanks PostSharp for the Bizspark members' program and for making developers' life much easier.
PostSharp has saved significant time on my projects. The built in aspects are awesome in and of themselves, but even better has been the ability to write my own. It has solved so many problems in an elegant way.
PostSharp is awesome, since i started using my productivity doubled. The Patterns are awesome and i automated a lot of repetitive tasks, and helped me to find errors with cleaner code . If want more time thinking about logic and less time with repetitive tasks so PostSharp is the guy
Excellent. This has saved us a lot of time and mistakes by eliminating repetitive tasks. It was easy to get started, and after using the Express version for some time, we have now decided to upgrade to the paid version.
I just updated my project from PostSharp 4.2.22 to 4.3.15. However, I'm not seeing the option to update the PostSharp tools in Tools/Extensions and Updates (it doesn't appear in the Updates section). In the Installed section, it's showing PostSharp version 4.2.22 installed, with "Automatically update this extension" checked.
And yet, when I build the solution, I'm getting the following warnings:
The version of PostSharp Tools for Visual Studio (4.2.22 is installed for Visual Studio 14.0) is older than the version of the PostSharp Nuget package in this project (184.108.40.206).
I want be able to silent install post sharp tools for visual studio,
Using the post sharp trial version.
I tried to use the .vsix file,
but considering that I don't have a license it is problematic.
Is there a way to do that?
I have a question about new licensing in 4.3 in PostSharp Express license. From what I see there is a 10 class limitation, but does it apply to all aspects? Or only those that were above Express exclusive in earlier version? As the sentence "Limited to 10 target classes per project" seems very vague so I would like some more information in that topic. As earlier there was no limit to Aspects like MethodInterceptionAspect - is it still the case?
First of all I should say I hate your product (P#). I use it just because other my team mates prefer not to write contracts for methods but use your automagic to imitate some of them. We had so many troblems with your magic!
Now we did upgraded our environment from mix of VS2010 and VS2013 to pure VS2015. During this process we upgraded P# from 2.2something to 4.1.14. I don't know why it isn't the last verision, hope it doesn't mean a lot. We used to put version 2 into TFS but version 4 requires to install it using NuGet and seams like you don't support old scenario. It is the first hate-point. But anyway I've put P# into TFS and unistalled it from my VS. We really don't need all of your fancy features, just some aspects to control not null parameters and things like that. I can build the product from command line. It's ok but had to remove so many junk you add when install P# using NuGet!!! It is the second hate-point 'cause I should remove this junk from more than 100 projects.
After I've removed this very extension from my VS I cannot build any project from inside VS! This THE MAIN hate-point! Every time I try to do it, I have a nug window "PostSharp Configuration" with request to Install PostSharp Tools for Visual Studio!
How I can avoid use your f... extension for VS and still use your odd job P#?
I'm sorry to hear your disappointment with the new version. I would like to thank you for sharing your negative experience. It is very useful. Positive feedback makes us feel good, but negative feedback makes us progress. The latter is more important.
You pointed very important points. Other users have mentioned the same frustrations and we already started working on it. We decided to address the following points in PostSharp 4.3:
1. There will be an alternative to using NuGet. The old good "zip" distribution will be back.
2. The VS extension will no longer be required. However it will be highly recommended if you want to have a decent debugging experience.
3. We will have a proper uninstaller.
4. We will not require a license to compile project that have been just freshly checked out from source control and not modified.
To answer your question specifically, you can avoid using the extension by defining the following environment variable or MSBuild property:
As a last point, please note that PostSharp is not for everybody and for every project. If your colleagues selected PostSharp only for code contracts, it is possible that the code savings may not pay off the friction. The more patterns you automate with PostSharp, the more it pays off. We can neither validate neither invalidate the design decisions that your team did. PostSharp is a sharp tool, and needs to be used with care.
I hope this helps.
Thank you Gael for your positive answer on my negative and emotionfull feedback! I really don't like any "magic" in code but I should use it in our code. I prefer to be explicit in my code.
Anyway thank you for your replay. I'll check it out.
Hi guys, I tried to install PostSharp for VS 2015 under Windows 10 and I've got unexpected error, can you help me with that?:
---> PostSharp.Sdk.UserException: Could not start VsixInstaller.exe: The VSIX installer process failed with exit code -532462766. ---> PostSharp.Sdk.UserException: The VSIX installer process failed with exit code -532462766.
в PostSharp.HQ.Vsx.VsxProcess.InstallVsxTask.ExecuteVsix(String vsixPath, Boolean elevated) в c:\src\PostSharp-4.1\UserInterface\PostSharp.HQ\Vsx\VsxProcess.cs:строка 428
--- End of inner exception stack trace ---
в PostSharp.HQ.Vsx.VsxProcess.InstallVsxTask.ExecuteVsix(String vsixPath, Boolean elevated) в c:\src\PostSharp-4.1\UserInterface\PostSharp.HQ\Vsx\VsxProcess.cs:строка 433
в PostSharp.HQ.Vsx.VsxProcess.InstallVsxTask.Execute() в c:\src\PostSharp-4.1\UserInterface\PostSharp.HQ\Vsx\VsxProcess.cs:строка 401
-532462766 is general exit code for unhandled exception. This usually happens when the installer is executed with insufficient rights. We are going to address these kind of issues soon. In the mean time please, could you try to run the installer as administrator? If it doesn't help, please could you report this issue to our forum (support.sharpcrafters.com/) and attach a VSIXInstaller_*.log file that is created during installation in %temp% folder?
If you're talking of a farm of build servers, then PostSharp does not need to be installed at all because it is deployed through NuGet.
If you need to deploy the VS tooling to many desktop stations, the best is to ask all developers to install it manually on their machine. If you're a commercial customer please contact our support and we may be able to help automate the deployment, but there is no easy option.
If the official answer is that I can no longer have an unattended install option to my development environment, then I guess I'll have to look at one of the other Aspect-Oriented frameworks out there... Please don't let the answer be, "Install it manually..."
Could you please explain your deployment scenario? We generally don't get requests for unattended installation even from commercial teams of hundreds of users, so I would like to understand why it is so important to you.
I work in an environment of about 60 developers where we try to automate every install we can... This allows us to pave a machine and then reinstall the complete development environment quickly and also ensures that the version of the Visual Studio extension stays the same across the environment. In the past, I've used the "vsixinstaller /q /a /i "postsharp.xxx.vsix" to install the extension into Visual Studio. We still use NuGet to handle the actual DLLs which is how the build servers get PostSharp and where the version of the PostSharp DLL is also project specific. The download link above now points to an EXE file instead of a VSIX file and the EXE appears to not have any way to script the install of the extension. My organization hasn't moved to this version yet and the older NuGet packages that we are using will install the extension relevant to the version of PostSharp used in the project so, for now, we’ll stick to that deployment method.
Sorry for late answer, I did not notice your reply.
You can download the exe file from VS Gallery and unpack it with 7-zip. You will find two VSIX files inside, one for VS 2012 and one for VS 2015. From there you can use VSIXInstaller.
I hope this helps.
I can't install the PostSharp's extension on VS 2015 Enterprise, when I trying to install it, it says "Install 'PostSharp Tools for Visual Studio 2012-2013', at the end its installed on VS 2013 that I also have installed but no in VS 2015. I'm running on Windows 10 x64 Enterprise.
Not very important. There is no need to keep exact match between dll and the extension. If the extension is much older than the dll, then the extension could add some code (e.g. via code actions) that is not compatible with the new dll.