Git Product home page Git Product logo

Comments (14)

jnm2 avatar jnm2 commented on August 23, 2024 2

Hi Olia,

Our applications depend on DevExpress's End User Report Designer (docs). DevExpress built it on top of the System.ComponentModel/IDesignerHost/CodeDOM set of abstractions, very much like the Windows Forms designer itself.

This designer ships for our users at runtime (as the name suggests). We've written custom reporting elements that integrate with it. Since DevExpress based the designer heavily on System.Design, our integrations with the report designer are also tied to System.Design. We're hoping that this doesn't keep us from moving to .NET Core.

In this report, see especially DevExpress.XtraReports.v17.2.Extensions.dll which houses their End User Report Designer: Portability report for DevExpress dependencies.xlsx

That's what DevExpress's code needs. Our code, which merely integrates with DevExpress's report designer, ends up directly using these types:

T:System.ComponentModel.Design.CollectionEditor
T:System.ComponentModel.Design.CollectionEditor.CollectionForm
T:System.ComponentModel.Design.ComponentDesigner
T:System.ComponentModel.Design.DesignerActionItem
T:System.ComponentModel.Design.DesignerActionItemCollection
T:System.ComponentModel.Design.DesignerActionList
T:System.ComponentModel.Design.DesignerActionListCollection
T:System.ComponentModel.Design.DesignerActionMethodItem
T:System.ComponentModel.Design.DesignerActionPropertyItem
T:System.ComponentModel.Design.DesignerActionTextItem
T:System.ComponentModel.Design.DesignerActionUIService
T:System.ComponentModel.Design.DesignerActionUIStateChangeEventArgs
T:System.ComponentModel.Design.DesignerActionUIStateChangeEventHandler
T:System.ComponentModel.Design.DesignerActionUIStateChangeType
T:System.ComponentModel.Design.MultilineStringEditor
T:System.ComponentModel.Design.Serialization.CodeDomSerializer
T:System.ComponentModel.Design.Serialization.CodeDomSerializerBase
T:System.ComponentModel.Design.Serialization.DesignerSerializationManager
T:System.Drawing.Design.IToolboxService
T:System.Drawing.Design.ToolboxItem
T:System.Drawing.Design.ToolboxItemCollection
T:System.Windows.Forms.Design.AnchorEditor
T:System.Windows.Forms.Design.Behavior.Behavior
T:System.Windows.Forms.Design.Behavior.BehaviorService
T:System.Windows.Forms.Design.Behavior.ControlBodyGlyph
T:System.Windows.Forms.Design.Behavior.GlyphSelectionType
T:System.Windows.Forms.Design.ControlDesigner
T:System.Windows.Forms.Design.ParentControlDesigner
T:System.Windows.Forms.Design.ScrollableControlDesigner
T:System.Windows.Forms.Design.SelectionRules

And these members:

