Recent

Author Topic: Could You please improve project management panels  (Read 8772 times)

Babak M.

  • New Member
  • *
  • Posts: 15
Could You please improve project management panels
« on: November 21, 2024, 07:38:49 pm »
Hello everyone,

I would like to appreciate the Lazarus team for their efforts. I started using Lazarus 10 years ago and have been following its news ever since.

I wonder if I can start a large project with multiple sub-projects. I want to divide my project into several dynamically linked libraries. I need a comprehensive project management panel similar to the Solution Explorer in Visual Studio.

I found the Project Group and Project Inspector, but they are separate. I think Lazarus is capable of producing large projects, but managing files is not as easy. I need a single panel for adding, removing, and renaming files and projects.

Thank you

Handoko

  • Hero Member
  • *****
  • Posts: 5386
  • My goal: build my own game engine using Lazarus
Re: Could You please improve project management panels
« Reply #1 on: November 21, 2024, 07:56:13 pm »
Hello babakm,
Welcome to the forum.

It sounds you already have the concept how the project manager should be. You can submit a feature request, provide all your ideas, including some drafts and pictures. Hopefully some volunteers will be interested and start working on it. If you need it in a hurry, you can consider sponsoring the development or making a bounty:

https://foundation.freepascal.org/
https://forum.lazarus.freepascal.org/index.php/board,41.0.html

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 10703
  • Debugger - SynEdit - and more
    • wiki
Re: Could You please improve project management panels
« Reply #2 on: November 21, 2024, 09:18:14 pm »
Also
Quote
similar to the Solution Explorer in Visual Studio.

Don't assume that everyone knows that, or knows it in enough detail.

Describe what you need to actually get the job done, and then give examples how it is done elsewhere.
E.g. maybe like: You need a list of all files (projects, units, resources, form), all in one list. And a button that selects ....



The reason it isn't yet there could be (may or may not) that people doing big projects currently use completely different workflows. Leading to the same result, maybe even being as efficient, but requiring to get used to them. (Which mean an alternative removing that need to get used to them could be good). Or maybe current tools are less efficient, but no one yet ask for more.

I have seen people before, writing here they waited for years that something so very obvious would get done. And it turned out it wasn't that obvious to everyone.

So describe your requirements from the basics. Or wait, until someone picks it up, and either knows or asks.

VisualLab

  • Hero Member
  • *****
  • Posts: 620
Re: Could You please improve project management panels
« Reply #3 on: November 21, 2024, 10:05:02 pm »
I would also like to see a project manager in Lazarus. I would probably lean towards something similar to what is in Delphi (i.e. a project group to manage subprojects, each subproject grouping the source and resource files that make up an executable file of type EXE, DLL or package). But I'm willing to look at other suggestions. Perhaps they will contain some interesting proposals.

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 10703
  • Debugger - SynEdit - and more
    • wiki
Re: Could You please improve project management panels
« Reply #4 on: November 21, 2024, 10:14:30 pm »
I would also like to see a project manager in Lazarus. I would probably lean towards something similar to what is in Delphi (i.e. a project group to manage subprojects, each subproject grouping the source and resource files that make up an executable file of type EXE, DLL or package). But I'm willing to look at other suggestions. Perhaps they will contain some interesting proposals.
But that sounds different from the OT, who did state "project groups isn't helping them".

Besides, we do have project groups (install the package), so what is the difference you seek?

IIRC someone once asked if "project" and "project group" could simply be combined, so the buttons of all of them are on one window. Though, I am not getting that point, but I may well miss some detail...

dsiders

  • Hero Member
  • *****
  • Posts: 1327
Re: Could You please improve project management panels
« Reply #5 on: November 21, 2024, 10:30:16 pm »
Or in the simplest way possible:

What do you want that isn't already provided in https://wiki.freepascal.org/Project_Groups
Preview the next Lazarus documentation release at: https://dsiders.gitlab.io/lazdocsnext

Babak M.

  • New Member
  • *
  • Posts: 15
Re: Could You please improve project management panels
« Reply #6 on: November 22, 2024, 07:32:29 pm »
Thank you all for the feedback.

I think the main difference between Visual Studio and Lazarus is the scale of projects. In Visual Studio, the main approach is developing large projects, whereas in Lazarus, it is often a single small project.

