The creator of BlueBerry (and CppMicroServices) is reading this mailing list, 
so let’s see if he has something to say. :-)

CppMicroServices started like BlueBerry as MITK subproject 
(Modules/CppMicroservices) and it is still a subproject in its initial version 
(which we are using). There’s also subsequent versions of CppMicroServices that 
are completely decoupled and are hosted on http://cppmicroservices.org/ and 
have nothing to do with MITK anymore (and won’t work out of the box with MITK). 
At least in the CTK version that we are using, CppMicroservices is not a 
dependency of CTK or we are not aware of it/not using it/not building it, so I 
am not sure how you came to this conclusion? :-)

The CTK guys are also active and have a mailing list, if you have CTK-specific 
questions.

Best,
Stefan



From: Ramazan Ergüder Bekrek [mailto:e.bek...@yandex.com]
Sent: Friday, September 11, 2020 10:47 AM
To: Dinkelacker, Stefan <s.dinkelac...@dkfz-heidelberg.de>; 
mitk-users@lists.sourceforge.net
Subject: Re: AW: AW: [mitk-users] Is there any template project that have the 
foundation to build a modular application with Qt?

Can you or someone other in your contacts with whom I can connect who can 
provide more information about how BlueBerry is working... Based only on the 
information from MITK documentation it only help not to much in details about 
how to hook that separate project into CTK for example or CppMicroServices.

Where does the initialisation of BlueBerry takes place?

I am also confused does CTK have a dependency on CppMicroServices(CMS) or is 
CMS directly copied in the source code of CTK and just renamed all the its file 
starting by ctk.....cpp&.h

Is there any internal detailed documentation that was not rendered publicly due 
to forgetting or other kind of policies?

How could you direct me to the right people so that I can ask my question to 
the concerned parties?

I would like to also know what kind of development environment are you using to 
work with MITK. I mean by that if you are using Eclipse and if yes are there 
any visual tooling which was develop specifically in the Eclipse/IntelliJ 
environment  connected with the MITK project?

Best regards


11.09.2020, 09:59, "Dinkelacker, Stefan" 
<s.dinkelac...@dkfz-heidelberg.de<mailto:s.dinkelac...@dkfz-heidelberg.de>>:

Thanks for the explanation. :)

In this case and if you have the time to spend, it could be worth to first try 
to make BlueBerry a separate project by extracting it from MITK instead of 
deleting everything from MITK that you do not need. I think BlueBerry was 
already designed this way not to be too much entangled with the rest of MITK.



I also know that there are companies that did it before but it’s not open 
source unfortunately. We do not have the capacity currently to give much 
support for such big projects off the beaten path, though. Also note that as 
far as I know, BlueBerry is not a complete implementation of OSGi and there may 
be things missing you are used to rely on.



Best,

Stefan



From: Ramazan Ergüder Bekrek [mailto:e.bek...@yandex.com]
Sent: Thursday, September 10, 2020 1:44 PM
To: Dinkelacker, Stefan 
<s.dinkelac...@dkfz-heidelberg.de<mailto:s.dinkelac...@dkfz-heidelberg.de>>; 
mitk-users@lists.sourceforge.net<mailto:mitk-users@lists.sourceforge.net>
Subject: Re: AW: AW: [mitk-users] Is there any template project that have the 
foundation to build a modular application with Qt?



Hi again,



Thank you for your questions/explanations, I will try to answer them the best 
way I can. I got impressed by MITK as a complete software product because I 
myself achieve this kind of modularity with Adobe AIR/Actionscript platform 
where I could just split all aspects of my app and let the OSGi handle the 
bundles on UI/Backend side. I needed to migrate from Adobe AIR/Actionscript 
because of my requirements and I tried to find something as comfortable as my 
development pipeline. I worked a lot in the Eclipse environment for many years 
and IMHO that's the most well designed architecture that is around in terms of 
modularity. I could not find any other language and framework which could beat 
OSGi and Java. Modularity exists since eons on the Java platform with OSGi and 
when I discovered it, I never went back to the old paradigm of so called faked 
modularity/monolith. Once the other language platform got it ans saw the huge 
potential of OSGi then they started to implement that standard on their side.



I thought that MITK was the best framework for me to start upon, but I am 
realizing that to use BlueBerry I don't need MITK at all only CTK. But from the 
other side there are lots of unnecessary dependencies that are intrinsic in it 
that I would like to get rid of it like everything DICOM, VTK, ITK, etc...



The help/guidance I need from your part is to direct me which folders can I 
delete to be able just to use BlueBerry, CTK(without unnecessary imaging deps) 
and CppMicroServices which I guess is CTK(core).



In the folder structure I see that there is the following directories:



Applications

Libs

Plugins

Utilities



If I understood well this is what can I do based on the modularity of CTK.



I am intending to copy from MITK->Plugins folder all the org.blueberry.* 
plugins inside of CTK->Plugins to be able to use it. I presume BlueBerry is not 
depending on anything since it is a separate project ... is my presumption 
correct? Can I just do that move?



