Git Product home page Git Product logo

Comments (21)

weshaggard avatar weshaggard commented on July 18, 2024

I've factored the AppDomain APIs into a separate cs file (https://github.com/dotnet/standard/blob/master/netstandard/ref/mscorlib.appdomain.cs) so they will easier to review (it is impossible to review all of mscorlib.cs on the web side) as we factor out the other API sets out of the standard.

from standard.

weshaggard avatar weshaggard commented on July 18, 2024

@jkotas @rahku @DnlHarvey Can you guys take a look at the latest proposed set of AppDomain APIs at https://github.com/dotnet/standard/blob/master/netstandard/ref/mscorlib.appdomain.cs and let me know if you guys see any other issues.

cc @jfree @gkhanna79

from standard.

rahku avatar rahku commented on July 18, 2024

AppDomainManager and AppDOmainSetup are only applicable if we create new domains. I don't think it is applicable for defaultdomain.

from standard.

rahku avatar rahku commented on July 18, 2024

Below two are under FEATURE_CLICKONCE. Should we be including these?
public System.ActivationContext ActivationContext { get { throw null; } }
public System.ApplicationIdentity ApplicationIdentity { get { throw null; } }

from standard.

rahku avatar rahku commented on July 18, 2024

Following seem related to CAS but are not marked as such
public void SetThreadPrincipal(System.Security.Principal.IPrincipal principal) { }
public void SetPrincipalPolicy(System.Security.Principal.PrincipalPolicy policy) { }

Will these be throwing notSupported?
CreateDomain
public static void Unload(System.AppDomain domain) { }

from standard.

weshaggard avatar weshaggard commented on July 18, 2024

I'm still on the fence about AppDomainManager and AppDomainSetup, right now they don't appear to have any value and are heavily sub-setted. Perhaps they are better not being included in netstandard but instead being an extension with all the APIs in the future if we need them @jkota @terrajobst I'm curious if you guys agree with that.

CreateDomain/Unload yes throw PNSE.

SetThreadPrincipal/SetPrinciplaPolicy - They don't look CAS related to me how do they connect to CAS?

ActivationContext/ApplicationIdentity yes those are ClickOnce but I don't believe they really hurt anything, however with that said I'm going to talk a closer look at the ClickOnce APIs.

from standard.

jkotas avatar jkotas commented on July 18, 2024

Perhaps they are better not being included in netstandard

Sounds good to me.

SetThreadPrincipal/SetPrinciplaPolicy

Right, these are not tightly coupled with CAS. They control the default value for Thread.CurrentPrincipal.

ActivationContext/ApplicationIdentity

They are in the same logical bucket as AppDomainManager for me. If you trim AppDomainManager, you can trim these as well.

from standard.

weshaggard avatar weshaggard commented on July 18, 2024

1b3f106
ed2c486

Those two commits should do the final clean-up of the AppDomain APIs. Please take another look at https://github.com/dotnet/standard/blob/master/netstandard/ref/mscorlib.appdomain.cs to be sure the rest seems reasonable and then I will close out this issue.

from standard.

jkotas avatar jkotas commented on July 18, 2024

Looks reasonable to me.

from standard.

rahku avatar rahku commented on July 18, 2024

Regarding FirstChanceExceptionEvent. We have never supported this for coreclr https://github.com/dotnet/coreclr/blob/775003a4c72f0acc37eab84628fcef541533ba4e/src/vm/excep.cpp#L12924.
@gkhanna79 do you happen to remember the reason? I will try removing the ifdef and see if it works.

from standard.

rahku avatar rahku commented on July 18, 2024

Some of the apis like AppDomain.SetShadowCopyPath are marked as obsolete do we need to port these too?

from standard.

rahku avatar rahku commented on July 18, 2024

Is there a reason for clubbing Activator type with AppDomain?

from standard.

rahku avatar rahku commented on July 18, 2024

Otherwise looks fine to me.

from standard.

weshaggard avatar weshaggard commented on July 18, 2024

Some of the apis like AppDomain.SetShadowCopyPath are marked as obsolete do we need to port these too?

We have a lot of obsolete methods in netstandard, in the name of compat. If we cannot support it then then throw PNSE.

from standard.

weshaggard avatar weshaggard commented on July 18, 2024

Is there a reason for clubbing Activator type with AppDomain?

I put it in the same file mainly because it was being sliced and diced similar to AppDomain so it would be easier to review in this file.

from standard.

gkhanna79 avatar gkhanna79 commented on July 18, 2024

AppDomainUnloadedException

I dont believe this is applicable since DefaultDomain cannot be unloaded. Unless we are planning to support multiple AppDomains, I think we should not expose this.

from standard.

gkhanna79 avatar gkhanna79 commented on July 18, 2024

Unload

The only AppDomain this can be made to work upon is DefaultDomain. And since we cannot unload it, we will throw "CannotUnloadAppDomainException".

Are these both required given we do not have multiple AppDomains?

from standard.

jkotas avatar jkotas commented on July 18, 2024

I think we should not expose this.

We are exposing everything by default in name of compatibility and easy migration; unless there is very strong reason not to. There is a ton of types getting exposes that are not useful on its own; but they are very useful to get existing code to compile.

from standard.

gkhanna79 avatar gkhanna79 commented on July 18, 2024

Are we simply exposing every type that is not in the set of things we do not want to expose (e.g. CAS, Remoting, etc) or do we consider their usage count as well (i.e. do not expose if the usage is 0%)?

from standard.

weshaggard avatar weshaggard commented on July 18, 2024

Are we simply exposing every type that is not in the set of things we do not want to expose (e.g. CAS, Remoting, etc) or do we consider their usage count as well (i.e. do not expose if the usage is 0%)?

Our default answers is that we are just exposing everything that is in the intersection of the platforms we want to support. Usage data is only one data point which we do consider but it is only a supporting data point as opposed to a deciding one.

from standard.

weshaggard avatar weshaggard commented on July 18, 2024

I think we have closed on the set of APIs here so I'm closing this issue.

from standard.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.