Re: Versioning and Streams (was: Object is Evil)


DevX Home    Today's Headlines   Articles Archive   Tip Bank   Forums   

Results 1 to 4 of 4

Thread: Re: Versioning and Streams (was: Object is Evil)

  1. #1
    Rob Teixeira Guest

    Re: Versioning and Streams (was: Object is Evil)



    That's an interesting usage of streams, but .NET does not utilize this mechanism.
    Primarily, something as fundamental as file IO, versioning, and assembly
    loading can't be tied that closely to a proprietary system. This wouldn't
    work on NT4.0 or 98/ME, for example.

    .NET will look for files (libraries) in directories or subdirectories of
    the application. Otherwise, shared components are stored in the GAC (global
    assembly cache), which looks like a directory, but is actually implemented
    as multiple subdirectories for each version of a component.

    -Rob

    "Mark Alexander Bertenshaw" <mark.bertenshaw@virgin.net> wrote:
    >
    >I was reading about NT the other month, and found out that the NTFS actually
    >supports a concept called "streams". This is different from your explanation,
    >since there is still one file appearing in Explorer or the command prompt,
    >but there are in fact another of completely different "streams" within that
    >one file. As long as .NET isn't based on top of DOS code, this would be
    >completely feasible.
    >
    >--
    >Mark Alexander Bertenshaw
    >Programmer/Analyst
    >Chordiant Software, Inc.
    >Brentford
    >UK



  2. #2
    Mark Alexander Bertenshaw Guest

    Re: Versioning and Streams (was: Object is Evil)


    "Rob Teixeira" <RobTeixeira@@msn.com> wrote:
    >
    >
    >That's an interesting usage of streams, but .NET does not utilize this mechanism.
    >Primarily, something as fundamental as file IO, versioning, and assembly
    >loading can't be tied that closely to a proprietary system. This wouldn't
    >work on NT4.0 or 98/ME, for example.
    >
    >.NET will look for files (libraries) in directories or subdirectories of
    >the application. Otherwise, shared components are stored in the GAC (global
    >assembly cache), which looks like a directory, but is actually implemented
    >as multiple subdirectories for each version of a component.
    >
    >-Rob
    >


    Rob -

    .NET uses multiple directories for components? That's really cheesy! I
    thought there would be a more interesting mechanism *8-). But now you mention
    it, I can see that this would have the effect of being cross-platform, at
    little programming cost.

    --
    Mark Alexander Bertenshaw
    Programmer/Analyst
    Chordiant Software, Inc.
    Brentford
    UK

  3. #3
    Jonathan Allen Guest

    Re: Versioning and Streams (was: Object is Evil)

    Streams are not well supported by the OS anyways. For instance, there is no
    warning when you move a streamed file onto a non-streamed drive such as a
    floppy disk.

    The only use for it I have found is "magic tricks" in school.

    --
    Jonathan Allen


    "Rob Teixeira" <RobTeixeira@@msn.com> wrote in message
    news:3bc1bf71$1@news.devx.com...
    >
    >
    > That's an interesting usage of streams, but .NET does not utilize this

    mechanism.
    > Primarily, something as fundamental as file IO, versioning, and assembly
    > loading can't be tied that closely to a proprietary system. This wouldn't
    > work on NT4.0 or 98/ME, for example.
    >
    > NET will look for files (libraries) in directories or subdirectories of
    > the application. Otherwise, shared components are stored in the GAC

    (global
    > assembly cache), which looks like a directory, but is actually implemented
    > as multiple subdirectories for each version of a component.
    >
    > -Rob
    >
    > "Mark Alexander Bertenshaw" <mark.bertenshaw@virgin.net> wrote:
    > >
    > >I was reading about NT the other month, and found out that the NTFS

    actually
    > >supports a concept called "streams". This is different from your

    explanation,
    > >since there is still one file appearing in Explorer or the command

    prompt,
    > >but there are in fact another of completely different "streams" within

    that
    > >one file. As long as .NET isn't based on top of DOS code, this would be
    > >completely feasible.
    > >
    > >--
    > >Mark Alexander Bertenshaw
    > >Programmer/Analyst
    > >Chordiant Software, Inc.
    > >Brentford
    > >UK

    >




  4. #4
    Rob Teixeira Guest

    Re: Versioning and Streams (was: Object is Evil)


    "Mark Alexander Bertenshaw" <mark.bertenshaw@virgin.net> wrote:
    >
    >Rob -
    >
    >.NET uses multiple directories for components? That's really cheesy! I
    >thought there would be a more interesting mechanism *8-).


    Well, I admit to that being a bit of an oversimplification. So in reality,
    it's not *that* cheesy

    For programs where you have custom libraries, you can simply copy the library
    into the directory of the application or one of its subdirectories, make
    the appropriate references in the assembly manifest, and you will always
    have the correct version of the library, no matter how many other versions
    are installed on the system.

    On the other hand, there are libraries that are intended to be shared by
    many programs. These are installed in the GAC (global assembly cache). The
    programs can specify which version of a global library they wish to use,
    and they will always be bound to that version. Internally, the GAC stores
    the different versions of an assembly in different subdirectories. These
    directories are given a unique strong name to avoid name collisions. Externally,
    the GAC looks like a flat container.

    >But now you mention
    >it, I can see that this would have the effect of being cross-platform, at
    >little programming cost.


    Yes

    -Rob

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center
 
 
FAQ
Latest Articles
Java
.NET
XML
Database
Enterprise
Questions? Contact us.
C++
Web Development
Wireless
Latest Tips
Open Source


   Development Centers

   -- Android Development Center
   -- Cloud Development Project Center
   -- HTML5 Development Center
   -- Windows Mobile Development Center