microsoft / automatic-graph-layout

A set of tools for graph layout and viewing
Other
1.36k stars 305 forks source link

Publish nuget package #4

Closed mkosieradzki closed 8 years ago

mkosieradzki commented 9 years ago

First of all thanks for open sourcing MSAGL and removing of "Windows-only" restriction from the license!

It would be great to have NuGet package in official repository or in a nightly feed.

rassilon commented 9 years ago

I wouldn't mind doing a PR for a NuGet package, but I'm not sure exactly what parts should be put into NuGet packages. i.e. should there be a Msagl.Common with Drawing and Msagl, with a separate Msagl.WinForms that depends on Msagl.Common and includes GraphViewerGDI.

Additionally, should the Silverlight, SharpKit, WPF stuff be packaged into separate NuGet packages as well? If so, which assemblies should be in each additional package?

Thanks, Bill

levnach commented 9 years ago

Thanks Bill! I think separate packages for WPF and Silverlight is the right idea. Msagl.Silverlight should include these DLLs: MsaglSilverlight, MsaglDrawingSilverlight and GraphControlSilverlight. Msagl.WPF should include Msagl.Common and Microsoft.Msagl.WpfGraphControl I am not sure yet what Msagl.SharpKit has to contain. I will get back with it. Thanks, Lev

mkosieradzki commented 9 years ago

In my opinion it would be great to have a cross platform multi-framework package that would contain: Microsoft.Msagl.dll only. Silverlight and WPF-specific versions can both reference this package.

For example we are utilizing only the Microsoft.Msagl.dll (the legacy library published as MSR) to do only graph layout computation (that's what Msagl is basically for :) ). We have our own presentation logic.

daveaglick commented 9 years ago

I agree with @mkosieradzki - a package that just has the data structures, layout algorithms, etc. would be very handy.

levnach commented 9 years ago

Structures and algorithms for graph layout are contained in one project:Msagl.csproj. This project builds Microsoft.Msagl.dll. The GDI and WPF viewers reference this DLL and also Microsoft.Msagl.Drawing.dll. Unfortunately Silverlight cannot reference directly Microsoft.Msagl.dll. So, another library, MsaglSilverlight.dll, is built from the same sources by the project MsaglSilverlight.csproj

rassilon commented 9 years ago

I'm guessing .Net 4.0 and Silverlight 5 for the two sets of projects? Any objection to upgrading the Silverlight control .sln to VS 2013?

levnach commented 9 years ago

Yes, .NET 4.0 and Silverlight 5 is right. What solution do you have in mind? GraphControlSilverlight.sln loads fine in VS2013

rassilon commented 9 years ago

Based on the feedback it seems like these packages are the thing to do:

It does seem that the assembly/file versions might need some TLC as well. i.e. Msagl doesn't currently include Version.cs like Drawing and GraphViewerGDI

That way all of the packages can have the same version, either that or there would be more complicated Nuget pack command lines to pass in package dependencies. (since keeping NuGet pkg versions matching the assemblies is probably the simplest thing to do)

I've started on Msagl, Drawing, and GraphViewerGDI .nuspec and .symbols.nuspec files. I hope to test those tomorrow night.

Bill

mkosieradzki commented 9 years ago

If I may suggest: It would be great to merge •Microsoft.Msagl and •Microsoft.Msagl.Silverlight into a single multi-platform nuget package. This approach would really simplify multi-targeting. In future it would be great place to add .NET Core FX/Mono/Xamarin versions of the package. I would be happy to create PRs for handling additional platforms better when I am less swamped at my job (in couple of weeks/months hopefully) and it will be not done yet ;).

phrrngtn commented 9 years ago

+1 for nuget package.I have a "hello world" GDI viewer working within an Excel Custom Task Pane and it is very exciting!

birbilis commented 9 years ago

why isn't a PCL library used for the project containing the data structures etc.?

birbilis commented 9 years ago

also, the folder structure is a bit of a mess, please see this post of mine in a pattern that could be used for multi-platform: https://zoomicon.wordpress.com/2015/06/05/structuring-physical-source-and-virtual-solution-folders-for-portability/

I could restructure it myself, but not sure what is the appropriate way in Git to move around files (not just remove from one place and add to other) so that other people can pull-in the changes, so that they can still sync with pending changes they had done

dsaf commented 9 years ago

@birbilis +1

This way it could be used for building cross-platform graph visualisation applications.

dsaf commented 9 years ago

@levnach Is this technology behind Visual Studio's DGML support?

levnach commented 9 years ago

Sure, Visual Studio can load a Dgml file

Sent from my Windows Phone


From: dsafmailto:notifications@github.com Sent: ‎9/‎10/‎2015 8:22 To: Microsoft/automatic-graph-layoutmailto:automatic-graph-layout@noreply.github.com Cc: Lev Nachmansonmailto:levnach@hotmail.com Subject: Re: [automatic-graph-layout] Publish nuget package (#4)

@levnach Is this technology behind Visual Studio's DGML support?


Reply to this email directly or view it on GitHub: https://github.com/Microsoft/automatic-graph-layout/issues/4#issuecomment-139278244

dsaf commented 9 years ago

@levnach I really like DGML and very happy that the main part of it (MSAGL) is now open-source. Thank you for the effort!

AOmelaienko commented 8 years ago

I second the idea of a NuGet package, it'd be really great to have one (or to have one mentioned in README.md, if it already exists).

birbilis commented 8 years ago

For easy NuGet publishing of a .nuspec file, see NuGet Package Explorer (NPE) on Codeplex, plus there are some vs extensions to make it as if it was visual studio project, instead of authoring the .nuspec xml by hand. Can help with it, have now good experience with NuGet after recently using it a lot for my Hotspotizer fork and for TrackingCam projects. Maintaining several NuGet packages now at http://www.nuget.org/packages?q=birbilis

rassilon commented 8 years ago

@levnach, any additional thoughts on PR #24? That's currently blocking any further progress on this issue.

levnach commented 8 years ago

Sorry, I did not realize that I am blocking the NuGet creation. I merged #24.

dsaf commented 8 years ago

@levnach @rassilon

Why is this issue closed? I could not find any of these:

Microsoft.Msagl.Drawing Microsoft.Msagl.GraphViewerGDI (with the display name saying WinForms of course) Microsoft.Msagl.WpfGraphControl Microsoft.Msagl.Silverlight (containing all of the Silverlight dlls against SL5)

Also the releases tab is empty: https://github.com/Microsoft/automatic-graph-layout/releases

Should I raise separate issues for this? Thanks.

smoothdeveloper commented 8 years ago

I'm also looking for the assemblies in nuget packages but can't find them, please release individual packages on http://nuget.org.

I don't think the Microsoft.Msagl.GraphViewerGDI package should be named with winforms unless the assembly and namespace matches that.