Which sub-folders in CTK can just delete and it will still compile without a 
problem? Are my decisions correct? Please let me know :D



I will certainly going to keep the followings:



CTK->Applications->EventBusDemo

CTK->Applications->ExampleHost

CTK->Applications->ExampleHostedApp

CTK->Applications->PluginBrowser

CTK->Applications->PluginGenerator

CTK->Applications->QtTesting

CTK->Applications->PythonShell



since those will be my base for the UI side.



CTK->Libs->CommandLineModules

CTK->Libs->Core

CTK->Libs->PluginFramework

CTK->Libs->QtTesting

CTK->Libs->Scripting

CTK->Libs->Testing

CTK->Libs->Widget



and concerning the CTK->Plugins folder I presume that all of it will be kept.



So from my understanding this seems to be my basic OSGi/Eclipse platform from 
which I can start to develop on top. I might be wrong but this claim I can only 
do it because of my understanding from what I have learned.



Best Regards





10.09.2020, 11:52, "Dinkelacker, Stefan" 
<s.dinkelac...@dkfz-heidelberg.de<mailto:s.dinkelac...@dkfz-heidelberg.de>>:

Hi,

I'm afraid we cannot provide support for fundamental changes from our 
superbuild structure like using vcpkg instead of our MITK-superbuild.



The very core of MITK is based on VTK and ITK (and a few other, smaller 
toolkits) and these toolkits have dependencies again like HDF5. These 
transitive dependencies are sometimes used by more than one other dependency 
which is why we build them separately in our superbuild. This way the same 
binaries are linked by all dependers. Other reasons may be that we need later 
versions of certain libraries than the ones that come optionally bundled with 
dependencies. The "minimal" configuration is indeed the very minumum. If you 
switch on CTK of course this will result in more dependencies needed by CTK and 
so on.

At this rate of trying to work against the MITK fundamentals and repacing core 
parts, though, I'm curious about why you choose MITK in the first place? :-) No 
offense, I'm really curious. It seems like you are more interested in our 
dependencies like CTK instead of the actual "contents" of MITK. At least for 
the beginning I highly recommend to stick with the MITK conventions and 
superbuild and follow the MITK-ProjectTemplate. Otherwise it certainly will be 
a very rough start to get things done as it is a complex framework. If you only 
need a few source components, you could also copy them to your repo (following 
the requirements of the BSD-license) or even fork MITK if you want to replace 
the whole superbuild with something custom.



Best,

Stefan



________________________________

Von: Ramazan Ergüder Bekrek <e.bek...@yandex.com<mailto:e.bek...@yandex.com>>
Gesendet: Donnerstag, 10. September 2020 02:03
An: Dinkelacker, Stefan; 
mitk-users@lists.sourceforge.net<mailto:mitk-users@lists.sourceforge.net>
Betreff: Re: AW: [mitk-users] Is there any template project that have the 
foundation to build a modular application with Qt?



Ok I am at the last step before compiling MITK with a minimal setup but I again 
got stopped with a road block.

I installed ITK, HDF5 & DCMTK via vcpkg and all the Config.cmake files are in 
their respective folder.

I still get this error :



Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.19041.

Performing Test HAS_FLAG_-std=c14

Performing Test HAS_FLAG_-std=c14 - Failed

------- Using build configuration "Minimal" -------

Generated: G:/programming/c++/MITK/build/Project.xml

Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)

CMake Error at CMakeLists.txt:877 (find_package):
By not providing "FindITK.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "ITK", but
CMake did not find one.

Could not find a package configuration file provided by "ITK" with any of
the following names:

ITKConfig.cmake
itk-config.cmake

Add the installation prefix of "ITK" to CMAKE_PREFIX_PATH or set "ITK_DIR"
to a directory containing one of the above files. If "ITK" provides a
separate development package or SDK, be sure it has been installed.



What should I do now?





09.09.2020, 04:07, "Dinkelacker, Stefan" 
<s.dinkelac...@dkfz-heidelberg.de<mailto:s.dinkelac...@dkfz-heidelberg.de>>:

Hi,



there are several ways of using MITK. On the most basic level, you have to 
decide if you want to MITK as a toolkit or as framework.



Toolkit means that you use MITK just like any other bunch of libraries and 
depend on MITK libraries/modules in your CMake-based project with 
target_link_libraries(). This is the most general approach and usually chosen 
by developers who just want to use the algorithmic part of MITK in their 
completely own GUI (or non-GUI) applications. Note that you can switch off 
BlueBerry, CTK, and even Qt5 to just build the parts of MITK you need. A good 
starting point is to build the absolute minimum of MITK by setting the 
following (advanced) CMake variables in the MITK-superbuild and then add the 
parts of MITK you need as you go on:

MITK_WHITELIST: Minimal

MITK_BUILD_CONFIGURATION: Minimal