M:System.ComponentModel.Design.CollectionEditor.#ctor(System.Type)
M:System.ComponentModel.Design.CollectionEditor.CollectionForm.#ctor(System.ComponentModel.Design.CollectionEditor)
M:System.ComponentModel.Design.CollectionEditor.CollectionForm.OnEditValueChanged
M:System.ComponentModel.Design.CollectionEditor.CollectionForm.get_Items
M:System.ComponentModel.Design.CollectionEditor.CollectionForm.set_Items(System.Object[])
M:System.ComponentModel.Design.CollectionEditor.get_Context
M:System.ComponentModel.Design.ComponentDesigner.#ctor
M:System.ComponentModel.Design.ComponentDesigner.GetService(System.Type)
M:System.ComponentModel.Design.ComponentDesigner.InitializeNewComponent(System.Collections.IDictionary)
M:System.ComponentModel.Design.ComponentDesigner.PostFilterAttributes(System.Collections.IDictionary)
M:System.ComponentModel.Design.ComponentDesigner.PostFilterProperties(System.Collections.IDictionary)
M:System.ComponentModel.Design.ComponentDesigner.get_Component
M:System.ComponentModel.Design.ComponentDesigner.get_Verbs
M:System.ComponentModel.Design.DesignerActionItemCollection.#ctor
M:System.ComponentModel.Design.DesignerActionItemCollection.Add(System.ComponentModel.Design.DesignerActionItem)
M:System.ComponentModel.Design.DesignerActionList.#ctor(System.ComponentModel.IComponent)
M:System.ComponentModel.Design.DesignerActionList.GetService(System.Type)
M:System.ComponentModel.Design.DesignerActionList.get_Component
M:System.ComponentModel.Design.DesignerActionList.set_AutoShow(System.Boolean)
M:System.ComponentModel.Design.DesignerActionListCollection.#ctor(System.ComponentModel.Design.DesignerActionList[])
M:System.ComponentModel.Design.DesignerActionListCollection.Insert(System.Int32,System.ComponentModel.Design.DesignerActionList)
M:System.ComponentModel.Design.DesignerActionListCollection.get_Item(System.Int32)
M:System.ComponentModel.Design.DesignerActionMethodItem.#ctor(System.ComponentModel.Design.DesignerActionList,System.String,System.String)
M:System.ComponentModel.Design.DesignerActionMethodItem.#ctor(System.ComponentModel.Design.DesignerActionList,System.String,System.String,System.String)
M:System.ComponentModel.Design.DesignerActionPropertyItem.#ctor(System.String,System.String)
M:System.ComponentModel.Design.DesignerActionTextItem.#ctor(System.String,System.String)
M:System.ComponentModel.Design.DesignerActionUIService.HideUI(System.ComponentModel.IComponent)
M:System.ComponentModel.Design.DesignerActionUIService.Refresh(System.ComponentModel.IComponent)
M:System.ComponentModel.Design.DesignerActionUIService.ShowUI(System.ComponentModel.IComponent)
M:System.ComponentModel.Design.DesignerActionUIService.add_DesignerActionUIStateChange(System.ComponentModel.Design.DesignerActionUIStateChangeEventHandler)
M:System.ComponentModel.Design.DesignerActionUIService.remove_DesignerActionUIStateChange(System.ComponentModel.Design.DesignerActionUIStateChangeEventHandler)
M:System.ComponentModel.Design.DesignerActionUIStateChangeEventArgs.get_ChangeType
M:System.ComponentModel.Design.DesignerActionUIStateChangeEventHandler.#ctor(System.Object,System.IntPtr)
M:System.ComponentModel.Design.Serialization.CodeDomSerializer.#ctor
M:System.ComponentModel.Design.Serialization.CodeDomSerializer.Deserialize(System.ComponentModel.Design.Serialization.IDesignerSerializationManager,System.Object)
M:System.ComponentModel.Design.Serialization.CodeDomSerializer.Serialize(System.ComponentModel.Design.Serialization.IDesignerSerializationManager,System.Object)
M:System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeExpression(System.ComponentModel.Design.Serialization.IDesignerSerializationManager,System.String,System.CodeDom.CodeExpression)
M:System.ComponentModel.Design.Serialization.CodeDomSerializerBase.GetExpression(System.ComponentModel.Design.Serialization.IDesignerSerializationManager,System.Object)
M:System.ComponentModel.Design.Serialization.CodeDomSerializerBase.SerializeToExpression(System.ComponentModel.Design.Serialization.IDesignerSerializationManager,System.Object)
M:System.ComponentModel.Design.Serialization.DesignerSerializationManager.#ctor
M:System.ComponentModel.Design.Serialization.DesignerSerializationManager.CreateSession
M:System.ComponentModel.Design.Serialization.DesignerSerializationManager.get_Errors
M:System.Drawing.Design.IToolboxService.AddToolboxItem(System.Drawing.Design.ToolboxItem)
M:System.Drawing.Design.IToolboxService.GetToolboxItems
M:System.Drawing.Design.IToolboxService.RemoveToolboxItem(System.Drawing.Design.ToolboxItem)
M:System.Drawing.Design.ToolboxItem.get_TypeName
M:System.Windows.Forms.Design.AnchorEditor.#ctor
M:System.Windows.Forms.Design.Behavior.Behavior.#ctor(System.Boolean,System.Windows.Forms.Design.Behavior.BehaviorService)
M:System.Windows.Forms.Design.Behavior.Behavior.FindCommand(System.ComponentModel.Design.CommandID)
M:System.Windows.Forms.Design.Behavior.BehaviorService.GetNextBehavior(System.Windows.Forms.Design.Behavior.Behavior)
M:System.Windows.Forms.Design.Behavior.BehaviorService.PopBehavior(System.Windows.Forms.Design.Behavior.Behavior)
M:System.Windows.Forms.Design.Behavior.BehaviorService.PushBehavior(System.Windows.Forms.Design.Behavior.Behavior)
M:System.Windows.Forms.Design.Behavior.BehaviorService.get_CurrentBehavior
M:System.Windows.Forms.Design.Behavior.ControlBodyGlyph.#ctor(System.Drawing.Rectangle,System.Windows.Forms.Cursor,System.ComponentModel.IComponent,System.Windows.Forms.Design.ControlDesigner)
M:System.Windows.Forms.Design.ControlDesigner.#ctor
M:System.Windows.Forms.Design.ControlDesigner.OnDragDrop(System.Windows.Forms.DragEventArgs)
M:System.Windows.Forms.Design.ControlDesigner.OnDragEnter(System.Windows.Forms.DragEventArgs)
M:System.Windows.Forms.Design.ControlDesigner.OnDragLeave(System.EventArgs)
M:System.Windows.Forms.Design.ControlDesigner.OnDragOver(System.Windows.Forms.DragEventArgs)
M:System.Windows.Forms.Design.ControlDesigner.OnGiveFeedback(System.Windows.Forms.GiveFeedbackEventArgs)
M:System.Windows.Forms.Design.ControlDesigner.OnSetCursor
M:System.Windows.Forms.Design.ControlDesigner.get_Control
M:System.Windows.Forms.Design.ControlDesigner.get_ParticipatesWithSnapLines
M:System.Windows.Forms.Design.ControlDesigner.get_SelectionRules
M:System.Windows.Forms.Design.ControlDesigner.set_AutoResizeHandles(System.Boolean)
M:System.Windows.Forms.Design.ParentControlDesigner.#ctor
M:System.Windows.Forms.Design.ParentControlDesigner.Dispose(System.Boolean)
M:System.Windows.Forms.Design.ParentControlDesigner.Initialize(System.ComponentModel.IComponent)
M:System.Windows.Forms.Design.ParentControlDesigner.InitializeNewComponent(System.Collections.IDictionary)
M:System.Windows.Forms.Design.ParentControlDesigner.OnDragDrop(System.Windows.Forms.DragEventArgs)
M:System.Windows.Forms.Design.ParentControlDesigner.OnDragEnter(System.Windows.Forms.DragEventArgs)
M:System.Windows.Forms.Design.ParentControlDesigner.OnDragLeave(System.EventArgs)
M:System.Windows.Forms.Design.ParentControlDesigner.OnDragOver(System.Windows.Forms.DragEventArgs)
M:System.Windows.Forms.Design.ParentControlDesigner.OnPaintAdornments(System.Windows.Forms.PaintEventArgs)
M:System.Windows.Forms.Design.ScrollableControlDesigner.#ctor