In Visual Studio, by default, there is a project solution, which is equivalent to a project group in Lazarus. It consists of at least one project. However, in Lazarus, you have to create a project group for managing multiple projects.

Lazarus is not project group-first, and if you select the "Close Project" option from the Project menu, you are redirected to the startup project wizard window. After that, if you select another project, you will be surprised to see that the project group still shows previous projects.

In Visual Studio, at any one time, you have an active project, and the user knows that the project menu items apply to that project.

In my opinion, the Project Inspector should be removed, and its capabilities should be added to the project group. Furthermore, other enhancements such as renaming files and adding folders for categorizing files should be added.

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 10703
  • Debugger - SynEdit - and more
    • wiki
Re: Could You please improve project management panels
« Reply #7 on: November 23, 2024, 02:35:35 pm »
I am still having a lots of gaps in my understanding of VS solutions. Probably because I just don't know them, and I have different ways to do stuff.

So how would the following work as a "vs solution"?

Maybe you wouldn't use the way I describe below, then the question is what way would you use?




I have 2 apps that form a client/server pair. So if I had them in VS, I assume I would have ONE solution for them?

- The server app uses a "package" (a set of units/files/...) ServerUtils
- The client app uses a package ClientUtils
- Both packages have units of the same name.

So the Server uses "unit Connections" from the ServerUtils package.
The Client uses "unit Connections" from the ClientUtils package.

Both client and server use some shared files (not in a package). Those files refer to functions in above unit Connection.

If I want to navigate code, the IDE must know which of the 2 apps I am working on.
So in Lazarus, if I have the client project open, then if I encounter the name of a function from unit Connection, I expect code navigation to go to the unit in ClientUtils.
But if I have the server app project open, then it should go the unit in ServerUtils.

In a similar way, client and server may have different compiler defines -dCLIENTCODE -dSERVERCODE => so in shared files, different code is active. And the IDE has to correctly highlight that, and correctly navigate.

How do I do that in a VS Solution?




Also the above has of course test cases.

So if I press run then ... well

- If I press run for either the client or server, I need an instance of the other. I could configure that, but I usually do that by hand.
Since often changes were made for testing one of the two, and those are either not needed in the other (or even not working in the other / so definitely need a way to prevent the other from rebuild), I usually only want to build the one I am working on. And I want the other one to be as it already is on disk.

Of course if I wanted both to be build, then that would need some tweaks (I never tried, but I think it can be done)

- If I run either test case, then I want to build and run ONLY that, and nothing else.

How does a solution behave for those tasks?

VisualLab

  • Hero Member
  • *****
  • Posts: 620
Re: Could You please improve project management panels
« Reply #8 on: November 23, 2024, 11:11:23 pm »
It turned out that I already had the project group package installed in Lazarus, but I forgot about it and haven't used it yet (old age is taking its toll on me). In my free time, I'll try to create a project group in Lazarus to test its operation. I'll compare it with the "Project group" from Delphi, which (for me) works well enough there.

I also checked Visual Studio 2022, but I don't see anything that would remind me of "Project group", "Project manager" or something similar. Maybe because it's the Community version.

In terms of organizing work with projects, working with NetBeans is also quite convenient.

Hansvb

  • Hero Member
  • *****
  • Posts: 718
Re: Could You please improve project management panels
« Reply #9 on: November 24, 2024, 11:40:05 am »
I also have VScommunity. I think he means that if you right click on solution '<you're project name>' then you can add a new project or add an existing project to you're existing solution. Then after that you have 2 or more projects within the solution. You can call that a group i guess.

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 10703
  • Debugger - SynEdit - and more
    • wiki
Re: Could You please improve project management panels
« Reply #10 on: November 24, 2024, 11:48:23 am »
Well, the OT hasn't given any feedback....

On the one hand, well yes there is no guarantee if (or when) it will be done. Or how, if it comes to that...

But if something gets done, then without such feedback, it may not be what the OT wanted/needed.

- Whoever does it, may not know VS. And may not test all the details in VS. They will take some description they find. That may not be very accurate, and could miss out major point.
- Even if they played with VS, they may use it in a very different way, and the "copy" may rather be the perception of the person who did the job, and not at all be what any one else would have thought.

Also, why copy?

