How Can Library Code "know" it's hosting application type?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Smithers

    #1

    How Can Library Code "know" it's hosting application type?

    I'm writing a code library that needs to be reused between a Windows Forms
    application and and an ASP.NET Web application.

    The library needs to do a couple of things differently depending on the type
    of application the library has been loaded for.

    What is a reliable and non-hacking way for the code to make that
    determination (hosting application type)?

    Using .NET 3.5

    Thanks


  • Nicholas Paldino [.NET/C# MVP]

    #2
    Re: How Can Library Code "know&quot ; it's hosting application type?

    Smithers,

    One way I know of is to set a reference to System.Web.dll and then check
    the static Current poperty of the HttpContext class. If this returns null,
    then there is no HttpContext, and no ASP.NET. Of course, this is only
    applicable if you are actually processing a page. Calling this outside of a
    request pipeline in ASP.NET will still return null, so if you need this for
    one-time initialization, you might have to look for another option.


    --
    - Nicholas Paldino [.NET/C# MVP]
    - mvp@spam.guard. caspershouse.co m

    "Smithers" <A@B.comwrote in message
    news:emfthEQ2HH A.5160@TK2MSFTN GP05.phx.gbl...
    I'm writing a code library that needs to be reused between a Windows Forms
    application and and an ASP.NET Web application.
    >
    The library needs to do a couple of things differently depending on the
    type of application the library has been loaded for.
    >
    What is a reliable and non-hacking way for the code to make that
    determination (hosting application type)?
    >
    Using .NET 3.5
    >
    Thanks
    >

    Comment

    • Marc Gravell

      #3
      Re: How Can Library Code &quot;know&quot ; it's hosting application type?

      Well, ASP.NET often has an HttpContext.Cur rent, but note that
      personally I find this a bit hacky. It also doesn't work for things
      like WCF hosted in IIS. I generally prefer to use a provider model,
      where-by those bits that depend on the architecture are abstracted
      through an interface (with some mechanism to register and obtain the
      provider); in the web app I register one provider (perhaps using an
      HttpModule to configure via web.config), and in the client I register
      another.

      But I guess it depends on how big the change is...

      Marc


      Comment

      • Ralph

        #4
        Re: How Can Library Code &quot;know&quot ; it's hosting application type?


        "Smithers" <A@B.comwrote in message
        news:emfthEQ2HH A.5160@TK2MSFTN GP05.phx.gbl...
        I'm writing a code library that needs to be reused between a Windows Forms
        application and and an ASP.NET Web application.
        >
        The library needs to do a couple of things differently depending on the
        type
        of application the library has been loaded for.
        >
        You need to revisit your design. Those "couple of things" likely either
        don't belong in the library or need to be "passed" by the client at the time
        of use.

        -ralph


        Comment

        • Brian

          #5
          Re: How Can Library Code &quot;know&quot ; it's hosting application type?

          In the past I had always checked the current process image name. If it was
          "w3wp.exe" then I knew it was running under IIS. I suggest you also check
          against "WebDev.WebServ er.Exe" since this is what VS 2005 uses during
          development. If I find either of these 2 I assume I'm running in a web
          application - otherwise assume WinForms.

          - Brian
          "Smithers" <A@B.comwrote in message
          news:emfthEQ2HH A.5160@TK2MSFTN GP05.phx.gbl...
          I'm writing a code library that needs to be reused between a Windows Forms
          application and and an ASP.NET Web application.
          >
          The library needs to do a couple of things differently depending on the
          type of application the library has been loaded for.
          >
          What is a reliable and non-hacking way for the code to make that
          determination (hosting application type)?
          >
          Using .NET 3.5
          >
          Thanks
          >

          Comment

          • Samuel R. Neff

            #6
            Re: How Can Library Code &quot;know&quot ; it's hosting application type?


            It's also possible to run ASP.NET under Apache.



            Although much less common. :-)

            Sam

            ------------------------------------------------------------
            We're hiring! B-Line Medical is seeking .NET
            Developers for exciting positions in medical product
            development in MD/DC. Work with a variety of technologies
            in a relaxed team environment. See ads on Dice.com.



            On Tue, 7 Aug 2007 11:09:33 -0500, "Brian" <brianpatterson @ishcm.com>
            wrote:
            >In the past I had always checked the current process image name. If it was
            >"w3wp.exe" then I knew it was running under IIS. I suggest you also check
            >against "WebDev.WebServ er.Exe" since this is what VS 2005 uses during
            >development. If I find either of these 2 I assume I'm running in a web
            >application - otherwise assume WinForms.
            >

            Comment

            Working...