from installer.

filipnavara avatar filipnavara commented on August 23, 2024 2

We have similar dependencies for our custom WinForms controls too. The missing API set is nearly identical. In our case they are design-time only and we have a build option to strip them out of release builds, so we are still able to run our application on .NET Core 3 alpha today (with some additional fixes discussed in the CoreFX repository issues).

I suspect this will come up quite often and it has to be addressed in one way or another. I was hoping that this will eventually come later when the WinForms design-time support is brought in later preview. I'm taking a wait-and-see approach on this one, but wanted to express some support that the scenario is probably common.

from installer.

OliaG avatar OliaG commented on August 23, 2024 1

Thank you, Joseph! I'll get our engineers to look at it and follow up with you.

from installer.

lextm avatar lextm commented on August 23, 2024 1

I think <Reference Include="System.Design" /> should not work by design. There is no GAC for .NET Core, so there is no place to resolve such assemblies.

Ideally such should come in Windows Compatibility Pack for .NET Core, or Microsoft.WindowsDesktop.App.

from installer.

damageboy avatar damageboy commented on August 23, 2024 1

Same here...
Trying to test our WinForms stuff in .NET Core 3.0 and hitting up on these missing APIs as part of property-grid related runtime support.

In my case the missing types are:

  • CollectionEditor
  • ObjectSelectorEditor

from installer.

dreddy-work avatar dreddy-work commented on August 23, 2024 1

We will be taking a look at porting these editors soon.

from installer.

dreddy-work avatar dreddy-work commented on August 23, 2024 1

@damageboy , I understand. When we were porting editors to netcore, our analysis was, the above said editors will be used mostly at the design time and hence prioritized that way. Now that we see runtime usage for these editors, we are discussing to port these editors to net core in the coming weeks.

from installer.

OliaG avatar OliaG commented on August 23, 2024

Hi Joseph,
Thanks for reaching out! The types you mentioned are not added in Core 3.0, we are still finalizing the list of the APIs for Core 3.0, so we'd like to know more about your scenarios. Could you tell us how you are using these types in your app?

Also if you haven't done it yet, I would suggest running Portability Analyzer that will show all APIs in your app that are not yet included in .NET Core 3.0.

from installer.

OliaG avatar OliaG commented on August 23, 2024

Thank you Filip!
@Tanya-Solyanik

from installer.

jnm2 avatar jnm2 commented on August 23, 2024

@lextm I was thinking System.Design should be part of <FrameworkReference Include="Microsoft.DesktopUI" />.

from installer.

livarcocc avatar livarcocc commented on August 23, 2024

@dreddy-work should we move this issue to dotnet/winforms?

from installer.

dreddy-work avatar dreddy-work commented on August 23, 2024

@livarcocc , yes please. we will be looking into these coming week.

from installer.

damageboy avatar damageboy commented on August 23, 2024

Just to be completely clear. My current issue is simply compiling custom property grid editors that inherit from the said *Editor base classes as I have a property grid that presents custom editors @ runtime (not at design time).

This is not a VS designer issue, at least as far as I am concerned..

from installer.

livarcocc avatar livarcocc commented on August 23, 2024

Issue moved to dotnet/winforms #221 via ZenHub

from installer.

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.