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. Gripe: No, you can keep your 60 tiny DLLs. I'll find another way.

Gripe: No, you can keep your 60 tiny DLLs. I'll find another way.

Scheduled Pinned Locked Moved The Lounge
questioncsharpsysadmin
70 Posts 17 Posters 7 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.
  • honey the codewitchH honey the codewitch

    What is it with some .NET developers and their desire to segregate their project into a billion different DLLs? Nobody wants to install that. Nobody wants to deal with that. Stop it. Is it a server application? No? Then go soak your head. With a particular side-eye toward MonoTorrent. Edit: I see I'm not alone in this sentiment. I thought I might have been a lone voice in the wilderness here. To the people that disagree, you raise some valid points, but I think context is important - there's a time and a place for lots of DLLs (like server code) and times when it's overdone. I'll cede that if you will.

    When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

    U Offline
    U Offline
    User 2893688
    wrote on last edited by
    #61

    Pretty sure you were under a rock or something. Most modern code is client/server and needs a ton of dependencies, which can't be bundled into a single DLL due to license problems. With that in mind, .NET begs separation of concerns, so during compilation, regardless of the type of code have, you end up with a gazillion Namespaced DLLs. It would be wiser to have in Windows what NeXT, macOS and iOS started in 1988 and create single folder (*.app) masked as a self contained application where all *.so or *.dll would reside and any foreign code would simply be `symlinked` from source at install time. But that ship has sailed and not even UWP apps do that successfully. So with that in mind, if you want clean code you must go the macOS route, else you'll notice that any #WinUI or Win32 code gets filled easily with DLL. So

    ¯\_(ツ)_/¯

    Keep Calm and Keep Coding

    honey the codewitchH 1 Reply Last reply
    0
    • D Dr Walt Fair PE

      This may be starting to get into programming, but I'll ask for forgiveness rather than permission: How do you make an application self installing? I used to make setup projects in VS2008, but the newer versions of VS don't have that option.

      CQ de W5ALT

      Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software

      honey the codewitchH Offline
      honey the codewitchH Offline
      honey the codewitch
      wrote on last edited by
      #62

      It depends on the app but what I usually do is just build my own tiny installer that writes the registry or as is usually the case, runs com registration and installs itself as a service using the service API. The other option is to use a third party tool (is WIX still around?) to build an installer, embed that as a resource, extract it, run it as a silent install - this will give you all of the fluff of an MSI install - including a program entry in "Add/Remove programs" but that isn't that necessary for tiny apps.

      When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

      1 Reply Last reply
      0
      • U User 2893688

        Pretty sure you were under a rock or something. Most modern code is client/server and needs a ton of dependencies, which can't be bundled into a single DLL due to license problems. With that in mind, .NET begs separation of concerns, so during compilation, regardless of the type of code have, you end up with a gazillion Namespaced DLLs. It would be wiser to have in Windows what NeXT, macOS and iOS started in 1988 and create single folder (*.app) masked as a self contained application where all *.so or *.dll would reside and any foreign code would simply be `symlinked` from source at install time. But that ship has sailed and not even UWP apps do that successfully. So with that in mind, if you want clean code you must go the macOS route, else you'll notice that any #WinUI or Win32 code gets filled easily with DLL. So

        ¯\_(ツ)_/¯

        Keep Calm and Keep Coding

        honey the codewitchH Offline
        honey the codewitchH Offline
        honey the codewitch
        wrote on last edited by
        #63

        I haven't been living under a rock. I just don't do a lot of work with 3rd party components most of the time, and the big offenders like MonoTorrent don't have any 3rd party dependencies but still have like 40-60 projects in them. <-- those are what I'm mainly griping about. You make an excellent point about macos and while I wouldn't necessarily package my filesystem/shell that way** it's a good idea. ** honestly, I'd just make "filesystem extensions" that allow you to traverse compound files like tars and zips and other containers like part of the filesystem - and supporting native FS calls. That way you can just dump everything in it's own "subfilesystem" hive and have that mapped to a tar, or even a flat bin file with an OS FAT header on it.

        When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

        1 Reply Last reply
        0
        • honey the codewitchH honey the codewitch

          What is it with some .NET developers and their desire to segregate their project into a billion different DLLs? Nobody wants to install that. Nobody wants to deal with that. Stop it. Is it a server application? No? Then go soak your head. With a particular side-eye toward MonoTorrent. Edit: I see I'm not alone in this sentiment. I thought I might have been a lone voice in the wilderness here. To the people that disagree, you raise some valid points, but I think context is important - there's a time and a place for lots of DLLs (like server code) and times when it's overdone. I'll cede that if you will.

          When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

          D Offline
          D Offline
          Dale Barnard
          wrote on last edited by
          #64

          We focus heavily on code reuse, so DLL boundaries are focused on assembly dependencies, not on related tasks or something. For example, we have a large C# DLL called Core that has no third-party dependencies, so a bunch of stuff is lumped together that are not related. On the other hand, we wrap a third-party device DLL, so that wrapper is in a DLL by itself due to the extra assembly dependency. The result is that we have a enough DLLs to allow for DLL-boundary code reuse, but we do not further subdivide them based on related source code. The compromise prevents us from having too many DLLs. We have about 40, each with different assembly dependencies.

          honey the codewitchH 1 Reply Last reply
          0
          • honey the codewitchH honey the codewitch

            What is it with some .NET developers and their desire to segregate their project into a billion different DLLs? Nobody wants to install that. Nobody wants to deal with that. Stop it. Is it a server application? No? Then go soak your head. With a particular side-eye toward MonoTorrent. Edit: I see I'm not alone in this sentiment. I thought I might have been a lone voice in the wilderness here. To the people that disagree, you raise some valid points, but I think context is important - there's a time and a place for lots of DLLs (like server code) and times when it's overdone. I'll cede that if you will.

            When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

            M Offline
            M Offline
            MSBassSinger
            wrote on last edited by
            #65

            It was a good idea back when bandwidth was not a generous as it is now. You could update only the small DLLs or small EXE that changed during minor version changes. That made updates quicker and easier.

            1 Reply Last reply
            0
            • D Dale Barnard

              We focus heavily on code reuse, so DLL boundaries are focused on assembly dependencies, not on related tasks or something. For example, we have a large C# DLL called Core that has no third-party dependencies, so a bunch of stuff is lumped together that are not related. On the other hand, we wrap a third-party device DLL, so that wrapper is in a DLL by itself due to the extra assembly dependency. The result is that we have a enough DLLs to allow for DLL-boundary code reuse, but we do not further subdivide them based on related source code. The compromise prevents us from having too many DLLs. We have about 40, each with different assembly dependencies.

              honey the codewitchH Offline
              honey the codewitchH Offline
              honey the codewitch
              wrote on last edited by
              #66

              That makes sense

              When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

              1 Reply Last reply
              0
              • honey the codewitchH honey the codewitch

                What is it with some .NET developers and their desire to segregate their project into a billion different DLLs? Nobody wants to install that. Nobody wants to deal with that. Stop it. Is it a server application? No? Then go soak your head. With a particular side-eye toward MonoTorrent. Edit: I see I'm not alone in this sentiment. I thought I might have been a lone voice in the wilderness here. To the people that disagree, you raise some valid points, but I think context is important - there's a time and a place for lots of DLLs (like server code) and times when it's overdone. I'll cede that if you will.

                When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                R Offline
                R Offline
                Reelix
                wrote on last edited by
                #67

                You're gonna love .NET Core...........

                -= Reelix =-

                honey the codewitchH 1 Reply Last reply
                0
                • R Reelix

                  You're gonna love .NET Core...........

                  -= Reelix =-

                  honey the codewitchH Offline
                  honey the codewitchH Offline
                  honey the codewitch
                  wrote on last edited by
                  #68

                  that's my primary dev platform right now. I switch between that and C++/win

                  When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                  1 Reply Last reply
                  0
                  • honey the codewitchH honey the codewitch

                    What is it with some .NET developers and their desire to segregate their project into a billion different DLLs? Nobody wants to install that. Nobody wants to deal with that. Stop it. Is it a server application? No? Then go soak your head. With a particular side-eye toward MonoTorrent. Edit: I see I'm not alone in this sentiment. I thought I might have been a lone voice in the wilderness here. To the people that disagree, you raise some valid points, but I think context is important - there's a time and a place for lots of DLLs (like server code) and times when it's overdone. I'll cede that if you will.

                    When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                    K Offline
                    K Offline
                    KLPounds
                    wrote on last edited by
                    #69

                    I have no skin in this game. There is no one size fits all IMO. I've worked on (and perpetuated :sigh: ) projects that have gone to both extremes. From client required single 25MB "common library" for a LOB app all the way to an anal retentive "separation of concerns including the weather at compile time" sort of thing. A 10 assembly Rube Goldberg like console app factored "for optimal code reuse" for a process so incredibly narrow in scope it that probably could have been handled in a powershell script. How about from a Visual Studio perspective.. Anyone else, cool with having to wade through 60+ projects with dozens of code files per project within an application solution? Or even just having to deal with each version of VS seemingly choking on larger numbers of projects in a solution more and more? I know I frankly love having to update my PC hardware every other version just maintain a standard of productivity and performance for the exact same codebase. Solution organization and hierarchy alone could be a soapbox unto itself. :laugh:

                    honey the codewitchH 1 Reply Last reply
                    0
                    • K KLPounds

                      I have no skin in this game. There is no one size fits all IMO. I've worked on (and perpetuated :sigh: ) projects that have gone to both extremes. From client required single 25MB "common library" for a LOB app all the way to an anal retentive "separation of concerns including the weather at compile time" sort of thing. A 10 assembly Rube Goldberg like console app factored "for optimal code reuse" for a process so incredibly narrow in scope it that probably could have been handled in a powershell script. How about from a Visual Studio perspective.. Anyone else, cool with having to wade through 60+ projects with dozens of code files per project within an application solution? Or even just having to deal with each version of VS seemingly choking on larger numbers of projects in a solution more and more? I know I frankly love having to update my PC hardware every other version just maintain a standard of productivity and performance for the exact same codebase. Solution organization and hierarchy alone could be a soapbox unto itself. :laugh:

                      honey the codewitchH Offline
                      honey the codewitchH Offline
                      honey the codewitch
                      wrote on last edited by
                      #70

                      i'd upvote this twice if i could for the devstudio comment

                      When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                      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