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. Other Discussions
  3. The Weird and The Wonderful
  4. Overpaid, over engineered and totally in-yer-face...

Overpaid, over engineered and totally in-yer-face...

Scheduled Pinned Locked Moved The Weird and The Wonderful
16 Posts 6 Posters 1 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.
  • D Offline
    D Offline
    Duncan Edwards Jones
    wrote on last edited by
    #1

    One of my own little beauties to show why I should be kept on a short leash...

    ''' <summary>
    ''' Projection over the client event stream to summarise the state of a client
    ''' </summary>
    Public NotInheritable Class ClientSummaryProjection
    Inherits ProjectionBase(Of AggregateIdentifiers.ClientAggregateIdentity)
    Implements IEventConsumer(Of AggregateIdentifiers.ClientAggregateIdentity, Events.Client.NewBazaarCreatedEvent)
    Implements IEventConsumer(Of AggregateIdentifiers.ClientAggregateIdentity, Events.Client.BazaarClosedEvent)
    Implements IEventConsumer(Of AggregateIdentifiers.ClientAggregateIdentity, Events.Client.CreatedEvent)
    Implements IEventConsumer(Of AggregateIdentifiers.ClientAggregateIdentity, Events.Client.ClientNameChangedEvent)
    Implements IEventConsumer(Of AggregateIdentifiers.ClientAggregateIdentity, Events.Client.DisabledEvent)
    Implements IEventConsumer(Of AggregateIdentifiers.ClientAggregateIdentity, Events.Client.EnabledEvent)

    ReadOnly m\_identity As AggregateIdentifiers.ClientAggregateIdentity
    ''' <summary>
    ''' The aggregate identifier of the client over which this projection applies
    ''' </summary>
    Public Overrides ReadOnly Property Identity As AggregateIdentifiers.ClientAggregateIdentity
        Get
            Return m\_identity
        End Get
    End Property
    
    
    Private m\_openBazaars As Integer
    ''' <summary>
    ''' The number of Bazaars open at this point in time
    ''' </summary>
    Public ReadOnly Property OpenBazaars As Integer
        Get
            Return m\_openBazaars
        End Get
    End Property
    
    Private m\_totalBazaars As Integer
    ''' <summary>
    ''' The total number of bazaars ever opened for this client at this point in time
    ''' </summary>
    Public ReadOnly Property TotalBazaars As Integer
        Get
            Return m\_totalBazaars
        End Get
    End Property
    
    Private m\_clientName As String
    ''' <summary>
    ''' The full display name to use for the client
    ''' </summary>
    Public ReadOnly Property ClientName As String
        Get
            Return m\_clientName
        End Get
    End Property
    
    
    Private m\_enabled As Boolean = True
    ''' <summary>
    '
    
    M N 2 Replies Last reply
    0
    • D Duncan Edwards Jones

      One of my own little beauties to show why I should be kept on a short leash...

      ''' <summary>
      ''' Projection over the client event stream to summarise the state of a client
      ''' </summary>
      Public NotInheritable Class ClientSummaryProjection
      Inherits ProjectionBase(Of AggregateIdentifiers.ClientAggregateIdentity)
      Implements IEventConsumer(Of AggregateIdentifiers.ClientAggregateIdentity, Events.Client.NewBazaarCreatedEvent)
      Implements IEventConsumer(Of AggregateIdentifiers.ClientAggregateIdentity, Events.Client.BazaarClosedEvent)
      Implements IEventConsumer(Of AggregateIdentifiers.ClientAggregateIdentity, Events.Client.CreatedEvent)
      Implements IEventConsumer(Of AggregateIdentifiers.ClientAggregateIdentity, Events.Client.ClientNameChangedEvent)
      Implements IEventConsumer(Of AggregateIdentifiers.ClientAggregateIdentity, Events.Client.DisabledEvent)
      Implements IEventConsumer(Of AggregateIdentifiers.ClientAggregateIdentity, Events.Client.EnabledEvent)

      ReadOnly m\_identity As AggregateIdentifiers.ClientAggregateIdentity
      ''' <summary>
      ''' The aggregate identifier of the client over which this projection applies
      ''' </summary>
      Public Overrides ReadOnly Property Identity As AggregateIdentifiers.ClientAggregateIdentity
          Get
              Return m\_identity
          End Get
      End Property
      
      
      Private m\_openBazaars As Integer
      ''' <summary>
      ''' The number of Bazaars open at this point in time
      ''' </summary>
      Public ReadOnly Property OpenBazaars As Integer
          Get
              Return m\_openBazaars
          End Get
      End Property
      
      Private m\_totalBazaars As Integer
      ''' <summary>
      ''' The total number of bazaars ever opened for this client at this point in time
      ''' </summary>
      Public ReadOnly Property TotalBazaars As Integer
          Get
              Return m\_totalBazaars
          End Get
      End Property
      
      Private m\_clientName As String
      ''' <summary>
      ''' The full display name to use for the client
      ''' </summary>
      Public ReadOnly Property ClientName As String
          Get
              Return m\_clientName
          End Get
      End Property
      
      
      Private m\_enabled As Boolean = True
      ''' <summary>
      '
      
      M Offline
      M Offline
      Marc Clifton
      wrote on last edited by
      #2

      I think you just proved why I have such a low opinion of VB programmers. (Marc ducks and runs for cover)

      Imperative to Functional Programming Succinctly Contributors Wanted for Higher Order Programming Project!

      D 1 Reply Last reply
      0
      • M Marc Clifton

        I think you just proved why I have such a low opinion of VB programmers. (Marc ducks and runs for cover)

        Imperative to Functional Programming Succinctly Contributors Wanted for Higher Order Programming Project!

        D Offline
        D Offline
        Duncan Edwards Jones
        wrote on last edited by
        #3

        It'd probably be as ugly in C#with the need for explicit interface implementation

        L 1 Reply Last reply
        0
        • D Duncan Edwards Jones

          It'd probably be as ugly in C#with the need for explicit interface implementation

          L Offline
          L Offline
          Lost User
          wrote on last edited by
          #4

          It's been a while since I've seen any VB..

          Public ReadOnly Property Enabled As Boolean
          Get
          Return m_enabled
          End Get
          End Property

          C# certainly appears to be slightly cleaner in my opinion, although it's a matter of preference/working environment/etc..

          public readonly bool Enabled { get { return m_enabled; } }

          How do you know so much about swallows? Well, you have to know these things when you're a king, you know.

          D Sander RosselS 2 Replies Last reply
          0
          • L Lost User

            It's been a while since I've seen any VB..

            Public ReadOnly Property Enabled As Boolean
            Get
            Return m_enabled
            End Get
            End Property

            C# certainly appears to be slightly cleaner in my opinion, although it's a matter of preference/working environment/etc..

            public readonly bool Enabled { get { return m_enabled; } }

            How do you know so much about swallows? Well, you have to know these things when you're a king, you know.

            D Offline
            D Offline
            Duncan Edwards Jones
            wrote on last edited by
            #5

            You can do implied getters/setters in VB (and C#) to save a bit of space. It was more the one implements of the interface per event handler that was the OMG part.

            L 1 Reply Last reply
            0
            • D Duncan Edwards Jones

              You can do implied getters/setters in VB (and C#) to save a bit of space. It was more the one implements of the interface per event handler that was the OMG part.

              L Offline
              L Offline
              Lost User
              wrote on last edited by
              #6

              I've seen a lot (lot) worse, tbh :(

              How do you know so much about swallows? Well, you have to know these things when you're a king, you know.

              1 Reply Last reply
              0
              • L Lost User

                It's been a while since I've seen any VB..

                Public ReadOnly Property Enabled As Boolean
                Get
                Return m_enabled
                End Get
                End Property

                C# certainly appears to be slightly cleaner in my opinion, although it's a matter of preference/working environment/etc..

                public readonly bool Enabled { get { return m_enabled; } }

                How do you know so much about swallows? Well, you have to know these things when you're a king, you know.

                Sander RosselS Offline
                Sander RosselS Offline
                Sander Rossel
                wrote on last edited by
                #7

                Public Property Something As String
                Get
                Return _Something
                End Get
                Set(value As String)
                _Something = value
                End Set
                End Property

                public string Something
                {
                get
                {
                return _Something;
                }
                set
                {
                _Something = value;
                }
                }

                That's eight vs. eleven lines. It adds up! I always find VB has a vertical cleanliness whereas C# has a horizontal cleanliness :) I love both languages by the way. It's just a little bit easier to write messy code in VB due to backwards compatibility with VB1-6, but you can write utter crap in both languages any language! Started out in VB.NET and later moved to C#.

                Visit my blog at Sander's bits - Writing the code you need. Or read my articles at my CodeProject profile.

                Simplicity is prerequisite for reliability. — Edsger W. Dijkstra

                Regards, Sander

                L 1 Reply Last reply
                0
                • Sander RosselS Sander Rossel

                  Public Property Something As String
                  Get
                  Return _Something
                  End Get
                  Set(value As String)
                  _Something = value
                  End Set
                  End Property

                  public string Something
                  {
                  get
                  {
                  return _Something;
                  }
                  set
                  {
                  _Something = value;
                  }
                  }

                  That's eight vs. eleven lines. It adds up! I always find VB has a vertical cleanliness whereas C# has a horizontal cleanliness :) I love both languages by the way. It's just a little bit easier to write messy code in VB due to backwards compatibility with VB1-6, but you can write utter crap in both languages any language! Started out in VB.NET and later moved to C#.

                  Visit my blog at Sander's bits - Writing the code you need. Or read my articles at my CodeProject profile.

                  Simplicity is prerequisite for reliability. — Edsger W. Dijkstra

                  Regards, Sander

                  L Offline
                  L Offline
                  Lost User
                  wrote on last edited by
                  #8

                  In your example, VB has 20 keywords, variable names, etc. C# has 9. Nuff said :)

                  How do you know so much about swallows? Well, you have to know these things when you're a king, you know.

                  Sander RosselS 1 Reply Last reply
                  0
                  • L Lost User

                    In your example, VB has 20 keywords, variable names, etc. C# has 9. Nuff said :)

                    How do you know so much about swallows? Well, you have to know these things when you're a king, you know.

                    Sander RosselS Offline
                    Sander RosselS Offline
                    Sander Rossel
                    wrote on last edited by
                    #9

                    But still less vertical space! :laugh:

                    Visit my blog at Sander's bits - Writing the code you need. Or read my articles at my CodeProject profile.

                    Simplicity is prerequisite for reliability. — Edsger W. Dijkstra

                    Regards, Sander

                    L 1 Reply Last reply
                    0
                    • Sander RosselS Sander Rossel

                      But still less vertical space! :laugh:

                      Visit my blog at Sander's bits - Writing the code you need. Or read my articles at my CodeProject profile.

                      Simplicity is prerequisite for reliability. — Edsger W. Dijkstra

                      Regards, Sander

                      L Offline
                      L Offline
                      Lost User
                      wrote on last edited by
                      #10

                      Sander Rossel wrote:

                      But still less vertical space! :laugh:

                      public string Something
                      {
                      get { return _Something; }
                      set { _Something = value; }
                      }

                      Where, exactly?

                      Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^][](X-Clacks-Overhead: GNU Terry Pratchett)

                      Sander RosselS L S 3 Replies Last reply
                      0
                      • L Lost User

                        Sander Rossel wrote:

                        But still less vertical space! :laugh:

                        public string Something
                        {
                        get { return _Something; }
                        set { _Something = value; }
                        }

                        Where, exactly?

                        Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^][](X-Clacks-Overhead: GNU Terry Pratchett)

                        Sander RosselS Offline
                        Sander RosselS Offline
                        Sander Rossel
                        wrote on last edited by
                        #11

                        Stop ruining my point with your better syntax![^] :laugh: So maybe properties aren't the best example... Let's look at a switch statement? Always loved them in VB, but disliked them in C# (mandatory break!?)... :)

                        Visit my blog at Sander's bits - Writing the code you need. Or read my articles at my CodeProject profile.

                        Simplicity is prerequisite for reliability. — Edsger W. Dijkstra

                        Regards, Sander

                        1 Reply Last reply
                        0
                        • L Lost User

                          Sander Rossel wrote:

                          But still less vertical space! :laugh:

                          public string Something
                          {
                          get { return _Something; }
                          set { _Something = value; }
                          }

                          Where, exactly?

                          Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^][](X-Clacks-Overhead: GNU Terry Pratchett)

                          L Offline
                          L Offline
                          Lost User
                          wrote on last edited by
                          #12

                          Yep, that's how I would write simple getters and setters. I only go multiline if there's some additional logic in there :)

                          How do you know so much about swallows? Well, you have to know these things when you're a king, you know.

                          1 Reply Last reply
                          0
                          • L Lost User

                            Sander Rossel wrote:

                            But still less vertical space! :laugh:

                            public string Something
                            {
                            get { return _Something; }
                            set { _Something = value; }
                            }

                            Where, exactly?

                            Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^][](X-Clacks-Overhead: GNU Terry Pratchett)

                            S Offline
                            S Offline
                            Sinisa Hajnal
                            wrote on last edited by
                            #13

                            In VB.NET you could type only Public String Something variable _Someting would be internally created and accessible without explicit definition. I don't know if they added it in C# too.. While there are more keywords, intellisense is better and there is actually less typing in vb version :)

                            L 1 Reply Last reply
                            0
                            • S Sinisa Hajnal

                              In VB.NET you could type only Public String Something variable _Someting would be internally created and accessible without explicit definition. I don't know if they added it in C# too.. While there are more keywords, intellisense is better and there is actually less typing in vb version :)

                              L Offline
                              L Offline
                              Lost User
                              wrote on last edited by
                              #14

                              Similar like C#, but there the generated backing-field is not accessible. http://www.infoq.com/news/2009/06/Auto-Properties[^]

                              Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^][](X-Clacks-Overhead: GNU Terry Pratchett)

                              1 Reply Last reply
                              0
                              • D Duncan Edwards Jones

                                One of my own little beauties to show why I should be kept on a short leash...

                                ''' <summary>
                                ''' Projection over the client event stream to summarise the state of a client
                                ''' </summary>
                                Public NotInheritable Class ClientSummaryProjection
                                Inherits ProjectionBase(Of AggregateIdentifiers.ClientAggregateIdentity)
                                Implements IEventConsumer(Of AggregateIdentifiers.ClientAggregateIdentity, Events.Client.NewBazaarCreatedEvent)
                                Implements IEventConsumer(Of AggregateIdentifiers.ClientAggregateIdentity, Events.Client.BazaarClosedEvent)
                                Implements IEventConsumer(Of AggregateIdentifiers.ClientAggregateIdentity, Events.Client.CreatedEvent)
                                Implements IEventConsumer(Of AggregateIdentifiers.ClientAggregateIdentity, Events.Client.ClientNameChangedEvent)
                                Implements IEventConsumer(Of AggregateIdentifiers.ClientAggregateIdentity, Events.Client.DisabledEvent)
                                Implements IEventConsumer(Of AggregateIdentifiers.ClientAggregateIdentity, Events.Client.EnabledEvent)

                                ReadOnly m\_identity As AggregateIdentifiers.ClientAggregateIdentity
                                ''' <summary>
                                ''' The aggregate identifier of the client over which this projection applies
                                ''' </summary>
                                Public Overrides ReadOnly Property Identity As AggregateIdentifiers.ClientAggregateIdentity
                                    Get
                                        Return m\_identity
                                    End Get
                                End Property
                                
                                
                                Private m\_openBazaars As Integer
                                ''' <summary>
                                ''' The number of Bazaars open at this point in time
                                ''' </summary>
                                Public ReadOnly Property OpenBazaars As Integer
                                    Get
                                        Return m\_openBazaars
                                    End Get
                                End Property
                                
                                Private m\_totalBazaars As Integer
                                ''' <summary>
                                ''' The total number of bazaars ever opened for this client at this point in time
                                ''' </summary>
                                Public ReadOnly Property TotalBazaars As Integer
                                    Get
                                        Return m\_totalBazaars
                                    End Get
                                End Property
                                
                                Private m\_clientName As String
                                ''' <summary>
                                ''' The full display name to use for the client
                                ''' </summary>
                                Public ReadOnly Property ClientName As String
                                    Get
                                        Return m\_clientName
                                    End Get
                                End Property
                                
                                
                                Private m\_enabled As Boolean = True
                                ''' <summary>
                                '
                                
                                N Offline
                                N Offline
                                Nagy Vilmos
                                wrote on last edited by
                                #15

                                VB? I see why you're ashamed!

                                veni bibi saltavi

                                D 1 Reply Last reply
                                0
                                • N Nagy Vilmos

                                  VB? I see why you're ashamed!

                                  veni bibi saltavi

                                  D Offline
                                  D Offline
                                  Duncan Edwards Jones
                                  wrote on last edited by
                                  #16

                                  expected ';' ;P

                                  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