Framework means that you stick to the conventions of MITK and use all the CMake 
functionailty of MITK to create new modules, plugins, and applications. As an 
advantage you can rely on a ton of mainly GUI and 
application-infrastructure-related code to get things done. You can also use 
plugins like Image Statistics or Segmentation. The recommended "framework" way 
is to start with the MITK-ProjectTemplate [1] as a template for your own 
repository and write your modules, plugins, and applications this way. For the 
start you can just use the MITK Workbench application as a host for your 
components but you are not restricted to do so. Check the BlueBerryExample 
launcher application for examples on writing your completely custom 
applications that are still based on BlueBerry though.



It's hard to recommend the right way for your project without knowing any 
details but if you are already determinied to write your own GUI and you do not 
want to use CTK or BlueBerry (and hence none of our plugins/views) you probably 
want to go full custom with the toolkit approach. From our experience we can 
say that quite a few developers started this way without noticing all the 
benefits of the framework approach as there are literally hundreds of thousands 
lines of code dealing with a lot of complexity you would otherwise have to 
handle yourself (at the cost of a certain overhead of course). Some developers 
also did not recognize the possibility to create BlueBerry applications with a 
nearly completely custom look and feel. All approaches are valid approaches and 
in the end you have to decide what's best in your project's context.



Best,

Stefan



[1] https://github.com/MITK/MITK-ProjectTemplate



________________________________

Von: Ramazan Ergüder Bekrek <e.bek...@yandex.com<mailto:e.bek...@yandex.com>>
Gesendet: Dienstag, 8. September 2020 17:27
An: mitk-users@lists.sourceforge.net<mailto:mitk-users@lists.sourceforge.net>
Betreff: Re: [mitk-users] Is there any template project that have the 
foundation to build a modular application with Qt?



I found out this tutorial but I don't know how actual it is and unfortunately 
it only does covers CTK and not other frameworks that I need.



https://commontk.org/index.php/Documentation/CTK_Plugin_Framework:_Setting_up_a_project#Project_Layout



Could someone confirm that this is still valid or should I just ignore this 
tutorial?



Best Regards





08.09.2020, 16:16, "Ramazan Ergüder Bekrek" 
<e.bek...@yandex.com<mailto:e.bek...@yandex.com>>:

I found out this tutorial but I don't know how actual it is and unfortunately 
it only does covert CTK and not other frameworks that I need.



Could someone confirm that this is still valid or should I just ignore this 
tutorial?



Best Regards





08.09.2020, 16:13, "Ramazan Ergüder Bekrek" 
<e.bek...@yandex.com<mailto:e.bek...@yandex.com>>:

I also want to share the fact that there is now a discord server for everything 
OSGi related.

There are also sub-channels regarding BlueBerry, CppMicroServices, CTK, OSGi in 
Java,Python,Actionscript and also Qt.



This is the invitation link and I welcome everyone who is willing to expand and 
share their knowledge of theses platforms.



https://discord.gg/yVmNAbv



Best Regards





08.09.2020, 14:00, "Ramazan Ergüder Bekrek" 
<e.bek...@yandex.com<mailto:e.bek...@yandex.com>>:

Hi it is been since few days I am trying to figure out how to use the 
combination of BlueBerry, CTK, CppMicroservice, Qt5 & CMake
to have a solid foundation without all the MITK framework and all its 
components to start my own project.

I have installed MITK to see how it look on the UI with all the modular aspect 
and actually what I am trying to achieve this:

I would like to have a naked MITK like main windows without any components on 
the UI and built from that on top by my own UI bundles.

When I digged  inside of the CMake structure and code I just became owerwhelmed 
and scared. It seems that BlueBerry is an integrated
part of MITK and not a totally independant project which has a vcpkg port like 
dcmtk, gdcm, cppmicroservice, qt5.

I also realized that CTK is also like the previously mentioned fact and is 
missing on vcpkg...

How do I setup a CMake foundation if some parts of the MITK are not reachable 
by vcpkg and I need them for example like:

find_package(CTK REQUIRED)
find_package(BlueBerry REQUIRED)
find_package(CppMicroServices REQUIRED)

Plug how to I setup my CMake to take advantage of all the CTK, BlueBerry, 
CppMicroService functions and macros to respect
the best practice structure pattern for my own bundles and the structure of my 
project? I am aware that there is a CMake and CMakeExternals folders
in the root of the project. Can I just take those 2 folder and copy it inside 
of my own project folder and will it work with CMake?

So the briefly resume my situation how do I setup either a dummy CMake template 
or make it work with an alternative.

Best Regards


_______________________________________________
mitk-users mailing list
mitk-users@lists.sourceforge.net<mailto:mitk-users@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/mitk-users

,,

_______________________________________________
mitk-users mailing list
mitk-users@lists.sourceforge.net<mailto:mitk-users@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/mitk-users

,,

_______________________________________________
mitk-users mailing list
mitk-users@lists.sourceforge.net<mailto:mitk-users@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/mitk-users
_______________________________________________
mitk-users mailing list
mitk-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mitk-users

Reply via email to