microsoftgraph / msgraph-beta-sdk-dotnet

The Microsoft Graph Client Beta Library for .NET supports the Microsoft Graph /beta endpoint. (preview)
Other
91 stars 29 forks source link

SDK 5.10-preview size #500

Closed sierrodc closed 1 year ago

sierrodc commented 2 years ago

Hi,

about assembly size:

Are you going to shrink the assembly file or ~60Mb will be the default size?

andrueastman commented 2 years ago

Thanks for raising this @sierrodc

Taking a look at the NuGet package sizes files at v5.10.0 is at ~18.53 MB while v4.51.0 is at ~16.25 MB.

Any chance you can clarify how you get the sizes to help us investigate?

ghost commented 2 years ago

This issue has been automatically marked as stale because it has been marked as requiring author feedback but has not had any activity for 4 days. It will be closed if no further activity occurs within 3 days of this comment.

sierrodc commented 2 years ago

Hi,

I've just created a console application and I've installed the package Microsoft.Graph.Beta 5.10.0-preview. When I compile the output this is what I can see: image

The previous version, Microsoft.Graph.Beta 4.52.0-preview, install an assembly of 23Mb: image

It is not a huge problem even if the file is quite big. If it's not possible to reduce the size, maybe it is possible to split it in different funcionalities (calendars, events, mails, tasks in different assemblies).

Dean-NC commented 2 years ago

Wowsers! This concerns me too. I really hope this is a mistake. If we include the .xml file with the app, that's almost 200 MB!

@andrueastman You're looking at the size of the .nuget package itself, which is compressed like a .zip. Download the package manually and extract the files, and you'll see the real file sizes.

image

andrueastman commented 2 years ago

Thanks for the clarification @Dean-NC.

This indeed needs to be better and we'll be looking to improve this as we investigate this further.

thomas-illiet commented 2 years ago

Hello @sierrodc ,

The difference between the two packages is that we now use kiota....

In V4 there are a lot of interfaces / abstractions and in V5 each class has a single implementation because it uses a code generator. The code generator is not the best solution for me because it adds a lot of code deduplication and makes it difficult to debug

Kind regards Thomas

ddyett commented 1 year ago

closing older issues. please file a new issue if occurs with latest versions.