Not all parts may be needed, some may not make much sense. Rather find out what exactly is wanted. Maybe it can be done even better. So without description of what is wanted and how it is used (and that last part is the important one: How is it used?).
« Last Edit: November 24, 2024, 11:51:33 am by Martin_fr »

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 12005
  • FPC developer.
Re: Could You please improve project management panels
« Reply #11 on: November 24, 2024, 02:44:07 pm »
So the Server uses "unit Connections" from the ServerUtils package.
The Client uses "unit Connections" from the ClientUtils package.

Two solutions and a non solution:
  • Every package stores the compiled result of dependent packages locally in its lib/ folder
  • Don't allow duplicate units to be in packages used in a project group
  • Basically the same, but don't handle it and leave it up to the user.

« Last Edit: November 24, 2024, 02:47:43 pm by marcov »

Babak M.

  • New Member
  • *
  • Posts: 15
Re: Could You please improve project management panels
« Reply #12 on: November 24, 2024, 06:37:13 pm »
I have 2 apps that form a client/server pair. So if I had them in VS, I assume I would have ONE solution for them?

Yes. Actually, a solution in Visual Studio is a container for your project's components. There are different types of projects, such as Windows Forms applications, Console applications, or DLLs. The main idea is to divide a large project into smaller pieces. You can call it a project group, solution, or something similar.

Both client and server use some shared files (not in a package). Those files refer to functions in above unit Connection.

In Visual Studio, you can't address a single unit or class outside of a project; you need to create separate DLLs for shared classes.

If I want to navigate code, the IDE must know which of the 2 apps I am working on.
So in Lazarus, if I have the client project open, then if I encounter the name of a function from unit Connection, I expect code navigation to go to the unit in ClientUtils.
But if I have the server app project open, then it should go the unit in ServerUtils.

In C#, there is the concept of namespaces, and you can't have two identifiers, such as variables or classes, with identical names. I tested Lazarus, and it seems that if there are two similar unit names in a primary project and an external package, Lazarus assumes the unit in the primary project.
 
- If I press run for either the client or server, I need an instance of the other. I could configure that, but I usually do that by hand.
Since often changes were made for testing one of the two, and those are either not needed in the other (or even not working in the other / so definitely need a way to prevent the other from rebuild), I usually only want to build the one I am working on. And I want the other one to be as it already is on disk.

In Visual Studio, you can run more than one project at the same time. In other words, in the solution options, you can configure multiple startup projects. Also, there are options to rebuild and clean either a single project or all projects together.

« Last Edit: November 24, 2024, 06:52:12 pm by babakm »

Babak M.

  • New Member
  • *
  • Posts: 15
Re: Could You please improve project management panels
« Reply #13 on: November 24, 2024, 07:32:17 pm »
Well, the OT hasn't given any feedback....

On the one hand, well yes there is no guarantee if (or when) it will be done. Or how, if it comes to that...

But if something gets done, then without such feedback, it may not be what the OT wanted/needed.
Does the abbreviation OT stand for "off topic"? I am sorry, I couldn't find a suitable page for my request.

 
But if something gets done, then without such feedback, it may not be what the OT wanted/needed.

- Whoever does it, may not know VS. And may not test all the details in VS. They will take some description they find. That may not be very accurate, and could miss out major point.
- Even if they played with VS, they may use it in a very different way, and the "copy" may rather be the perception of the person who did the job, and not at all be what any one else would have thought.

Also, why copy?

Not all parts may be needed, some may not make much sense. Rather find out what exactly is wanted. Maybe it can be done even better. So without description of what is wanted and how it is used (and that last part is the important one: How is it used?).
Please read my request subject again. I didn't want someone to reimplement Visual Studio's Solution Explorer in Lazarus. :(

I think there are many dialog forms for managing files in Lazarus that could be removed and integrated into a single panel. I am not the Lazarus project manager; I only sent my request as a user. Although my name is on the Lazarus contributor list, which makes me proud.

Handoko

  • Hero Member
  • *****
  • Posts: 5386
  • My goal: build my own game engine using Lazarus
Re: Could You please improve project management panels
« Reply #14 on: November 24, 2024, 07:53:55 pm »
Well, the OT hasn't given any feedback....
Does the abbreviation OT stand for "off topic"?

I believe he meant original poster.

 

TinyPortal © 2005-2018