Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. StyleCop

StyleCop

Scheduled Pinned Locked Moved The Lounge
htmlwpfcomcollaborationquestion
50 Posts 22 Posters 3 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Chris Losinger

    enforcing style? sounds like you guys have too much free time. :)

    image processing toolkits | batch image processing

    R Offline
    R Offline
    Rama Krishna Vavilala
    wrote on last edited by
    #12

    Chris Losinger wrote:

    sounds like you guys have too much free time.

    Yes that time can be killed by putting a new developer on ensuring that all files match stylecop rules:)

    Proud to be a CPHog user

    V 1 Reply Last reply
    0
    • R Rama Krishna Vavilala

      I am pretty religious about making sure that my code builds without any warnings when run via Code Analysis (FxCop). BTW Code Analysis is extremely useful and I personally have learned many things I was doing wrong by running CA. Now I am trying to take a step further and use StyleCop[^]. While Code Analysis rules were not as resistive and they made sense most of the times, I am facing a great deal of resistance from myself to require conformation to StyleCop rules. The advantages are obvious it provides automatic way of checking (hence it is possible to enforce easily) styles. Also, it can serve as the authoritative word if there is any disagreement in the team. I see lot of value in every member in a team using the same style. The code is easier to maintain period. Have you used StyleCop? Enforced it in your team? Any benefits?

      Proud to be a CPHog user

      S Offline
      S Offline
      Scott Dorman
      wrote on last edited by
      #13

      You have pretty much listed the reasons for using it. I think the StyleCop rules should be reviewed just like FxCop to determine which ones are actually important. I use it internally for a lot of projects but haven't taken the step of introducing it at work.

      Scott Dorman

      Microsoft® MVP - Visual C# | MCPD President - Tampa Bay IASA [Blog][Articles][Forum Guidelines]


      Hey, hey, hey. Don't be mean. We don't have to be mean because, remember, no matter where you go, there you are. - Buckaroo Banzai

      1 Reply Last reply
      0
      • R Rama Krishna Vavilala

        Judah Himango wrote:

        scares me away from StyleCop

        Same with me. I guess it has to be adopted for new projects. I think adopting FxCop should be mandatory.

        Proud to be a CPHog user

        J Offline
        J Offline
        Judah Gabriel Himango
        wrote on last edited by
        #14

        Rama Krishna Vavilala wrote:

        I think adopting FxCop should be mandatory.

        Me too, but I've been unable to force the devs to adopt it. No one wants to spend time writing unit tests for their code, let alone running an external tool and fixing FxCop violations. How do you enforce it, Rama?

        Tech, life, family, faith: Give me a visit. I'm currently blogging about: Feelings-Based Morality of the Secular World The apostle Paul, modernly speaking: Epistles of Paul Judah Himango

        R 1 Reply Last reply
        0
        • R Rama Krishna Vavilala

          Chris Losinger wrote:

          sounds like you guys have too much free time.

          Yes that time can be killed by putting a new developer on ensuring that all files match stylecop rules:)

          Proud to be a CPHog user

          V Offline
          V Offline
          Vasudevan Deepak Kumar
          wrote on last edited by
          #15

          Rama Krishna Vavilala wrote:

          putting a new developer

          :omg: And he would screw up the existing logic bringing in more bugs.

          Vasudevan Deepak Kumar Personal Homepage
          Tech Gossips
          All the world's a stage, And all the men and women merely players. They have their exits and their entrances; And one man in his time plays many parts... --William Shakespeare

          1 Reply Last reply
          0
          • J Judah Gabriel Himango

            I wanted to get the few other devs here to use StyleCop, but I can't even get them to adopt FxCop. Heck, I've had to fight numerous times to keep unit tests around. One thing that scares me away from StyleCop: I ran it locally on our codebase (some 25k lines of C#) and got back more style violations than the compiler output window could handle. :)

            Tech, life, family, faith: Give me a visit. I'm currently blogging about: Feelings-Based Morality of the Secular World The apostle Paul, modernly speaking: Epistles of Paul Judah Himango

            S Offline
            S Offline
            Scott Dorman
            wrote on last edited by
            #16

            Judah Himango wrote:

            I can't even get them to adopt FxCop

            Do you have automated builds? Make it part of the builds.

            Scott Dorman

            Microsoft® MVP - Visual C# | MCPD President - Tampa Bay IASA [Blog][Articles][Forum Guidelines]


            Hey, hey, hey. Don't be mean. We don't have to be mean because, remember, no matter where you go, there you are. - Buckaroo Banzai

            J 1 Reply Last reply
            0
            • J Judah Gabriel Himango

              Rama Krishna Vavilala wrote:

              I think adopting FxCop should be mandatory.

              Me too, but I've been unable to force the devs to adopt it. No one wants to spend time writing unit tests for their code, let alone running an external tool and fixing FxCop violations. How do you enforce it, Rama?

              Tech, life, family, faith: Give me a visit. I'm currently blogging about: Feelings-Based Morality of the Secular World The apostle Paul, modernly speaking: Epistles of Paul Judah Himango

              R Offline
              R Offline
              Rama Krishna Vavilala
              wrote on last edited by
              #17

              VS 2008 has a build option: "Require Code Analysis". I have that enabled in all the projects (well almost except Web Site projects).

              Proud to be a CPHog user

              J 2 Replies Last reply
              0
              • S Scott Dorman

                Judah Himango wrote:

                I can't even get them to adopt FxCop

                Do you have automated builds? Make it part of the builds.

                Scott Dorman

                Microsoft® MVP - Visual C# | MCPD President - Tampa Bay IASA [Blog][Articles][Forum Guidelines]


                Hey, hey, hey. Don't be mean. We don't have to be mean because, remember, no matter where you go, there you are. - Buckaroo Banzai

                J Offline
                J Offline
                Judah Gabriel Himango
                wrote on last edited by
                #18

                We use CruiseControl for the continuous integration server builds. I tried making FxCop part of the build by having CruiseControl.NET run pre-created .fxcop files for each project. I ran into problems with this: if you do a "ignore this violation" inside FxCop, then later change that code such that your ignored violation no longer applies, running FxCop from the command line will fail. (recalling this from memory 2 years ago or so) Ever see a problem like that?

                Tech, life, family, faith: Give me a visit. I'm currently blogging about: Feelings-Based Morality of the Secular World The apostle Paul, modernly speaking: Epistles of Paul Judah Himango

                S 1 Reply Last reply
                0
                • R Rama Krishna Vavilala

                  VS 2008 has a build option: "Require Code Analysis". I have that enabled in all the projects (well almost except Web Site projects).

                  Proud to be a CPHog user

                  J Offline
                  J Offline
                  Judah Gabriel Himango
                  wrote on last edited by
                  #19

                  That sounds like a great option. We were using VS2005 Pro edition and it didn't have that option. (We're actually upgrading today to VSTS 2008, wish us luck.) Thanks for the advice, I think I'll do that.

                  Tech, life, family, faith: Give me a visit. I'm currently blogging about: Feelings-Based Morality of the Secular World The apostle Paul, modernly speaking: Epistles of Paul Judah Himango

                  K 1 Reply Last reply
                  0
                  • R Rama Krishna Vavilala

                    Even stranger rule: "Don't use regions as it makes code difficult to read". I don't use #region a lot, but why were they added in the first place?

                    Proud to be a CPHog user

                    S Offline
                    S Offline
                    Shog9 0
                    wrote on last edited by
                    #20

                    Rama Krishna Vavilala wrote:

                    I don't use #region a lot, but why were they added in the first place?

                    I think this is another case of developers not caring to use a particular feature, then deciding that because they don't use it it's useless and consequently bad. Jeff Atwood whined about #region on his blog a while back - his argument boiled down to "I don't like them, and even if I did, I'd want my editor to figure out where they should be without explicit hints"; IMHO, that's inane - one might just as well assert that an IDE should expect all code to exist in a single file and provide adequate means of navigation based on the code structure. Personally, i don't care to put all code in regions... but i do consider them useful for tucking away the boring / obscure parts until / unless i actually need to read them.

                    ----

                    You're right. These facts that you've laid out totally contradict the wild ramblings that I pulled off the back of cornflakes packets.

                    E B M 3 Replies Last reply
                    0
                    • R Rama Krishna Vavilala

                      VS 2008 has a build option: "Require Code Analysis". I have that enabled in all the projects (well almost except Web Site projects).

                      Proud to be a CPHog user

                      J Offline
                      J Offline
                      Judah Gabriel Himango
                      wrote on last edited by
                      #21

                      Cool, I see it has a "treat warning as error" option for the FxCop violations. I think I'll enable that. :suss:

                      Tech, life, family, faith: Give me a visit. I'm currently blogging about: Feelings-Based Morality of the Secular World The apostle Paul, modernly speaking: Epistles of Paul Judah Himango

                      1 Reply Last reply
                      0
                      • J Judah Gabriel Himango

                        We use CruiseControl for the continuous integration server builds. I tried making FxCop part of the build by having CruiseControl.NET run pre-created .fxcop files for each project. I ran into problems with this: if you do a "ignore this violation" inside FxCop, then later change that code such that your ignored violation no longer applies, running FxCop from the command line will fail. (recalling this from memory 2 years ago or so) Ever see a problem like that?

                        Tech, life, family, faith: Give me a visit. I'm currently blogging about: Feelings-Based Morality of the Secular World The apostle Paul, modernly speaking: Epistles of Paul Judah Himango

                        S Offline
                        S Offline
                        Scott Dorman
                        wrote on last edited by
                        #22

                        No, I haven't seen a problem like that but I also don't use the ignore violation facilities inside FxCop itself. I prefer putting SuppressMessage attributes where appropriate in the code. That way it is always available and documented in the code without having to resort to looking in an external tool. As long as the project is compiled with the CODE_ANALYSIS symbol defined the attributes will be compiled in so FxCop will pick them up.

                        Scott Dorman

                        Microsoft® MVP - Visual C# | MCPD President - Tampa Bay IASA [Blog][Articles][Forum Guidelines]


                        Hey, hey, hey. Don't be mean. We don't have to be mean because, remember, no matter where you go, there you are. - Buckaroo Banzai

                        J 1 Reply Last reply
                        0
                        • S Scott Dorman

                          No, I haven't seen a problem like that but I also don't use the ignore violation facilities inside FxCop itself. I prefer putting SuppressMessage attributes where appropriate in the code. That way it is always available and documented in the code without having to resort to looking in an external tool. As long as the project is compiled with the CODE_ANALYSIS symbol defined the attributes will be compiled in so FxCop will pick them up.

                          Scott Dorman

                          Microsoft® MVP - Visual C# | MCPD President - Tampa Bay IASA [Blog][Articles][Forum Guidelines]


                          Hey, hey, hey. Don't be mean. We don't have to be mean because, remember, no matter where you go, there you are. - Buckaroo Banzai

                          J Offline
                          J Offline
                          Judah Gabriel Himango
                          wrote on last edited by
                          #23

                          Good point, I'll keep that in mind. We are upgrading to VSTS 2008 today, and Rama mentioned FxCop analysis is built in. I'll try enforcing it from that angle.

                          Tech, life, family, faith: Give me a visit. I'm currently blogging about: Feelings-Based Morality of the Secular World The apostle Paul, modernly speaking: Epistles of Paul Judah Himango

                          1 Reply Last reply
                          0
                          • S Shog9 0

                            Rama Krishna Vavilala wrote:

                            I don't use #region a lot, but why were they added in the first place?

                            I think this is another case of developers not caring to use a particular feature, then deciding that because they don't use it it's useless and consequently bad. Jeff Atwood whined about #region on his blog a while back - his argument boiled down to "I don't like them, and even if I did, I'd want my editor to figure out where they should be without explicit hints"; IMHO, that's inane - one might just as well assert that an IDE should expect all code to exist in a single file and provide adequate means of navigation based on the code structure. Personally, i don't care to put all code in regions... but i do consider them useful for tucking away the boring / obscure parts until / unless i actually need to read them.

                            ----

                            You're right. These facts that you've laid out totally contradict the wild ramblings that I pulled off the back of cornflakes packets.

                            E Offline
                            E Offline
                            El Corazon
                            wrote on last edited by
                            #24

                            I want to think at my IDE and it will, simply be the thought of the final product, write all the code for me including placement of regions naming conventions and even comments with a full user's manual. If you want to expect great things from the IDE let's get some brain power going.

                            _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb) John Andrew Holmes "It is well to remember that the entire universe, with one trifling exception, is composed of others."

                            S B 2 Replies Last reply
                            0
                            • E El Corazon

                              I want to think at my IDE and it will, simply be the thought of the final product, write all the code for me including placement of regions naming conventions and even comments with a full user's manual. If you want to expect great things from the IDE let's get some brain power going.

                              _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb) John Andrew Holmes "It is well to remember that the entire universe, with one trifling exception, is composed of others."

                              S Offline
                              S Offline
                              Shog9 0
                              wrote on last edited by
                              #25

                              El Corazon wrote:

                              If you want to expect great things from the IDE let's get some brain power going.

                              I tried coding up your idea... threw together a prototype... thought at it... ...and it wrote: "PLZ SEND TEH CODES! URGENT!!!"

                              ----

                              You're right. These facts that you've laid out totally contradict the wild ramblings that I pulled off the back of cornflakes packets.

                              1 Reply Last reply
                              0
                              • J Judah Gabriel Himango

                                That sounds like a great option. We were using VS2005 Pro edition and it didn't have that option. (We're actually upgrading today to VSTS 2008, wish us luck.) Thanks for the advice, I think I'll do that.

                                Tech, life, family, faith: Give me a visit. I'm currently blogging about: Feelings-Based Morality of the Secular World The apostle Paul, modernly speaking: Epistles of Paul Judah Himango

                                K Offline
                                K Offline
                                Kevin McFarlane
                                wrote on last edited by
                                #26

                                Doesn't Team Foundation Server have some sort of "require passing unit tests before you can check in" thing?

                                Kevin

                                J R 2 Replies Last reply
                                0
                                • S Scott Dorman

                                  Super Lloyd wrote:

                                  I found it a myth than consistent style help speed up the understanding.

                                  Completely untrue, in my opinion. Having a consistent style is incredibly important to improving the readability of the code by other team members, which, in turn, increases the quality of the code. The more readable and understandable the code, the easier it is to find bugs and fix them as you don't have to spend a lot of time trying to puzzle out the structure.

                                  Super Lloyd wrote:

                                  the main factor for understanding a problem is: Complexity!

                                  Understanding a problem and being able to troubleshoot the code on screen are two different things. I have run in to numerous occasions where the problem was completely obvious from the behavior exhibited but required a non-trivial fix because the code was written in such a way as to unreadable (and no, it wasn't because the design was overly complicated with a lot of classes, interfaces, etc.).

                                  Scott Dorman

                                  Microsoft® MVP - Visual C# | MCPD President - Tampa Bay IASA [Blog][Articles][Forum Guidelines]


                                  Hey, hey, hey. Don't be mean. We don't have to be mean because, remember, no matter where you go, there you are. - Buckaroo Banzai

                                  S Offline
                                  S Offline
                                  Super Lloyd
                                  wrote on last edited by
                                  #27

                                  I meant complexity of the code, not complexity of the problem!

                                  A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.

                                  1 Reply Last reply
                                  0
                                  • R Rama Krishna Vavilala

                                    Even stranger rule: "Don't use regions as it makes code difficult to read". I don't use #region a lot, but why were they added in the first place?

                                    Proud to be a CPHog user

                                    L Offline
                                    L Offline
                                    Le centriste
                                    wrote on last edited by
                                    #28

                                    I use regions, while not abusing them. 2 main uses: Group of class members (private members, constructors, properties, ...) and on top of method bodies, usually with 2 sections: parameters validation, where I throw exceptions, and assertions. When "collapsed", you can have a better view of your code without all the validation stuff in the way.

                                    1 Reply Last reply
                                    0
                                    • S Scott Dorman

                                      Super Lloyd wrote:

                                      I found it a myth than consistent style help speed up the understanding.

                                      Completely untrue, in my opinion. Having a consistent style is incredibly important to improving the readability of the code by other team members, which, in turn, increases the quality of the code. The more readable and understandable the code, the easier it is to find bugs and fix them as you don't have to spend a lot of time trying to puzzle out the structure.

                                      Super Lloyd wrote:

                                      the main factor for understanding a problem is: Complexity!

                                      Understanding a problem and being able to troubleshoot the code on screen are two different things. I have run in to numerous occasions where the problem was completely obvious from the behavior exhibited but required a non-trivial fix because the code was written in such a way as to unreadable (and no, it wasn't because the design was overly complicated with a lot of classes, interfaces, etc.).

                                      Scott Dorman

                                      Microsoft® MVP - Visual C# | MCPD President - Tampa Bay IASA [Blog][Articles][Forum Guidelines]


                                      Hey, hey, hey. Don't be mean. We don't have to be mean because, remember, no matter where you go, there you are. - Buckaroo Banzai

                                      S Offline
                                      S Offline
                                      Super Lloyd
                                      wrote on last edited by
                                      #29

                                      Scott Dorman wrote:

                                      Having a consistent style is incredibly important to improving the readability ...

                                      This kind of quite widespread attitude have translated, as far as Im concern, into endless discussion such as: - "Use tabs instead of space (or the opposite)" - "Always put a bracket after a if/for, or do not put a bracket for a single instrcution" Not only this instruction conflict from person to person, but I personally found that, the ratio of the length of time debating the merit of each these versus the benefit is a complete waste of time...

                                      A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.

                                      K S 2 Replies Last reply
                                      0
                                      • E El Corazon

                                        I want to think at my IDE and it will, simply be the thought of the final product, write all the code for me including placement of regions naming conventions and even comments with a full user's manual. If you want to expect great things from the IDE let's get some brain power going.

                                        _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb) John Andrew Holmes "It is well to remember that the entire universe, with one trifling exception, is composed of others."

                                        B Offline
                                        B Offline
                                        Bassam Abdul Baki
                                        wrote on last edited by
                                        #30

                                        Would you ... like to ... play a ... game?


                                        Web - Blog - RSS - Math - BM

                                        E B 2 Replies Last reply
                                        0
                                        • R Rama Krishna Vavilala

                                          I am pretty religious about making sure that my code builds without any warnings when run via Code Analysis (FxCop). BTW Code Analysis is extremely useful and I personally have learned many things I was doing wrong by running CA. Now I am trying to take a step further and use StyleCop[^]. While Code Analysis rules were not as resistive and they made sense most of the times, I am facing a great deal of resistance from myself to require conformation to StyleCop rules. The advantages are obvious it provides automatic way of checking (hence it is possible to enforce easily) styles. Also, it can serve as the authoritative word if there is any disagreement in the team. I see lot of value in every member in a team using the same style. The code is easier to maintain period. Have you used StyleCop? Enforced it in your team? Any benefits?

                                          Proud to be a CPHog user

                                          E Offline
                                          E Offline
                                          Ennis Ray Lynch Jr
                                          wrote on last edited by
                                          #31

                                          StyleCop type features are useful for inexperienced developers and developers that make a lot of mistakes. Once you develop a consistent rhythm you should trust your self. Part of development is an art. My rule of them is, once you learn the science move to the art but don't start the other way around. The bigger problem with mandating a style for everyone is you make a few assumptions 1) That the style is mandated is the best style possible and 2) you don't care about innovation. I would be willing to wage that for every successful software project (success measured as on-time and meets all functional points and under budget) you fill find 100 projects without mandated style for every project with. You will also notice a correlation between project failure and increased number of developers as well as the correlation between number of developers and institution of such things as style rules. I would say, anecdotal, that there would not be a correlation between project cost.

                                          Need software developed? Offering C# development all over the United States, ERL GLOBAL, Inc is the only call you will have to make.
                                          Happiness in intelligent people is the rarest thing I know. -- Ernest Hemingway
                                          Most of this sig is for Google, not ego.

                                          T 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups