{"id":17922,"date":"2024-11-04T12:33:00","date_gmt":"2024-11-04T11:33:00","guid":{"rendered":"https:\/\/www.ohb-ds.de\/wpml\/magazin\/make-or-buy-softwareentwicklung"},"modified":"2026-09-17T12:10:09","modified_gmt":"2026-09-17T10:10:09","slug":"make-or-buy-software-development","status":"publish","type":"magazin","link":"https:\/\/www.ohb-ds.de\/en\/magazine\/make-or-buy-software-development","title":{"rendered":"You&#8217;re Spoiled for Choice: Dealing with Dependencies in Software Development"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"17922\" class=\"elementor elementor-17922 elementor-6563\" data-elementor-post-type=\"magazin\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1140ce9d e-con-full e-flex e-con e-parent\" data-id=\"1140ce9d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-79976962 e-flex e-con-boxed e-con e-child\" data-id=\"79976962\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-38c1675e e-con-full e-flex e-con e-child\" data-id=\"38c1675e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-57fef9e5 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"57fef9e5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-code\" viewBox=\"0 0 640 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-522ee9cc elementor-widget elementor-widget-heading\" data-id=\"522ee9cc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\">Software<\/span>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-115fa064 elementor-widget elementor-widget-heading\" data-id=\"115fa064\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">You&#8217;re Spoiled for Choice: Dealing with Dependencies in Software Development<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3436fc15 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"3436fc15\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tMake or buy? Decisions about whether to use frameworks or third-party software often lead to discussions about the wise use of time and money. Wir zeigen, warum es nicht immer sinnvoll ist, auf fertige L\u00f6sungen zu setzen und wann sich eine Eigenentwicklung lohnt.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7b07f120 e-con-full e-flex e-con e-child\" data-id=\"7b07f120\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-52d5ce94 elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-button\" data-id=\"52d5ce94\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.ohb-ds.de\/en\/contact\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Schedule an initial consultation now<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-fef376b e-flex e-con-boxed e-con e-parent\" data-id=\"fef376b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-713064a elementor-widget elementor-widget-text-editor\" data-id=\"713064a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Whether it\u2019s large frameworks or libraries, or small tools or collections of useful functions: it seems as though solutions already exist for every problem. Most of the time, these are available for free as open-source software (OSS). Sometimes they cost money, but these days the costs are often very low. An hour of a developer\u2019s time is significantly more expensive. Third-party software can be quickly integrated thanks to package managers. This often pleases developers and project managers alike\u2014after all, it saves us all time and money. So what\u2019s the catch?<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d3a44a9 e-flex e-con-boxed e-con e-parent\" data-id=\"d3a44a9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f09d679 elementor-widget elementor-widget-heading\" data-id=\"f09d679\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">The Fallacy About Costs<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4e12f8 elementor-widget elementor-widget-text-editor\" data-id=\"b4e12f8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>In most cases, nearly 100% of software development costs consist of personnel expenses. This creates a strong incentive to save developer time. The promise of a tool that reduces developer time is therefore an obvious one. And the conclusion that using off-the-shelf software to \u201cbuy in\u201d parts of the development process is, in principle, correct\u2014because only by reducing development effort can time, and thus money, be saved in the end.<\/p>\n<p>But this is also where the problem lies. How exactly do you assess whether off-the-shelf software can save time? It\u2019s not the initial implementation, but rather the time spent troubleshooting issues and continuously maintaining the software that drives costs. These time expenditures depend primarily on whether the development team understands the software and is thoroughly familiar with the code. With third-party software, this is only possible after a long training period and a great deal of experience. In any case, weighing the pros and cons of using third-party software versus writing your own is no simple matter, as the follow-up costs are very difficult to estimate.<\/p>\n<p>There is often a tendency to overestimate the promises at the outset, since the decision is made based on incomplete data and the immediate positive effects outweigh the drawbacks (less time required in the short term for training and integrating third-party software). Package managers like NuGet or npm have taken this principle to the extreme and have drastically simplified the process of finding and integrating third-party software.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3929728 e-flex e-con-boxed e-con e-parent\" data-id=\"3929728\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f1c0d00 elementor-widget elementor-widget-heading\" data-id=\"f1c0d00\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\nSo how do you weigh the options?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-671aab9 elementor-widget elementor-widget-text-editor\" data-id=\"671aab9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The decision to develop software in-house or use off-the-shelf software is usually based on limited experience. Furthermore, it may not become clear until later whether there are functional differences that aren\u2019t apparent at first glance. These differences only surface later in the implementation process\u2014a problem that cannot be completely eliminated.<\/p>\n<p>So, to make a good decision, you need factors that allow you to determine\u2014even with limited knowledge\u2014whether \u201cmake\u201d or \u201cbuy\u201d is the better choice. The following tips can simplify the decision.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9ce3db7 e-flex e-con-boxed e-con e-parent\" data-id=\"9ce3db7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-429f393 e-con-full e-flex e-con e-child\" data-id=\"429f393\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-f5c2dc5 e-con-full e-flex e-con e-child\" data-id=\"f5c2dc5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e79d58a elementor-widget elementor-widget-heading\" data-id=\"e79d58a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Scope of the Solution<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0590c6e elementor-blockquote--skin-quotation elementor-blockquote--align-center elementor-widget elementor-widget-blockquote\" data-id=\"0590c6e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"blockquote.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<blockquote class=\"elementor-blockquote\">\n\t\t\t<p class=\"elementor-blockquote__content\">\n\t\t\t\t\u201cIt offers so much\u2014we're definitely well-positioned for the future.\u201d\t\t\t<\/p>\n\t\t\t\t\t<\/blockquote>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c0cee9a elementor-widget elementor-widget-text-editor\" data-id=\"c0cee9a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The argument might go something like this if you only need a small part of the third-party software. But what if that\u2019s all you need? Wouldn\u2019t it be easier to write the functionality yourself? Do I really need a component like <a href=\"https:\/\/qz.com\/646467\/how-one-programmer-broke-the-internet-by-deleting-a-tiny-piece-of-code\/\" target=\"_blank\" rel=\"noopener\">leftpad<\/a>?<\/p>\n<p>It makes sense to take a look at the scope of the solution you need. Sometimes there are no real arguments in favor of the more complex off-the-shelf solution, yet you still opt for it because of potential you\u2019ll never fully utilize.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-eff3d42 e-flex e-con-boxed e-con e-parent\" data-id=\"eff3d42\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-8861d09 e-con-full e-flex e-con e-child\" data-id=\"8861d09\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-35dc9aa e-con-full e-flex e-con e-child\" data-id=\"35dc9aa\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8446b47 elementor-widget elementor-widget-heading\" data-id=\"8446b47\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Future-proof<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-358ee30 elementor-blockquote--skin-quotation elementor-blockquote--align-center elementor-widget elementor-widget-blockquote\" data-id=\"358ee30\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"blockquote.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<blockquote class=\"elementor-blockquote\">\n\t\t\t<p class=\"elementor-blockquote__content\">\n\t\t\t\t\u201cExternal components are maintained and updated independently\u201d\t\t\t<\/p>\n\t\t\t\t\t<\/blockquote>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cfb442f elementor-widget elementor-widget-text-editor\" data-id=\"cfb442f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>It is certainly true that third-party components often receive updates and security patches that enhance functionality and improve stability. The maturity a third-party component has achieved is a key indicator of its future viability. Factors include:<\/p>\n<ul>\n<li>Commitment, popularity (for open-source software)<\/li>\n<li>The software has a stable business model through which the vendor generates revenue<\/li>\n<li>Market acceptance<\/li>\n<\/ul>\n<p>\u00a0<\/p>\n<p>These factors seem straightforward to evaluate; for example, the star ratings on GitHub provide an indication of the software\u2019s popularity. Market acceptance or the question of the business model, however, can often only be assessed qualitatively.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1b0baec e-flex e-con-boxed e-con e-parent\" data-id=\"1b0baec\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-64182d4 e-con-full e-flex e-con e-child\" data-id=\"64182d4\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-0d4e6ae e-con-full e-flex e-con e-child\" data-id=\"0d4e6ae\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-77cd183 elementor-widget elementor-widget-heading\" data-id=\"77cd183\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">The effort required for integration remains<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4f42c2b elementor-widget elementor-widget-text-editor\" data-id=\"4f42c2b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Regardless of the factors mentioned above, some effort is always required for integration. With in-house development, this effort is already factored in. With third-party software, integration often involves gaining an understanding of the system through documentation and trial and error. This effort tends to be greater for more complex solutions. For smaller solutions, it may therefore make sense to develop them in-house to ensure they are future-proof, since with in-house development, the company\u2019s own development team knows the solution inside and out and can keep it stable.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c21da30 e-flex e-con-boxed e-con e-parent\" data-id=\"c21da30\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-0ef1e98 e-con-full e-flex e-con e-child\" data-id=\"0ef1e98\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-220781d e-con-full e-flex e-con e-child\" data-id=\"220781d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b9305d2 elementor-widget elementor-widget-heading\" data-id=\"b9305d2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Nothing is free<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6ac350a elementor-widget elementor-widget-text-editor\" data-id=\"6ac350a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Neither is free, because keeping things up to date always requires some effort to integrate, even though automated version control in package managers and approaches like <a href=\"https:\/\/semver.org\/\" target=\"_blank\" rel=\"noopener\">semantic versioning<\/a> are used in an attempt to escape <em>\u201cdependency hell\u201d<\/em> (e.g., caused by numerous dependencies and dependency cascades).<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0b73e80 e-flex e-con-boxed e-con e-parent\" data-id=\"0b73e80\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a305e75 elementor-widget elementor-widget-heading\" data-id=\"a305e75\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">A Real-World Example \u2013 Caliburn.Micro<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5e06ed2 elementor-widget elementor-widget-text-editor\" data-id=\"5e06ed2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>An example from one of our software teams\u2014which develops software using WPF and .NET\u2014shows just how simple implementation can be. For this project, they used the<a href=\"https:\/\/caliburnmicro.com\/\" target=\"_blank\" rel=\"noopener\"> Caliburn.Micro<\/a> framework. The primary reason was to utilize the MVVM pattern.<\/p>\n<p>The decision was easy, because Caliburn.Micro is free and very easy to use and integrate. By limiting themselves to the MVVM pattern, the team had chosen only a small, isolated part that was important to them. Nevertheless, problems arose relatively early on that made development unnecessarily complicated:<\/p>\n<ul>\n<li>In the MVVM pattern, as implemented in Caliburn.Micro, the matching of the view and view model is done based on the names of the components.<\/li>\n<li>When DevExpress was additionally integrated, this pattern could not be used as is. Instead, the standard WPF pattern\u2014consisting of XAML and code-behind\u2014had to be used.<\/li>\n<li>By using two patterns, the team kept falling back into the WPF pattern, as it was unclear which pattern was being used at any given point.<\/li>\n<\/ul>\n<p>\u00a0<\/p>\n<p>So, the first step was to assess the scope of the solution. The MVVM pattern itself is a smaller, isolated component. It can be easily separated and implemented independently, without any dependency on Caliburn.Micro. The integration and familiarization with the external framework required a similar amount of effort.<\/p>\n<p>The implementation of our in-house development therefore involved:<\/p>\n<ul>\n<li>Isolating the MVVM pattern mapping via filename conventions (instead of component names) and<\/li>\n<li>integrating it into WPF<\/li>\n<\/ul>\n<p>\u00a0<\/p>\n<p>We can now implement our own ideas more easily and quickly, and the code is much clearer and leaner, since we\u2019ve implemented only the functions we actually need. Our framework is thus much easier to understand and therefore ready for any maintenance or expansion. The use of our company\u2019s proprietary standard formats and structures makes it easier to work with the software internally. This makes it easier to resolve issues using existing solutions.<\/p>\n<p>The fact that it doesn\u2019t require much programming effort is demonstrated by the code we wrote ourselves, which reflects the benefits we hoped to achieve with Caliburn.Micro.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a9edcf7 e-flex e-con-boxed e-con e-parent\" data-id=\"a9edcf7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-db457fb elementor-widget elementor-widget-heading\" data-id=\"db457fb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Code example<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5276344 elementor-widget elementor-widget-n-accordion\" data-id=\"5276344\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;default_state&quot;:&quot;all_collapsed&quot;,&quot;max_items_expended&quot;:&quot;one&quot;,&quot;n_accordion_animation_duration&quot;:{&quot;unit&quot;:&quot;ms&quot;,&quot;size&quot;:400,&quot;sizes&quot;:[]}}\" data-widget_type=\"nested-accordion.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"e-n-accordion\" aria-label=\"Accordion. Open links with Enter or Space, close with Escape, and navigate with Arrow Keys\">\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-8640\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"1\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-8640\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> Expand code example <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-minus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span>\n\t\t\t<span class='e-closed'><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-plus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-8640\" class=\"elementor-element elementor-element-6b53a9c e-flex e-con-boxed e-con e-child\" data-id=\"6b53a9c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-40e6b59 elementor-widget elementor-widget-code-highlight\" data-id=\"40e6b59\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>\/\/\/ <summary>\r\n        \/\/\/ Searches for View models and views that match the name convention and adds them to the resource dictionary\r\n        \/\/\/ <\/summary>\r\n        \/\/\/ <param name=\"typeNamespace\"> The namespace in which will be searched for the view models<\/param>\r\n        \/\/\/ <param name=\"res\">Reference to Dictionary in which the template should be stored<\/param>\r\n        \/\/\/ <param name=\"relTypes\">Array of types that contains among other types, the view model types and view types<\/param>\r\n        \/\/\/ <returns>List that contains the imported templates<\/returns>\r\n        public static List<String> GenerateTemplateDictionary(String typeNamespace, ResourceDictionary res, Type[] relTypes)\r\n        {\r\n            \/\/ get names of namespaces for VMs and Views by convention\r\n            String vmNs = $@\"{typeNamespace}.ViewModels\";\r\n            String viewNs = vmNs.Replace(\"Model\", String.Empty);\r\n\r\n            \/\/ getting types of VMs and Views from that namespaces\r\n            var viewModelQuery = from t in relTypes\r\n                          where t != null && t.IsClass && !t.IsAbstract && t.Namespace != null && t.Namespace.StartsWith(vmNs)\r\n                          select t;\r\n\r\n            var viewModelTypeList = viewModelQuery.Where(t => t != null).GroupBy(t => t.Name).Select(g => g.First()).ToDictionary(t => t.Name, t => t);\r\n\r\n            var viewQuery = from t in relTypes\r\n                            where t != null && t.IsClass && !t.IsAbstract && t.Namespace != null && t.Namespace.StartsWith(viewNs)\r\n                            select t;\r\n            var viewTypeList = viewQuery.Where(t => t != null).GroupBy(t => t.Name).Select(g => g.First()).ToDictionary(t => t.Name, t => t);\r\n\r\n            var foundItems = new List<String>();\r\n\r\n            \/\/ link the VM types to View types by convention into a datatemplate and add the datatemplate to app.resources\r\n            foreach (var vmt in viewModelTypeList)\r\n            {\r\n                var viewKey = vmt.Key.Replace(\"Model\", String.Empty);\r\n                if (viewTypeList.ContainsKey(viewKey))\r\n                {\r\n                    var viewType = viewTypeList[viewKey];\r\n                    var template = CreateTemplate(vmt.Value, viewType);\r\n                    if (!res.Contains(template.DataTemplateKey ?? throw new InvalidOperationException()))\r\n                    {\r\n                        res.Add(template.DataTemplateKey ?? throw new InvalidOperationException(), template);\r\n                        foundItems.Add($@\"Found and add VM -> View: {viewType.FullName} -> {vmt.Value.FullName}\");\r\n                    }\r\n                    else\r\n                        foundItems.Add($@\"Pair is already known VM -> View: {viewType.FullName} -> {vmt.Value.FullName}\");\r\n                }\r\n            }\r\n\r\n            return foundItems;\r\n        }\r\n        \r\n        private static DataTemplate CreateTemplate(Type viewModelType, Type viewType)\r\n        {\r\n            \/\/ The only way to get around some problems with binding later is this way of creating datatemplate objects\r\n            \/\/ see www.ikriv.com\/dev\/wpf\/DataTemplateCreation\/ \r\n\r\n            const String xamlTemplate = \"<DataTemplate DataType=\\\"{{x:Type vm:{0}}}\\\"><v:{1} \/><\/DataTemplate>\";\r\n            var xaml = String.Format(xamlTemplate, viewModelType.Name, viewType.Name);\r\n\r\n            var context = new ParserContext { XamlTypeMapper = new XamlTypeMapper(new String[0]) };\r\n\r\n            context.XamlTypeMapper.AddMappingProcessingInstruction(\"vm\", viewModelType.Namespace ?? throw new InvalidOperationException(), viewModelType.Assembly.FullName);\r\n            context.XamlTypeMapper.AddMappingProcessingInstruction(\"v\", viewType.Namespace ?? throw new InvalidOperationException(), viewType.Assembly.FullName);\r\ncaliburnmicro.com\r\n            context.XmlnsDictionary.Add(\"\", \"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\/presentation\");\r\n            context.XmlnsDictionary.Add(\"x\", \"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\");\r\n            context.XmlnsDictionary.Add(\"vm\", \"vm\");\r\n            context.XmlnsDictionary.Add(\"v\", \"v\");\r\n\r\n            var template = (DataTemplate)XamlReader.Parse(xaml, context);\r\n            return template;\r\n        }<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d2cdd02 e-flex e-con-boxed e-con e-parent\" data-id=\"d2cdd02\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7814579 elementor-widget elementor-widget-heading\" data-id=\"7814579\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">It's incredibly easy to use<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-da1ca01 elementor-widget elementor-widget-code-highlight\" data-id=\"da1ca01\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>DynamicVmTemplateFinder.GenerateTemplateDictionary(typeof(App), Current.Resources,\u00a0 Assembly.GetExecutingAssembly().GetTypes())<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e286dae e-flex e-con-boxed e-con e-parent\" data-id=\"e286dae\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5d401a3 elementor-widget elementor-widget-text-editor\" data-id=\"5d401a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The Dictionary handles the mapping by binding the View and ViewModel together.<\/p>\n<p>It became clear by June 2020, at the latest, that this was the right decision. At that time, the developer marked Caliburn.Micro as no longer maintained.<\/p>\n<p>The reasons are often the same. There are only a few developers responsible for the project, and as their personal or professional circumstances change, they are often no longer able to continue development that is typically carried out in their spare time.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d7a195c e-con-full e-flex e-con e-child\" data-id=\"d7a195c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-99300a2 elementor-widget elementor-widget-image\" data-id=\"99300a2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"369\" src=\"https:\/\/www.ohb-ds.de\/wp-content\/uploads\/2024\/12\/Caliburn_Screenshot.webp\" class=\"attachment-large size-large wp-image-17924\" alt=\"Caliburn Screenshot\" srcset=\"https:\/\/www.ohb-ds.de\/wp-content\/uploads\/2024\/12\/Caliburn_Screenshot.webp 1120w, https:\/\/www.ohb-ds.de\/wp-content\/uploads\/2024\/12\/Caliburn_Screenshot-300x138.webp 300w, https:\/\/www.ohb-ds.de\/wp-content\/uploads\/2024\/12\/Caliburn_Screenshot-768x354.webp 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" title=\"\">\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-717462c e-flex e-con-boxed e-con e-parent\" data-id=\"717462c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d3f1e95 elementor-widget elementor-widget-heading\" data-id=\"d3f1e95\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Fazit<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fa8a7bc elementor-widget elementor-widget-text-editor\" data-id=\"fa8a7bc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>This example shows that the decisions and considerations made in this case resulted in the investment paying off. The freedom to make these decisions within the development team is a hallmark of working at OHB Digital Services.<\/p>\n<p>There is a great deal of leeway for these decisions; team members can contribute their own ideas, and the project manager does not dictate which type of library should be used. Because decisions are made as a team, this often results in better solutions.<\/p>\n<p>Over time, we\u2019ve found that it often makes more sense to create our own solutions and develop a simple, small framework ourselves rather than using more complex third-party frameworks.<\/p>\n<p>If you do decide to use a third-party library, however, you should always be aware that this isn\u2019t a sure thing. Instead of simply integrating it and forgetting about it, a high level of care and maintenance is essential even with third-party software. As the number of dependencies increases, it\u2019s easy to lose sight of hidden incompatibilities. This can also lead to time-consuming bug fixes if the third-party software isn\u2019t thoroughly understood. All of this must not be overlooked.<\/p>\n<p>Ultimately, of course, the goal is to provide the best possible product for the customer, and decisions should be made with this in mind.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5b4be14f e-flex e-con-boxed e-con e-parent\" data-id=\"5b4be14f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-489833 e-con-full e-flex e-con e-child\" data-id=\"489833\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e1127e3 elementor-widget elementor-widget-heading\" data-id=\"e1127e3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Your Journey with OHB Digital Services<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5c13aec elementor-widget elementor-widget-text-editor\" data-id=\"5c13aec\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Leverage space technology for your business. OHB Digital Services GmbH has been a reliable partner for secure and innovative IT solutions for many years. We are part of one of the most successful aerospace and technology companies in Europe. With our products and services, we support you in areas such as the digital transformation of your business processes along the value chain and with all security-related issues. <a href=\"https:\/\/www.ohb-ds.de\/kontakt\">Please feel free to contact us.<\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b216cd7 e-flex e-con-boxed e-con e-parent\" data-id=\"b216cd7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9b2c164 elementor-widget elementor-widget-heading\" data-id=\"9b2c164\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Recent magazine articles on Software<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2cea510 elementor-grid-3 elementor-grid-tablet-2 elementor-grid-mobile-1 elementor-widget elementor-widget-loop-grid\" data-id=\"2cea510\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;template_id&quot;:17386,&quot;columns&quot;:3,&quot;_skin&quot;:&quot;post&quot;,&quot;columns_tablet&quot;:&quot;2&quot;,&quot;columns_mobile&quot;:&quot;1&quot;,&quot;edit_handle_selector&quot;:&quot;[data-elementor-type=\\&quot;loop-item\\&quot;]&quot;,&quot;row_gap&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;row_gap_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;row_gap_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"loop-grid.post\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-loop-container elementor-grid\" role=\"list\">\n\t\t<style id=\"loop-17386\">.elementor-17386 .elementor-element.elementor-element-a4bd8bf{--display:flex;border-style:solid;--border-style:solid;border-width:2px 2px 2px 2px;--border-top-width:2px;--border-right-width:2px;--border-bottom-width:2px;--border-left-width:2px;border-color:var( --e-global-color-18290a8 );--border-color:var( --e-global-color-18290a8 );--border-radius:4px 4px 4px 4px;--padding-top:25px;--padding-bottom:25px;--padding-left:25px;--padding-right:25px;}.elementor-17386 .elementor-element.elementor-element-a4bd8bf:not(.elementor-motion-effects-element-type-background), .elementor-17386 .elementor-element.elementor-element-a4bd8bf > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:transparent;background-image:linear-gradient(0deg, var( --e-global-color-18290a8 ) 50%, var( --e-global-color-accent ) 100%);}.elementor-17386 .elementor-element.elementor-element-a4bd8bf:hover::before, .elementor-17386 .elementor-element.elementor-element-a4bd8bf:hover > .elementor-background-video-container::before, .elementor-17386 .elementor-element.elementor-element-a4bd8bf:hover > .e-con-inner > .elementor-background-video-container::before, .elementor-17386 .elementor-element.elementor-element-a4bd8bf > .elementor-background-slideshow:hover::before, .elementor-17386 .elementor-element.elementor-element-a4bd8bf > .e-con-inner > .elementor-background-slideshow:hover::before{--background-overlay:'';background-color:var( --e-global-color-primary );}.elementor-17386 .elementor-element.elementor-element-a4bd8bf:hover{--overlay-opacity:0.03;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );}.elementor-17386 .elementor-element.elementor-element-9625edf img{width:100%;height:250px;object-fit:cover;object-position:center center;opacity:1;border-radius:4px 4px 4px 4px;}.elementor-17386 .elementor-element.elementor-element-9625edf:hover img{opacity:0.8;}.elementor-17386 .elementor-element.elementor-element-9625edf > .elementor-widget-container{margin:-25px -25px 0px -25px;}.elementor-17386 .elementor-element.elementor-element-7aa1109{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--border-radius:4px 0px 0px 4px;--margin-top:-40px;--margin-bottom:0px;--margin-left:0px;--margin-right:-25px;--padding-top:10px;--padding-bottom:10px;--padding-left:10px;--padding-right:10px;}.elementor-17386 .elementor-element.elementor-element-7aa1109:not(.elementor-motion-effects-element-type-background), .elementor-17386 .elementor-element.elementor-element-7aa1109 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-2fac887 );}.elementor-17386 .elementor-element.elementor-element-7aa1109.e-con{--align-self:flex-end;--flex-grow:0;--flex-shrink:0;}.elementor-widget-heading .elementor-heading-title{color:var( --e-global-color-primary );}.elementor-17386 .elementor-element.elementor-element-7b3eab2{text-align:center;}.elementor-17386 .elementor-element.elementor-element-7b3eab2 .elementor-heading-title{font-family:\"FFQ Type Square\", Sans-serif;font-size:12px;font-weight:bold;text-transform:uppercase;font-style:normal;color:var( --e-global-color-primary );}.elementor-17386 .elementor-element.elementor-element-7b3eab2 > .elementor-widget-container{margin:0% 0% 0% 0%;}.elementor-17386 .elementor-element.elementor-element-7b3eab2.elementor-element{--align-self:center;}.elementor-17386 .elementor-element.elementor-element-3576ba6{text-align:start;}.elementor-17386 .elementor-element.elementor-element-3576ba6 .elementor-heading-title{font-family:\"FFQ Type Square\", Sans-serif;font-size:22px;font-weight:400;text-transform:uppercase;line-height:1.35;color:var( --e-global-color-primary );}.elementor-17386 .elementor-element.elementor-element-3576ba6 > .elementor-widget-container{margin:30px 0px 0px 0px;}.elementor-widget-text-editor{color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-17386 .elementor-element.elementor-element-aed0dbc{font-family:\"FF DIN\", Sans-serif;font-size:18px;font-weight:400;text-transform:none;font-style:normal;text-decoration:none;color:var( --e-global-color-primary );}.elementor-17386 .elementor-element.elementor-element-aed0dbc > .elementor-widget-container{margin:20px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-17386 .elementor-element.elementor-element-5326cf9{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-start;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:10px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-17386 .elementor-element.elementor-element-955692d{text-align:start;}.elementor-17386 .elementor-element.elementor-element-955692d .elementor-heading-title{font-family:\"FF DIN\", Sans-serif;font-size:14px;font-weight:bold;text-transform:uppercase;font-style:italic;color:var( --e-global-color-primary );}.elementor-17386 .elementor-element.elementor-element-955692d > .elementor-widget-container{margin:0px 10px 0px 0px;}.elementor-widget-icon.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-primary );}.elementor-widget-icon.elementor-view-framed .elementor-icon, .elementor-widget-icon.elementor-view-default .elementor-icon{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-widget-icon.elementor-view-framed .elementor-icon, .elementor-widget-icon.elementor-view-default .elementor-icon svg{fill:var( --e-global-color-primary );}.elementor-17386 .elementor-element.elementor-element-b35060e .elementor-icon-wrapper{text-align:start;}.elementor-17386 .elementor-element.elementor-element-b35060e.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-primary );}.elementor-17386 .elementor-element.elementor-element-b35060e.elementor-view-framed .elementor-icon, .elementor-17386 .elementor-element.elementor-element-b35060e.elementor-view-default .elementor-icon{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-17386 .elementor-element.elementor-element-b35060e.elementor-view-framed .elementor-icon, .elementor-17386 .elementor-element.elementor-element-b35060e.elementor-view-default .elementor-icon svg{fill:var( --e-global-color-primary );}.elementor-17386 .elementor-element.elementor-element-b35060e .elementor-icon{font-size:14px;}.elementor-17386 .elementor-element.elementor-element-b35060e .elementor-icon svg{height:14px;}@media(min-width:768px){.elementor-17386 .elementor-element.elementor-element-7aa1109{--width:46%;}}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"17386\" class=\"elementor elementor-17386 elementor-6252 elementor-6252 e-loop-item e-loop-item-17830 post-17830 magazin type-magazin status-publish has-post-thumbnail hentry\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<a class=\"elementor-element elementor-element-a4bd8bf e-con-full e-flex e-con e-child\" data-id=\"a4bd8bf\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\" href=\"https:\/\/www.ohb-ds.de\/en\/magazine\/what-is-social-engineering\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9625edf elementor-widget elementor-widget-image\" data-id=\"9625edf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"768\" height=\"512\" src=\"https:\/\/www.ohb-ds.de\/wp-content\/uploads\/2024\/11\/social-engineering32-768x512.webp\" class=\"attachment-medium_large size-medium_large wp-image-17832\" alt=\"\" srcset=\"https:\/\/www.ohb-ds.de\/wp-content\/uploads\/2024\/11\/social-engineering32-768x512.webp 768w, https:\/\/www.ohb-ds.de\/wp-content\/uploads\/2024\/11\/social-engineering32-300x200.webp 300w, https:\/\/www.ohb-ds.de\/wp-content\/uploads\/2024\/11\/social-engineering32-1536x1024.webp 1536w, https:\/\/www.ohb-ds.de\/wp-content\/uploads\/2024\/11\/social-engineering32.webp 1620w\" sizes=\"(max-width: 768px) 100vw, 768px\" title=\"\">\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7aa1109 e-con-full e-flex e-con e-child\" data-id=\"7aa1109\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7b3eab2 elementor-widget elementor-widget-heading\" data-id=\"7b3eab2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">IT-Sicherheit<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3576ba6 elementor-widget elementor-widget-heading\" data-id=\"3576ba6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">What is social engineering?<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aed0dbc elementor-widget elementor-widget-text-editor\" data-id=\"aed0dbc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tFrom a seemingly harmless text message to a sophisticated phishing campaign\u2014how attackers exploit employees\u2019 vulnerabilities and trust to achieve their goals.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5326cf9 e-con-full e-flex e-con e-child\" data-id=\"5326cf9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-955692d elementor-widget elementor-widget-heading\" data-id=\"955692d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">Learn more<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b35060e elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"b35060e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-right\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"17386\" class=\"elementor elementor-17386 elementor-6252 elementor-6252 e-loop-item e-loop-item-17815 post-17815 magazin type-magazin status-publish has-post-thumbnail hentry\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<a class=\"elementor-element elementor-element-a4bd8bf e-con-full e-flex e-con e-child\" data-id=\"a4bd8bf\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\" href=\"https:\/\/www.ohb-ds.de\/en\/magazine\/what-is-red-teaming-and-who-can-benefit-from-it\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9625edf elementor-widget elementor-widget-image\" data-id=\"9625edf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"768\" height=\"512\" src=\"https:\/\/www.ohb-ds.de\/wp-content\/uploads\/2024\/11\/RedTeaming32-1-768x512.webp\" class=\"attachment-medium_large size-medium_large wp-image-17817\" alt=\"\" srcset=\"https:\/\/www.ohb-ds.de\/wp-content\/uploads\/2024\/11\/RedTeaming32-1-768x512.webp 768w, https:\/\/www.ohb-ds.de\/wp-content\/uploads\/2024\/11\/RedTeaming32-1-300x200.webp 300w, https:\/\/www.ohb-ds.de\/wp-content\/uploads\/2024\/11\/RedTeaming32-1-1619x1080.webp 1619w, https:\/\/www.ohb-ds.de\/wp-content\/uploads\/2024\/11\/RedTeaming32-1-1536x1025.webp 1536w, https:\/\/www.ohb-ds.de\/wp-content\/uploads\/2024\/11\/RedTeaming32-1-scaled.webp 1920w\" sizes=\"(max-width: 768px) 100vw, 768px\" title=\"\">\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7aa1109 e-con-full e-flex e-con e-child\" data-id=\"7aa1109\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7b3eab2 elementor-widget elementor-widget-heading\" data-id=\"7b3eab2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">IT-Sicherheit<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3576ba6 elementor-widget elementor-widget-heading\" data-id=\"3576ba6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">What is red teaming, and who can benefit from it?<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aed0dbc elementor-widget elementor-widget-text-editor\" data-id=\"aed0dbc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tIn this article, we explain the benefits of red teaming and show you which companies this specific type of penetration test is suitable for.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5326cf9 e-con-full e-flex e-con e-child\" data-id=\"5326cf9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-955692d elementor-widget elementor-widget-heading\" data-id=\"955692d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">Learn more<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b35060e elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"b35060e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-right\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"17386\" class=\"elementor elementor-17386 elementor-6252 elementor-6252 e-loop-item e-loop-item-17799 post-17799 magazin type-magazin status-publish has-post-thumbnail hentry\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<a class=\"elementor-element elementor-element-a4bd8bf e-con-full e-flex e-con e-child\" data-id=\"a4bd8bf\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\" href=\"https:\/\/www.ohb-ds.de\/en\/magazine\/vulnerability-analysis-for-smes\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9625edf elementor-widget elementor-widget-image\" data-id=\"9625edf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"512\" src=\"https:\/\/www.ohb-ds.de\/wp-content\/uploads\/2024\/11\/SCHWACHSTELLENANALYSE32-768x512.webp\" class=\"attachment-medium_large size-medium_large wp-image-17801\" alt=\"\" srcset=\"https:\/\/www.ohb-ds.de\/wp-content\/uploads\/2024\/11\/SCHWACHSTELLENANALYSE32-768x512.webp 768w, https:\/\/www.ohb-ds.de\/wp-content\/uploads\/2024\/11\/SCHWACHSTELLENANALYSE32-300x200.webp 300w, https:\/\/www.ohb-ds.de\/wp-content\/uploads\/2024\/11\/SCHWACHSTELLENANALYSE32-1619x1080.webp 1619w, https:\/\/www.ohb-ds.de\/wp-content\/uploads\/2024\/11\/SCHWACHSTELLENANALYSE32-1536x1024.webp 1536w, https:\/\/www.ohb-ds.de\/wp-content\/uploads\/2024\/11\/SCHWACHSTELLENANALYSE32.webp 1920w\" sizes=\"(max-width: 768px) 100vw, 768px\" title=\"\">\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7aa1109 e-con-full e-flex e-con e-child\" data-id=\"7aa1109\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7b3eab2 elementor-widget elementor-widget-heading\" data-id=\"7b3eab2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">IT-Sicherheit<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3576ba6 elementor-widget elementor-widget-heading\" data-id=\"3576ba6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">Vulnerability analysis for SMEs<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aed0dbc elementor-widget elementor-widget-text-editor\" data-id=\"aed0dbc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tMore than half of all small and medium-sized enterprises (SMEs) in Germany have already been victims of a cyberattack; depending on the scale of the attack, financial losses have reached millions.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5326cf9 e-con-full e-flex e-con e-child\" data-id=\"5326cf9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-955692d elementor-widget elementor-widget-heading\" data-id=\"955692d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">Learn more<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b35060e elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"b35060e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-right\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-998ad33 elementor-section-content-middle elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"998ad33\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d5ffa1b\" data-id=\"d5ffa1b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b01126c e-con-full e-flex e-con e-child\" data-id=\"b01126c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-a070eac e-con-full e-flex e-con e-child\" data-id=\"a070eac\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4cfd938 elementor-widget elementor-widget-heading\" data-id=\"4cfd938\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Does this sound interesting to you and your company?<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cf76dfc elementor-widget elementor-widget-text-editor\" data-id=\"cf76dfc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Then please contact us.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-38dfbd9 e-con-full e-flex e-con e-child\" data-id=\"38dfbd9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-81b35cd elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-button\" data-id=\"81b35cd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.ohb-ds.de\/en\/contact\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Schedule an appointment now<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"featured_media":17923,"template":"","meta":{"_acf_changed":false},"class_list":["post-17922","magazin","type-magazin","status-publish","has-post-thumbnail","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ohb-ds.de\/en\/wp-json\/wp\/v2\/magazin\/17922","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ohb-ds.de\/en\/wp-json\/wp\/v2\/magazin"}],"about":[{"href":"https:\/\/www.ohb-ds.de\/en\/wp-json\/wp\/v2\/types\/magazin"}],"version-history":[{"count":5,"href":"https:\/\/www.ohb-ds.de\/en\/wp-json\/wp\/v2\/magazin\/17922\/revisions"}],"predecessor-version":[{"id":18180,"href":"https:\/\/www.ohb-ds.de\/en\/wp-json\/wp\/v2\/magazin\/17922\/revisions\/18180"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ohb-ds.de\/en\/wp-json\/wp\/v2\/media\/17923"}],"wp:attachment":[{"href":"https:\/\/www.ohb-ds.de\/en\/wp-json\/wp\/v2\/media?parent=17922"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}