<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>C++ Archive - CEOsBay</title>
	<atom:link href="https://ceosbay.com/tag/c/feed/" rel="self" type="application/rss+xml" />
	<link>https://ceosbay.com/tag/c/</link>
	<description>It&#039;s all about Tech</description>
	<lastBuildDate>Tue, 18 Apr 2023 17:25:50 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://i0.wp.com/ceosbay.com/wp-content/uploads/2022/11/image.jpg?fit=32%2C32&#038;ssl=1</url>
	<title>C++ Archive - CEOsBay</title>
	<link>https://ceosbay.com/tag/c/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">211828771</site>	<item>
		<title>C# &#8211; Als Brücke zwischen Innovation und Benutzererfahrung</title>
		<link>https://ceosbay.com/2023/04/19/c-als-bruecke-zwischen-innovation-und-benutzererfahrung/</link>
					<comments>https://ceosbay.com/2023/04/19/c-als-bruecke-zwischen-innovation-und-benutzererfahrung/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Wed, 19 Apr 2023 14:30:00 +0000</pubDate>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[#]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[C+]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Cool]]></category>
		<category><![CDATA[Drittanbieter]]></category>
		<category><![CDATA[Entwicklungen]]></category>
		<category><![CDATA[Frame]]></category>
		<category><![CDATA[Funktionen]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Integrated]]></category>
		<category><![CDATA[Interoperabilität]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JIT]]></category>
		<category><![CDATA[Klassen]]></category>
		<category><![CDATA[Kollektionen]]></category>
		<category><![CDATA[Lambda]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Natur]]></category>
		<category><![CDATA[NetCore]]></category>
		<category><![CDATA[Objekt]]></category>
		<category><![CDATA[Ökosystem]]></category>
		<category><![CDATA[Parameter]]></category>
		<category><![CDATA[Plattform]]></category>
		<category><![CDATA[Programmiersprache]]></category>
		<category><![CDATA[Proprietäre]]></category>
		<category><![CDATA[Query]]></category>
		<category><![CDATA[refs]]></category>
		<category><![CDATA[Sharp]]></category>
		<category><![CDATA[Skalierbarkeit]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Studio]]></category>
		<category><![CDATA[Unity]]></category>
		<category><![CDATA[Unity3D]]></category>
		<category><![CDATA[Visual]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[VisualStudio]]></category>
		<category><![CDATA[Wolke]]></category>
		<category><![CDATA[Xamarin]]></category>
		<category><![CDATA[XM]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1741</guid>

					<description><![CDATA[<p>In der Welt der Programmierung ist C# (ausgesprochen &#8222;C-Sharp&#8220;) eine der am häufigsten verwendeten und vielseitigsten Programmiersprachen. Entwickelt von Microsoft als Teil der .NET-Initiative. Hat sich C# seit seiner Einführung im Jahr 2000 rasant weiterentwickelt &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/04/19/c-als-bruecke-zwischen-innovation-und-benutzererfahrung/">C# &#8211; Als Brücke zwischen Innovation und Benutzererfahrung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In der Welt der Programmierung ist C# (ausgesprochen &#8222;C-Sharp&#8220;) eine der am häufigsten verwendeten und vielseitigsten Programmiersprachen. Entwickelt von Microsoft als Teil der .NET-Initiative. Hat sich C# seit seiner Einführung im Jahr 2000 rasant weiterentwickelt und ist heute eine der Top-Programmiersprachen. Ich habe mich erst intensiver damit beschäftigt, als ich Unity 3D kennengelernt habe. Im Kontext der Echtzeit 3D Visualisierung und Spieleentwicklung. Anfangs noch für Serious Games und später auch für konventionelle Spiele. In diesem Blogbeitrag befasse ich mich aber lediglich mit der Geschichte und Entwicklung von C# selbst. Für Unity gibt es dann einen gesonderten Beitrag.</p>



<h3 class="wp-block-heading">Kurze Zeitreise</h3>



<p>Die Geschichte von C# beginnt im Jahr 1999. Als Microsoft-Entwickler Anders Hejlsberg und sein Team an einer neuen Programmiersprache namens &#8222;Cool&#8220; (kurz für &#8222;C-like Object Oriented Language&#8220;) arbeiteten. Das Projekt, Teil von Microsofts größerer .NET-Initiative, eine einheitliche Plattform für die Entwicklung von Webdiensten, Desktop-Anwendungen und verteilter Systeme zu schaffen. Cool sollte leistungsstark und einfach zu erlernen sein. Die Elemente von C, <a href="https://ceosbay.com/2023/02/25/erklaerung-c/">C++</a>, <a href="https://ceosbay.com/2023/03/16/erklaerung-java/">Java</a> und Delphi in einer Programmiersprache vereint.</p>



<h4 class="wp-block-heading">Die ersten Schritte (2000-2002)</h4>



<p>Im Juni 2000 kam die offizielle Vorstellung von Microsoft C#. Es war von Anfang an eng mit dem .NET-<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/">Framework</a> verknüpft. Die Veröffentlichung der ersten Version von C# und dem .NET-<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/">Framework</a> (Version 1.0) folgte im Jahr 2002. Sie bot grundlegende Funktionen für objektorientierte Programmierung, wie Klassen, Objekte, Vererbung und Polymorphismus. Auch wenn diese Version noch nicht über einige der leistungsfähigen Funktionen verfügte, die man in späteren Versionen hinzugefügte. War es dennoch eine attraktive Option für Entwickler, die eine Alternative zu <a href="https://ceosbay.com/2023/03/16/erklaerung-java/">Java</a> oder <a href="https://ceosbay.com/2023/02/25/erklaerung-c/">C++</a> suchten.</p>



<h4 class="wp-block-heading">Weiterentwicklung und Verbesserungen (2002-2010)</h4>



<p>In den folgenden Jahren entwickelte sich C# kontinuierlich weiter, zahlreiche neue Funktionen und Verbesserungen kamen nach und nach hinzu. C# 2.0, dessen Veröffentlichung im Jahr 2005 stattfand, führte Generics, partielle Klassen, anonyme Methoden und Nullable-Werttypen ein. Diese Verbesserungen erleichterten die Programmierung und erweiterten die Möglichkeiten von C# erheblich.</p>



<p>C# 3.0 dann im Jahr 2007. Es brachte eine der bahnbrechendsten Neuerungen der Sprache: Language Integrated Query (LINQ) ins Spiel. LINQ ist eine Sammlung von Funktionen, die es ermöglichen, Daten aus verschiedenen Quellen (wie <a href="https://ceosbay.com/2022/10/29/structured-query-language-sql/">SQL</a>-Datenbanken, <a href="https://ceosbay.com/2022/12/27/erklaerung-xml/">XML</a>-Dokumenten und in-memory Kollektionen) zu verarbeiten. Direkt in C#, und außerdem, zu manipulieren. Diese Version führte auch anonyme Typen, Erweiterungsmethoden und Lambda-Ausdrücke ein, was die Sprache noch flexibler und ausdrucksstärker machte.</p>



<p>Mit C# 4.0, das 2010 erschien, kamen einige wichtige Funktionen hinzu. Diese verbesserten die Interoperabilität von C# mit anderen Technologien und Programmiersprachen. Dazu gehörten dynamische Typen, benannte und optionale Parameter sowie verbesserte COM-Interoperabilität.</p>



<h4 class="wp-block-heading">Aktuelle Entwicklungen (2010-heute)</h4>



<p>C# 5.0, im Jahr 2012. Es fokussierte sich hauptsächlich auf die Verbesserung der asynchronen Programmierung durch die Einführung von Async und Await Keywords. Diese Funktionen ermöglichen es Entwicklern, heute noch, asynchronen Code auf einfache und saubere Weise zu schreiben. So kann man Anwendungen erstellen, die dadurch heute schneller und reaktionsfähiger sind.</p>



<p>Seitdem kamen weitere Versionen von C#, die jeweils neue Funktionen und Verbesserungen enthielten. C# 6.0 (2015) brachte einige Syntaktische Vereinfachungen wie Auto-Property-Initialisierer, Expression-bodied-Mitglieder, Nullbedingungsoperator (?.) und String-Interpolation.</p>



<p>Gefolgt von C# 7.0 (2017). Es kamen Tuples, Pattern Matching, lokale Funktionen und erweiterte Möglichkeiten für das Arbeiten mit Werttypen durch die Einführung von ref locals und ref returns mit rein.</p>



<p>Und C# 8.0 (2019) legte einen Schwerpunkt auf die Verbesserung von Sicherheit und Produktivität, indem es Funktionen wie Nullable Reference Types, Asynchronous Streams, Pattern Matching Enhancements, Indices und Ranges sowie Default Interface Members einführte.</p>



<p>Zuletzt C# 9.0 im Jahr 2020, dass sich auf die Verbesserung von Programmiersprachfunktionen konzentrierte. Dadurch konnte man den Umgang mit Daten und den Ausdruck von Algorithmen vereinfachen. Dazu gehörten beispielsweise Init-only-Properties, Records, Pattern Matching Enhancements, Top-Level-Statements und Target-typed New Expressions.</p>



<p>Parallel zur Entwicklung von C# hat Microsoft auch an der .NET-Plattform gearbeitet. Im Jahr 2016 veröffentlichte das Unternehmen .NET Core, eine plattformübergreifende, modulare und leichte Version von .NET, die für moderne Web- und <a href="https://ceosbay.com/2022/11/30/erklaerung-cloud-computing/">Cloud</a>-Anwendungen optimiert ist. Seit der Veröffentlichung von .NET 5 im Jahr 2020 hat Microsoft die traditionellen .NET-<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/">Frameworks</a> und .NET Core vereint und setzt nun auf eine einzige .NET-Laufzeit und -Plattform.</p>



<h3 class="wp-block-heading">Vorteile von C#</h3>



<ul class="wp-block-list">
<li><strong>Vielseitigkeit</strong>: Es eignet sich für eine breite Palette von Anwendungen und Projekten. Es wird häufig für die Entwicklung von Webanwendungen, Windows-Anwendungen, <a href="https://ceosbay.com/2022/11/30/erklaerung-cloud-computing/">Cloud</a>-basierten Diensten, Spielen, mobilen Anwendungen und sogar KI-Projekten verwendet.</li>



<li><strong>Objektorientierung</strong>: Es ist eine vollständig objektorientierte Sprache, was bedeutet, dass sie auf dem Prinzip der Kapselung von Daten und Verhalten innerhalb von Objekten basiert. Dies ermöglicht eine saubere Trennung von Anliegen und fördert Wiederverwendbarkeit und Erweiterbarkeit des Codes.</li>



<li><strong>Einfache und klare Syntax</strong>: Die Syntax von C# ist einfach und leicht verständlich, wodurch Programmierer schneller lernen und produktiver sein können. Die Sprache ist weniger fehleranfällig und erlaubt Entwicklern, effizienter und mit weniger Fehlern zu arbeiten.</li>



<li><strong>Leistungsstarke Entwicklungsumgebungen</strong>: C# wird von einer Vielzahl von Entwicklungsumgebungen unterstützt, insbesondere von <a href="https://ceosbay.com/2023/02/22/visual-studio-code-der-leichte-schwergewicht/">Visual Studio Code</a>, einer leistungsstarken integrierten Entwicklungsumgebung (IDE) von Microsoft. Dies ermöglicht Programmierern, schnell und effizient zu arbeiten, Code zu schreiben, zu testen und zu debuggen.</li>



<li><strong>Unterstützung und Gemeinschaft</strong>: Da C# von Microsoft entwickelt und unterstützt wird, profitiert die Sprache von einer starken Gemeinschaft und einer breiten Palette von Ressourcen, einschließlich Online-Tutorials, Dokumentationen und Foren. Die C#-Community ist bekannt für ihre Hilfsbereitschaft und ihr Engagement, neue Programmierer willkommen zu heißen und bei Problemen zu unterstützen.</li>



<li><strong>Interoperabilität</strong>: C# bietet eine hervorragende Interoperabilität mit anderen .NET-Sprachen und -Technologien. Durch die Nutzung der .NET-Bibliotheken und &#8211;<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/">Frameworks</a> können Entwickler eine Vielzahl von Funktionalitäten in ihren Anwendungen leicht implementieren und erweitern.</li>



<li><strong>Skalierbarkeit und Leistung</strong>: C#-Anwendungen sind für ihre Leistung und Skalierbarkeit bekannt. Durch die Verwendung des Just-In-Time (JIT)-Compilers und anderer Optimierungstechniken bietet C# schnelle Ausführungszeiten und geringe Latenzzeiten, was für Anwendungen mit hohen Anforderungen an Geschwindigkeit und Reaktionsfähigkeit unerlässlich ist.</li>



<li><strong>Plattformübergreifende Entwicklung</strong>: Mit der Einführung von .NET Core und Xamarin ermöglicht C# die plattformübergreifende Entwicklung von Anwendungen für Windows, MacOS, <a href="https://ceosbay.com/2022/11/22/erklaerung-linux/">Linux</a>, iOS und Android. Dies eröffnet Entwicklern eine Vielzahl neuer Möglichkeiten und macht die Sprache noch attraktiver für Unternehmen und Entwickler.</li>
</ul>



<h3 class="wp-block-heading">Nachteile von C#</h3>



<p>Obwohl es eine leistungsstarke und vielseitige Programmiersprache ist, gibt es einige Nachteile, die man beachten sollte, bevor man sich für diese Sprache entscheidet. Hier sind einige der wichtigsten:</p>



<ul class="wp-block-list">
<li><strong>Leistung</strong>: Trotz der Verbesserungen in der Laufzeitumgebung und den Optimierungstechniken von .NET ist die Leistung von C#-Anwendungen möglicherweise nicht so gut wie die von Anwendungen, die in niedrigeren Programmiersprachen wie C oder <a href="https://ceosbay.com/2023/02/25/erklaerung-c/">C++</a> geschrieben sind. Die Verwendung von Just-In-Time (JIT)-Kompilierung und Garbage Collection kann zu einem gewissen Laufzeit-Overhead führen.</li>



<li><strong>Plattformabhängigkeit</strong>: Historisch gesehen war C# stark an das Windows-Ökosystem und die .NET-Plattform gebunden. Obwohl die Einführung von .NET Core und Xamarin die plattformübergreifende Entwicklung ermöglicht hat, ist die Unterstützung und Integration von C# in Nicht-Windows-Umgebungen möglicherweise nicht so nahtlos wie bei einigen anderen Programmiersprachen, insbesondere <a href="https://ceosbay.com/2023/03/16/erklaerung-java/">Java</a>. Mir ist dies besonders aufgefallen, als ich zeitgleich für Android und iOS Devices kompiliert habe. Man muss einige Dinge beachten und Drittanbieter-Software installieren, um überhaupt vom Fleck zu kommen.</li>



<li><strong>Lernkurve</strong>: Obwohl es im Vergleich zu einigen anderen Programmiersprachen relativ einfach zu erlernen ist, kann es dennoch eine gewisse Zeit dauern, sich mit allen Funktionen und Konzepten der Sprache vertraut zu machen, insbesondere wenn man noch keine Erfahrung mit objektorientierter Programmierung hat.</li>



<li><strong>Größe des Ökosystems:</strong> Während das .NET-Ökosystem umfangreich ist und viele Bibliotheken und <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/">Frameworks</a> bietet, kann es sein, dass bestimmte Drittanbieter-Bibliotheken oder -Tools nicht verfügbar sind oder nicht so umfangreich wie in einigen anderen Programmiersprachen.</li>



<li><strong>Proprietäre Natur:</strong> C# von Microsoft ist eine proprietäre Sprache. Obwohl es <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open-Source</a>-Implementierungen gibt (z.B. .NET Core und Xamarin), hängt die Entwicklung der Sprache und der zugehörigen Tools stark von Microsofts Strategie und Vision ab. Einige Entwickler ziehen es vor, sich auf <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open-Source</a>-Programmiersprachen wie <a href="https://ceosbay.com/2022/12/20/erklaerung-python/">Python</a> oder <a href="https://ceosbay.com/2023/03/16/erklaerung-java/">Java</a> zu konzentrieren, die nicht ein einzelnes Unternehmen kontrolliert.</li>
</ul>



<h3 class="wp-block-heading">Anwendungsbeispiele für C#</h3>



<ul class="wp-block-list">
<li><strong>Webanwendungen</strong>: Es ist eine beliebte Wahl für die Entwicklung von Webanwendungen, insbesondere mit dem ASP.NET-<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/">Framework</a>. ASP.NET Core ist ein <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open-Source</a>-Webframework, das auf .NET Core basiert und die Entwicklung von modernen, leistungsstarken Webanwendungen ermöglicht.</li>



<li><strong>Windows-Anwendungen</strong>: Es eignet sich hervorragend für die Entwicklung von Windows-Desktop-Anwendungen. Mit dem Windows Presentation Foundation (WPF) <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/">Framework</a> können Entwickler ansprechende Benutzeroberflächen und robuste Anwendungen erstellen.</li>



<li><strong>Mobile Anwendungen</strong>: Mit Hilfe von Xamarin, einer plattformübergreifenden App-Entwicklungsumgebung, können Entwickler C# verwenden, um native Anwendungen für iOS, Android und Windows Mobile zu erstellen.</li>



<li><strong>Spieleentwicklung</strong>: Die Unity-Engine, eine der weltweit führenden Spieleentwicklungsplattformen, unterstützt C# als Skriptsprache. Dies ermöglicht es Entwicklern, anspruchsvolle und leistungsfähige Spiele für verschiedene Plattformen zu entwickeln.</li>
</ul>



<h3 class="wp-block-heading">Fazit:</h3>



<p>C# hat sich seit seiner Einführung zu einer der bevorzugten Programmiersprachen für Entwickler und Unternehmen entwickelt. Mit seiner Vielseitigkeit, leistungsstarken Entwicklungsumgebungen, der starken Unterstützung durch Microsoft und einer engagierten Community bietet C# eine hervorragende Grundlage für die Entwicklung einer Vielzahl von Anwendungen. Wenn man in Betracht zieht, eine neue Programmiersprache zu erlernen oder ein neues Projekt zu starten, sollte man auf jeden Fall die vielen Vorteile von C# in Betracht ziehen.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/04/19/c-als-bruecke-zwischen-innovation-und-benutzererfahrung/">C# &#8211; Als Brücke zwischen Innovation und Benutzererfahrung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/04/19/c-als-bruecke-zwischen-innovation-und-benutzererfahrung/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1741</post-id>	</item>
		<item>
		<title>Eclipse &#8211; Die flexible Entwicklungsumgebung</title>
		<link>https://ceosbay.com/2023/03/19/erklaerung-eclipse/</link>
					<comments>https://ceosbay.com/2023/03/19/erklaerung-eclipse/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Sun, 19 Mar 2023 20:47:00 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[CDT]]></category>
		<category><![CDATA[Client]]></category>
		<category><![CDATA[DPP]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Entwicklungsumgebung]]></category>
		<category><![CDATA[Erweiterungen]]></category>
		<category><![CDATA[Fazit]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[GEF]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[IntelliJ]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JFace]]></category>
		<category><![CDATA[Jupiter]]></category>
		<category><![CDATA[Jupyter]]></category>
		<category><![CDATA[JVM]]></category>
		<category><![CDATA[Kern]]></category>
		<category><![CDATA[Machine]]></category>
		<category><![CDATA[Mylyn]]></category>
		<category><![CDATA[oasp4j]]></category>
		<category><![CDATA[Oomph]]></category>
		<category><![CDATA[Ops]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[Perspektiven]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[PP]]></category>
		<category><![CDATA[Programmiersprache]]></category>
		<category><![CDATA[Projekt]]></category>
		<category><![CDATA[Quellcode]]></category>
		<category><![CDATA[Rich]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Saros]]></category>
		<category><![CDATA[Scala]]></category>
		<category><![CDATA[Sichten]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA[Speicher]]></category>
		<category><![CDATA[Sprache]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[UML]]></category>
		<category><![CDATA[Werkzeug]]></category>
		<category><![CDATA[Werkzeuge]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Yatta]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1190</guid>

					<description><![CDATA[<p>Eclipse „Sonnenfinsternis“, ist ein Open Source Programm zur Entwicklung von Software verschiedener Art. Ihren Ursprung hat Eclipse als integrierte Entwicklungsumgebung (IDE) für die Programmiersprache Java. Mittlerweile nutzt man es aufgrund der Erweiterbarkeit auch für viele &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/19/erklaerung-eclipse/">Eclipse &#8211; Die flexible Entwicklungsumgebung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Eclipse „Sonnenfinsternis“, ist ein <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/" target="_blank" rel="noreferrer noopener">Open Source</a> Programm zur Entwicklung von Software verschiedener Art. Ihren Ursprung hat Eclipse als integrierte Entwicklungsumgebung (IDE) für die Programmiersprache <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a>. Mittlerweile nutzt man es aufgrund der Erweiterbarkeit auch für viele andere Entwicklungsaufgaben. Für Eclipse gibt es eine Vielzahl sowohl quelloffener als auch kommerzieller Erweiterungen. Es selbst basiert auf <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a>. Ab Version 3.0 auf dem OSGi-<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> Equinox. Die OSGi Alliance (früher Open Services Gateway initiative) spezifizierte eine hardwareunabhängige dynamische Softwareplattform, die es erleichtert, Anwendungen und ihre Dienste per Komponentenmodell („Bundle“/„Service“) zu modularisieren und zu verwalten („Service Registry“). Die OSGi-Plattform setzt eine <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> Virtual Machine (JVM) voraus und bietet darauf aufbauend das OSGi-<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a>. Während Equinox (Tag-und-Nacht-Gleiche) ein von der Eclipse Foundation entwickeltes <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a>-basiertes <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> ist, dass die OSGi-Kernspezifikation implementiert und das Gerüst der integrierten Entwicklungsumgebung Eclipse bildet.</p>



<h3 class="wp-block-heading">Kurze Zeitreise</h3>



<p>Eclipse ist im Grunde genommen der Nachfolger von IBM Visual Age for <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> 4.0. Der Quellcode dafür wurde im Jahr 2001 von IBM freigegeben. Im Jahr 2004 beschloss das von IBM geführte Eclipse-Konsortium die Ausgründung der rechtlich eigenständigen Eclipse Foundation, die seitdem für die Entwicklung von Eclipse verantwortlich ist. Es unterstützt die <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a>-Version 5 ab Version 3.1 und <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> 6 ab Version 3.2. Ab dem Jahr 2006 wurden die Veröffentlichungstermine neuer Versionen der wichtigsten Eclipse-Komponenten harmonisiert, um Versionskonflikte zu vermeiden und Eclipse-Anwendern die Nutzung zu erleichtern. Man hat den Veröffentlichungszyklus ab der Version 2018-09 auf Quartalsaktualisierungen verkürzt, da ab <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> 9 nicht mehr alle 3 Jahre, sondern alle 6 Monate eine neue <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> Version erscheint. Es folgt nun einem Rolling Release Modell.</p>



<h3 class="wp-block-heading">Rolling Release</h3>



<p>(„rollen“ und „veröffentlichen“. Sinngemäß handelt es sich dabei um die kontinuierliche Aktualisierung der Software und ist ein Begriff aus der Softwareentwicklung. Bei einem Betriebssystem, dass das Rolling-Release-Prinzip anwendet, gibt es keine Betriebssystem-Versionen, bei denen bei einem Versions-Upgrade eine große Menge an Software auf einmal aktualisiert wird. Die einzelnen Software-Pakete werden vielmehr immerfort aktualisiert. Dies schließt sogenannte Releases, also Veröffentlichungen des Betriebssystems, aber nicht aus. Im Gegensatz zu einem Betriebssystem ohne Rolling Releases sind die Veröffentlichungen jedoch keine Versionen, sondern sogenannte Snapshots. Dies bedeutet, eine Kopie aller im Moment im Repository liegenden Software-Versionen. Diese Snapshots dienen meistens auch als Installations-Medien.</p>



<p>Die Projektnamen waren bisher nach den Jupitermonden (Callisto, Europa und Ganymede), den Raumsonden Galileo und Helios, die Version 3.7 nach der für Eclipse typischen Farbe Indigo benannt. Die Anfangsbuchstaben der Projektnamen werden ab Version 3.5 in alphabetischer Reihenfolge vergeben. Die Version 3.8 erschien gleichzeitig mit der Version 4.2. Um mit dem schnelleren Release-Zyklus von <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> mitzuhalten, hat man 2018 von einem jährlichen Release auf vier Releases pro Jahr umgestellt. Damit hat man auch das Namensschema der Release-Versionen auf „{Jahreszahl}-{Monat}“ vereinfacht, also beispielsweise „2018-09“. Die einzelnen Versionen werden jeweils als Grundversion oder als Zusammenstellung aus verschiedenen Programmpaketen veröffentlicht. Einzelne Programmpakete kann man jedoch auch später noch nachinstallieren. Die Benutzeroberfläche von Eclipse ist standardmäßig englischsprachig. Es gibt jedoch zu jeder Version Babel-Language-Packs, die man sich in den entsprechenden Sprachen als Plugin installieren kann.</p>



<p>Darauf gehe ich so explizit ein, da ich mich in den letzten Tagen mit Kollegen über Eclipse ausgetauscht und in einem Quellcode verweise auf „Jupiter“ entdeckt habe. In der jüngsten Vergangenheit habe ich mich mit <a href="https://ceosbay.com/2022/12/30/erklaerung-projekt-jupyter/" target="_blank" rel="noreferrer noopener">Jupyter</a> beschäftigt. Daher auch hier ein Verweis auf den Beitrag damit es zu keiner Verwechslung der Themen kommt. Beides von Grund auf verschiedene Themen bzw. Dinge 😉</p>



<h3 class="wp-block-heading">Architektur</h3>



<p>Bis einschließlich zur Version 2.1 ist Eclipse als erweiterbare IDE konzipiert gewesen. Ab Version 3.0 ist es selbst nur der Kern, der die einzelnen Plug-ins lädt, die dann die eigentliche Funktionalität zur Verfügung stellt. Diese Funktionalität basiert, wie bereits erwähnt, auf Equinox. Sowohl Eclipse als auch die Plugins sind vollständig in <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> implementiert. Zur Erstellung der GUI (grafischen Benutzeroberfläche) wurde SWT verwendet. Zur Darstellung der GUI-Komponenten basiert SWT ähnlich wie AWT auf den nativen GUI-Komponenten des jeweiligen Betriebssystems. Eclipse steht für 14 verschiedene Systeme und Architekturen zur Verfügung und gilt somit als plattformunabhängig. Die Plugins lassen sich direkt von einem Update-Server, über den „Market Place“, oder durch Entpacken einer Installationsdatei installieren.</p>



<p>Das frei verfügbare Eclipse SDK umfasst die Eclipse-Plattform, Werkzeuge zur <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a>-Entwicklung (<a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> Development Tools, JDT) und die Umgebung zur Entwicklung von Eclipse-Plugins (Plugin Development Environment, PDE).</p>



<h3 class="wp-block-heading">Rich Client Platform</h3>



<p>Eclipse bietet eine Rich Client Platform, welche es Anwendungsentwicklern ermöglicht, basierend auf dem Eclipse-<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a>, von der Eclipse-IDE unabhängige Anwendungen zu schreiben. Die folgenden Komponenten (Plugins) werden typischerweise mindestens für eine Eclipse-Rich-Client-Platform-Anwendung verwendet:</p>



<ul class="wp-block-list">
<li>Eclipse Core Platform – steuert den Lebenszyklus einer Eclipse-Anwendung</li>



<li>Eclipse Platform UI – stellt die Workbench mit den Konzepten Sichten, Editoren, Perspektiven, Menüs und Toolbars zur Verfügung</li>



<li>Standard Widget Toolkit (SWT)</li>



<li>JFace</li>
</ul>



<p>Weitere Eclipse-Komponenten, wie das Hilfesystem oder das automatische Aktualisierungssystem, kann man ebenfalls einsetzen. In der Regel nutzt man das Eclipse-OSGi-<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> Equinox zum Kombinieren (bundling) der Komponenten.</p>



<h3 class="wp-block-heading">Das UI (User Interface)</h3>



<p>Eclipse ist in Komponenten (parts) gegliedert, die in Sichten (views) und Editoren (editors) gegliedert sind. Wobei die Unterscheidung in view und editor sich an der Nutzung orientiert und nicht technischer Natur ist. Diese Fenster kann man durch Drag and Drop beliebig anordnen oder minimieren.</p>



<p><strong>Sichten</strong></p>



<p>Mit Hilfe der views kann man Daten direkt bearbeitet und darunterliegende Datenstrukturen verändern.</p>



<p>Beispiele für views sind die auch aus den meisten anderen Editoren bekannte Navigator-View, die im Projektverzeichnis enthaltene Dokumente anzeigt, der Klassenexplorer, der baumartig strukturiert Symbole für die Klassen, Funktionen, Variablen und Importe eines geöffneten Quelltextes anzeigt oder das Suchfenster, dass die Ergebnisse einer Suche auflisten kann.</p>



<p><strong>Editoren</strong></p>



<p>Editoren sind Komponenten, die nur das jeweils geöffnete Datenelement bearbeiten und in denen der Nutzer explizit speichern muss, um Daten zu verändern. Beispiele sind Fenster, die meist den Quelltext mit Syntaxhervorhebung anzeigen, wobei es für viele Programmiersprachen einen eigenen Editor gibt. Beispielsweise für <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a>, C, PHP, <a href="https://ceosbay.com/2022/12/20/erklaerung-python/" target="_blank" rel="noreferrer noopener">Python</a>, <a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a>, aber auch einen einfachen Texteditor. Genauso gibt es auch visuelle Editoren (beispielsweise UML-Editoren, GUI-Builder) oder solche, die Baumstrukturen anzeigen (etwa der <a href="https://ceosbay.com/2022/12/27/erklaerung-xml/" target="_blank" rel="noreferrer noopener">XML</a>-Editor). Editoren nehmen normalerweise den meisten Raum des Programmfensters in Anspruch. Mehrere geöffnete Quelltexte kann man als Reiter öffnen, die man dann über Tabs am oberen Rand in den Vordergrund bringen kann. Außerdem kann man Tabs fixieren, damit man beispielsweise den zugehörigen Quelltext nicht versehentlich schließt. Auch kann man die Editoren weitestgehend frei per Drag and Drop anordnen. Davon abgesehen ist es möglich, eine Datei in mehreren Editoren gleichzeitig zu öffnen.</p>



<p><strong>Perspektiven</strong></p>



<p>Perspektiven sind vollständige Anordnungen von parts. Ein editor bleibt beim Perspektivwechsel erhalten. Perspektiven sind weitestgehend frei konfigurierbar und man kann benutzerdefinierte Konstellationen speichern sowie laden. Meistens stellen Plugins, die man nachinstalliert, vorkonfigurierte Perspektiven zur Verfügung, diese passt man dann meisten den eigenen Wünschen und Vorlieben an.</p>



<h3 class="wp-block-heading">Plugins und Erweiterungen</h3>



<p>Es gibt zahlreiche Erweiterungen für Eclipse. Teils proprietär, teils frei verwendbar bzw. <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/" target="_blank" rel="noreferrer noopener">Open Source</a>. Primär verwendet man es als <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> IDE. Dabei kommen vor allem die in den <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> Development Tools zusammengefassten Plugins zum Einsatz. Es existieren aber etliche Plugins für andere Sprachen, die ich bereits unter Editoren erwähnt habe. Hinzu kommt noch die Entwicklung von OSGi-Bundles. Dazu zählt vor allem das CDT-Projekt, welches C und C++ unterstützt und unter Anderem die GNU Compiler Collection sowie die LLVM (-Clang und -GCC) abdeckt. Darüber hinaus gibt es auch Plugins für Perl, PHP, ColdFusion, <a href="https://ceosbay.com/2022/12/19/erklaerung-ruby/" target="_blank" rel="noreferrer noopener">Ruby</a>, <a href="https://ceosbay.com/2022/12/20/erklaerung-python/" target="_blank" rel="noreferrer noopener">Python</a>, C#, Fortran, Ada2005, Scala usw. Diese kann man über ein Menü in Eclipse einbinden. Neben Plugins für konkrete Programmiersprachen gibt es auch solche, die allgemeine Entwicklungsprozesse unterstützen, wie beispielsweise Mylyn für „aufgabenorientierte Entwicklung“ oder Saros für Verteilte Paarprogrammierung auch Distributed Pair Programming, DPP oder Pair Programming, PP genannt. Oft sind diese Ergänzungen – anders als das Kernprogramm – ausschließlich in der englischen Sprache erhältlich.</p>



<p>Neben den <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> Development Tools gibt es viele weitere Projekte, die man ebenfalls auf der Eclipse-Website koordiniert. Ein solches Projekt ist das Eclipse Tools Project, dass verschiedene Hilfsmittel entwickelt, die Entwickler erweitern können. Weitere Projekte sind das Eclipse Modeling <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> (EMF), das Graphical Editing <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> (GEF) und die eingestellte Eclipse Riena Platform (Riena). Mit EMF lässt sich ein Datenmodell erstellen, das zum Beispiel auf UML basieren kann. GEF ist ein Projekt, dass es Entwicklern erlaubt, mit Hilfe eines existierenden Datenmodells schnell einen grafischen Editor zu erstellen. Riena unterstützt Entwickler bei der Ausstattung einer Anwendung mit einem benutzerfreundlichen Interaktionskonzept und ansprechenden Oberflächenelementen.</p>



<p>Basierend auf diesen Erweiterungen und dem modularen Aufbau von Eclipse selbst, lassen sich für Projekte spezifische Eclipse-Bundles erstellen. Diese enthalten alle für ein bestimmtes Projekt notwendigen Teile und Erweiterungen von Eclipse, ohne mit unnötigen Teilen Hauptspeicher und Rechenleistung zu verbrauchen.</p>



<p>Inzwischen gibt es auch <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/" target="_blank" rel="noreferrer noopener">Open Source</a>-Erweiterungen, die eine automatisierte Bereitstellung und Konfiguration erheblich erleichtern. Dazu zählen oasp4j-ide, Oomph und Yatta Profiles, von denen ich einige in zukünftigen Beiträgen thematisiere.</p>



<h3 class="wp-block-heading">Fazit</h3>



<p>Durch den quelloffenen Ansatz und der kostenfreien Nutzungsmöglichkeit ist Eclipse neben <a href="https://ceosbay.com/2023/03/10/erklaerung-intellij-idea/" target="_blank" rel="noreferrer noopener">IntelliJ</a> eines der beliebteren IDEs. Man kann durch Plugins und Erweiterungen viele Programmiersprachen bedienen. Der Programmkern von Eclipse stellt in dem Zusammenhang die einzige versionsübergreifende Konstante dar. Jede Aktualisierung führt Neuerungen in den Kern ein und die integrierten Plugins bzw. Erweiterungen erfordern dadurch meist eine Anpassung an die neue Version.</p>



<p>Die grafische Oberfläche von Eclipse ist auf eine effiziente Arbeitsweise ausgerichtet. Der konzeptionelle Aufbau durch Views, Editoren und Perspektiven sorgt für eine anpassbare Optik und eine bequeme Arbeitsweise mit und in der IDE. Man kann sowohl die Funktionalitäten als auch die GUI von Eclipse durch die manuelle oder automatische Installation von Plugins bzw. Erweiterungen anpassen. Entsprechende Möglichkeiten finden sich in dem standardmäßig integrierten Market Place von Eclipse.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/19/erklaerung-eclipse/">Eclipse &#8211; Die flexible Entwicklungsumgebung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/03/19/erklaerung-eclipse/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1190</post-id>	</item>
		<item>
		<title>Cucumber &#8211; Das kollaborative Tool für Behavior Driven Development</title>
		<link>https://ceosbay.com/2023/03/11/erklaerung-cucumber/</link>
					<comments>https://ceosbay.com/2023/03/11/erklaerung-cucumber/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Sat, 11 Mar 2023 20:08:00 +0000</pubDate>
				<category><![CDATA[Big-Data]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[BDD]]></category>
		<category><![CDATA[Behavior]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Cucumber]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Driven]]></category>
		<category><![CDATA[Frame]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Gherkin]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Machine]]></category>
		<category><![CDATA[Open]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA[Syntax]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Verhaltensgetrieben]]></category>
		<category><![CDATA[Virtual]]></category>
		<category><![CDATA[Werkzeug]]></category>
		<category><![CDATA[Work]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1117</guid>

					<description><![CDATA[<p>Cucumber ist ein Open Source (BDD-Framework) Behavior-Driven-Development-Werkzeug bzw. Framework (Siehe &#8222;Verhaltensgetriebene Softwareentwicklung&#8220; – Thematisiere ich definitiv und explizit in einem zukünftigen Beitrag) zur textuellen Spezifikation von Anforderungen an Software und zum automatisierten Testing bzw. mit &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/11/erklaerung-cucumber/">Cucumber &#8211; Das kollaborative Tool für Behavior Driven Development</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Cucumber ist ein <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/" target="_blank" rel="noreferrer noopener">Open Source</a> (BDD-<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a>) Behavior-Driven-Development-Werkzeug bzw. <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> (Siehe &#8222;Verhaltensgetriebene Softwareentwicklung&#8220; – Thematisiere ich definitiv und explizit in einem zukünftigen Beitrag) zur textuellen Spezifikation von Anforderungen an Software und zum automatisierten Testing bzw. mit dem sich (unter anderem) sehr gut lesbare, gut zu wartbare und elegante Akzeptanz-Tests für Web-Anwendungen schreiben lassen.</p>



<p>Cucumber wurde ursprünglich in der Programmiersprache <a href="https://ceosbay.com/2022/12/19/erklaerung-ruby/" target="_blank" rel="noreferrer noopener">Ruby</a> für Ruby-Anwendungen geschrieben. In der Zwischenzeit unterstützt es aber auch andere Programmiersprachen wie Java und alle anderen auf der Java <a href="https://ceosbay.com/2022/11/10/erklaerung-virtuelle-maschine/" target="_blank" rel="noreferrer noopener">Virtual Machine</a> gängigen Programmiersprachen sowie C++ und <a href="https://ceosbay.com/2022/11/12/javascript/">JavaScript</a>. Darüber hinaus gibt es Projekte, die Cucumber noch für weitere Programmiersprachen zur Verfügung stellen und sich als Teil der Cucumber-Familie sehen. Darunter beispielsweise SpecFlow, eine Implementierung für C#.</p>



<h3 class="wp-block-heading">Wie funktioniert Cucumber?</h3>



<p>Wie auch bei den meisten anderen BDD-<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Frameworks</a> werden in Cucumber Funktionalitäten mittels der Beschreibungssprache „Gherkin“ beschrieben. Gherkin verwendet natürliche Schriftsprache als Grundlage. Lediglich bestimmte Schlüsselwörter werden besonders behandelt.</p>



<h3 class="wp-block-heading">Gherkin</h3>



<p>Gherkin ist die Sprache, die Cucumber verwendet, um Testfälle zu definieren. Sie ist so konzipiert, dass sie sich nicht-technisch und für den Menschen lesbar gestaltet. Es beschreibt Anwendungsfälle in Bezug auf ein Softwaresystem. Der Zweck hinter der Gherkin-Syntax ist die Förderung verhaltensorientierter Entwicklungspraktiken in einem Entwicklungsteam, einschließlich Geschäftsanalysten und Managern. Sie zielt darauf ab, bereits in den ersten Phasen der Anforderungsdefinition durch die Geschäftsleitung und in anderen Phasen des Entwicklungslebenszyklus einer Anwendung feste, eindeutige Anforderungen durchzusetzen.</p>



<h3 class="wp-block-heading">Syntax</h3>



<p>Die Syntax ist ähnlich wie bei <a href="https://ceosbay.com/2022/12/20/erklaerung-python/" target="_blank" rel="noreferrer noopener">Python</a> zeilenorientiert aufgebaut. Die Struktur einer Datei wird durch Leerzeichen und andere Steuerzeichen definiert. # wird als Zeilen bzw. Kommentarzeichen verwendet und kann an jeder beliebigen Stelle in einer Datei stehen. Anweisungen sind jede nicht leere und nicht kommentierte Zeile. Sie bestehen aus einem konkreten Gherkin-Schlüsselwort, gefolgt von einer Zeichenkette.</p>



<p>Alle Gherkin-Dateien haben die Dateierweiterung .feature. Sie enthalten eine einzelne Feature-Definition für das zu testende System und sind ein ausführbares Testskript.</p>



<p>Neben der Bereitstellung eines Skripts für automatisierte Tests ist die Syntax von Gherkin so konzipiert, dass sie eine einfache Dokumentation des zu testenden Codes ermöglicht. Gherkin unterstützt derzeit Schlüsselwörter in Dutzenden von Sprachen.</p>



<h3 class="wp-block-heading">Schlüsselwörter der Gherkin Sprache</h3>



<ul class="wp-block-list">
<li>Feature: Name bzw. die Bezeichnung des Features</li>



<li>Rule: Regeln des Features</li>



<li>Example oder Scenario: Die Bezeichnung des Szenarios (Beispielsweise &#8222;Die erfolgreiche Anmeldung mit gültigen Anmeldeinformationen.&#8220;)</li>



<li>Given, When, Then, And, But für die steps (oder *)- Vorbedingungen (Gegeben sei), die Aktion, die ausgeführt wird bzw. die Erweiterung durch andere Schlüsselwörter um die Aktion die ausgeführt wird zu ergänzen bzw. zu erweitern. (Der User gibt beispielsweise seine Zugangsdaten, Username and Password ein), gefolgt von der erwarteten Reaktion des Systems (Beispielsweise die Nachricht, bei einem erfolgreichen Login.)</li>



<li>Background &#8211; Ein Background ermöglicht es einem, den nachfolgenden Scenarios einen gewissen Kontext hinzuzufügen. Es kann einen oder mehrere Vorgegebene Schritte enthalten, die vor jedem Scenario aber nach jedem Before hook ausgeführt werden.</li>



<li>Scenario Outline oder Scenario Template &#8211; Damit lässt sich dasselbe Szenario mehrmals mit unterschiedlichen Wertekombinationen ausführen.</li>



<li>Examples oder Scenarios &#8211; Eine Scenario Outline muss einen oder mehrere Abschnitte mit Examples bzw. Scenarios enthalten. Sie dienen als Steps bzw. Interpretationsvorlage, die nie direkt ausgeführt werden. Stattdessen wird die Szenariogliederung einmal für jede Zeile mit den darunter liegenden Abschnitten von Examples ausgeführt.</li>
</ul>



<h3 class="wp-block-heading">Gherkin in deutscher Sprache</h3>



<p>Um eine Funktionalität auf Deutsch zu schreiben, muss am Beginn des Features # language: de angegeben werden. Damit sind u.A. folgende deutsche Schlüsselwörter verfügbar:</p>



<ul class="wp-block-list">
<li>Funktionalität</li>



<li>Grundlage</li>



<li>Szenario</li>



<li>Szenariogrundriss</li>



<li>Beispiele</li>



<li>Angenommen</li>



<li>Gegeben sei</li>



<li>Wenn</li>



<li>Dann</li>



<li>Und und Aber, sowie *</li>
</ul>



<h3 class="wp-block-heading">Die Command line (CL)</h3>



<p>Cucumber verfügt über eine integrierte Kommandozeilenschnittstelle, die eine umfassende Liste von Anweisungen enthält. Wie die meisten Kommandozeilen-Tools bietet Cucumber die Option &#8211;help an, die eine Zusammenfassung der Befehle liefert, die diese Command Line akzeptiert.</p>



<pre class="wp-block-code"><code>$ cucumber --help
        -r, --require LIBRARY|DIR        Require files before executing the features.
        --i18n LANG                      List keywords for in a particular language.
                                         Run with "--i18n help" to see all languages.
        -f, --format FORMAT              How to format features (Default: pretty).
        -o, --out &#91;FILE|DIR]             Write output to a file/directory instead of
        ...</code></pre>



<h3 class="wp-block-heading">Fazit</h3>



<p>Gherkin ist nicht nur zum Schreiben von automatisierten Tests geeignet. Man kann Gherkin grundsätzlich auch dazu verwenden, um strukturierte Tests zu erstellen, die man später als Projektdokumentation verwendet kann. Erst die Eigenschaft, strukturiert zu sein, gibt uns die Möglichkeit zu automatisieren.</p>



<p>Sowohl die Sprache Gherkin wie auch das Tool Cucumber, bieten weitaus mehr Funktionalitäten, die ich hier nicht thematisiert habe. Zumal ich auch recht frisch in dieses Thema eingestiegen bin. So ist beispielsweise ein Datengetriebenes Szenario mithilfe von Tabellen möglich. Fernab können verschiedene Schritte, die im Prinzip das Gleiche tun, über Platzhalter definiert werden.</p>



<p>Um solche und weitere Vorteile zu nutzen, ist neben Cucumber oder anderen Testtools vor allem Disziplin beim Verfassen der Dokumentation bzw. der Gherkin Dokumente gefragt. Gleichzeitig müssen die formulierten Schritte präzise genug sein, um die gewünschten Verhaltensweisen ausreichend genau zu beschreiben. Ansonsten zerfällt die Abstraktion und Gherkin Dokumente werden lediglich zu etwas besser lesbaren Testskripten statt dem Ansatz des BDD zu folgen.</p>



<p>Cucumber lässt sich auch mit IntelliJ nutzen. Aber darüber gibt es dann in naher Zukunft einen weiteren Beitrag.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/11/erklaerung-cucumber/">Cucumber &#8211; Das kollaborative Tool für Behavior Driven Development</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/03/11/erklaerung-cucumber/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1117</post-id>	</item>
		<item>
		<title>Autodesk 3ds Max &#8211; Kreativität entfesseln</title>
		<link>https://ceosbay.com/2023/02/21/autodesk-3ds-max-kreativitaet-entfesseln/</link>
					<comments>https://ceosbay.com/2023/02/21/autodesk-3ds-max-kreativitaet-entfesseln/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Tue, 21 Feb 2023 18:22:00 +0000</pubDate>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Animation]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[3ds]]></category>
		<category><![CDATA[Animieren]]></category>
		<category><![CDATA[Anpassungsfähigkeit]]></category>
		<category><![CDATA[Architektur]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[CAD]]></category>
		<category><![CDATA[CGI]]></category>
		<category><![CDATA[Corona]]></category>
		<category><![CDATA[Effekte]]></category>
		<category><![CDATA[Engines]]></category>
		<category><![CDATA[EXR]]></category>
		<category><![CDATA[Film]]></category>
		<category><![CDATA[Foren]]></category>
		<category><![CDATA[HDR]]></category>
		<category><![CDATA[JPG]]></category>
		<category><![CDATA[Material]]></category>
		<category><![CDATA[Max]]></category>
		<category><![CDATA[Maxscript]]></category>
		<category><![CDATA[Maya]]></category>
		<category><![CDATA[Mesh]]></category>
		<category><![CDATA[Model]]></category>
		<category><![CDATA[Modellierung]]></category>
		<category><![CDATA[Modellierungsfunktionen]]></category>
		<category><![CDATA[NURBS]]></category>
		<category><![CDATA[Oberfläche]]></category>
		<category><![CDATA[Objekt]]></category>
		<category><![CDATA[OctaneRender]]></category>
		<category><![CDATA[Online]]></category>
		<category><![CDATA[Organisch]]></category>
		<category><![CDATA[Patch]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Programm]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[R3]]></category>
		<category><![CDATA[Rendering]]></category>
		<category><![CDATA[Ressourcen]]></category>
		<category><![CDATA[Revit]]></category>
		<category><![CDATA[Rigging]]></category>
		<category><![CDATA[Schlüsselrahmen]]></category>
		<category><![CDATA[Skelett]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Spiel]]></category>
		<category><![CDATA[Spiele]]></category>
		<category><![CDATA[Studio]]></category>
		<category><![CDATA[Substance]]></category>
		<category><![CDATA[Systeme]]></category>
		<category><![CDATA[Szenen]]></category>
		<category><![CDATA[Textur]]></category>
		<category><![CDATA[TIFF]]></category>
		<category><![CDATA[Toolkit]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Videospiele]]></category>
		<category><![CDATA[Visualisierung]]></category>
		<category><![CDATA[Visuals]]></category>
		<category><![CDATA[Visuell]]></category>
		<category><![CDATA[VRay]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1417</guid>

					<description><![CDATA[<p>3D Studio Max R2, später 3ds Max, war wohl das erste 3D Programm, mit dem ich in Bezug auf 3D, Ende der 90er Jahre, in Berührung kam und etwas damit anfangen konnte. Das erste 3D &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/02/21/autodesk-3ds-max-kreativitaet-entfesseln/">Autodesk 3ds Max &#8211; Kreativität entfesseln</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>3D Studio Max R2, später 3ds Max, war wohl das erste 3D Programm, mit dem ich in Bezug auf 3D, Ende der 90er Jahre, in Berührung kam und etwas damit anfangen konnte. Das erste 3D Modell, welches ich erstellt und animiert habe, war der Roboter aus Evolver. Allein das Intro des Films hat es mir damals angetan. Es war der Rechner von meinem Onkel, den ich als Kind bzw. fast schon Jugendlicher nach brauchbaren Spielen und Anwendungen durchforstet und unter den unzähligen Anwendungen darüber gestolpert bin.</p>



<p>Im dynamischen Bereich der 3D-Modellierung und Animation ist Autodesk 3ds Max ein unverzichtbares Werkzeug für Profis und Einsteiger gleichermaßen. Ob es um die Gestaltung beeindruckender Spielwelten, realistischer Film-Szenen oder detaillierter Architektur-Visualisierungen geht, 3ds Max bietet eine umfangreiche Palette an Funktionen, die den kreativen Prozess unterstützen. Besonders hat mir damals gefallen, dass ich mit Koordinaten Objekte platzieren und manipulieren konnte. Dies ermöglichte mir einen raschen Einstieg in völlig neue und digitale Welten. Die aus meinem Gedankengut. Doch heute geht es eher um Fakten. Daher…</p>



<h3 class="wp-block-heading">Umfangreiche Modellierungsfunktionen</h3>



<p>Autodesk 3ds Max ermöglicht es, eine breite Palette von 3D-Modellen und Strukturen zu erstellen. Die Software bietet zahlreiche Modellierungswerkzeuge, darunter Mesh-, Patch- und NURBS-Modellierung sowie Modifikatoren, um Formen und Texturen präzise zu manipulieren. Mit diesen vielfältigen Möglichkeiten können Designer und Künstler komplizierte Modelle mit hoher Präzision erstellen und ihre kreativen Visionen verwirklichen.</p>



<h3 class="wp-block-heading">Leistungsstarke Animationstools</h3>



<p>Die Animation ist eines der Hauptmerkmale von 3ds Max. Die Software ermöglicht es Benutzern, Charaktere und Objekte zu animieren, indem sie Schlüsselrahmen, Skelett- und Rigging-Systeme verwenden. Mit der integrierten CAT- (Character Animation Toolkit) und Biped-Animationssystemen lassen sich komplexe Animationen intuitiv erstellen und bearbeiten. Zusätzlich bietet 3ds Max Werkzeuge für Partikelanimation, Flüssigkeiten, Stoffe und Haare, um realistische Effekte zu erzielen und 3D-Szenen Leben einzuhauchen.</p>



<h3 class="wp-block-heading">Hochwertiges Rendering</h3>



<p>3ds Max bietet eine beeindruckende Auswahl an Rendering-Optionen, um Projekte in sehr guter Qualität zu präsentieren. Die Integration von Arnold, einem leistungsstarken und vielseitigen Renderer, ermöglicht es, realistische Licht- und Schattenwirkungen zu erzielen. Darüber hinaus kann man auch Drittanbieter Render-Engines wie V-Ray, Corona Renderer und OctaneRender nutzen, um die bestmöglichen Ergebnisse für Projekte zu erzielen.</p>



<h3 class="wp-block-heading">Umfangreiche Material- und Texturbibliotheken</h3>



<p>Dank der großen Material- und Texturbibliotheken von 3ds Max kann man realistische Oberflächen und Effekte erstellen. Mit dem Slate Material Editor benutzerdefinierte Materialien erstellen, indem man Texturen und Schattierungseffekte kombiniert. Außerdem unterstützt die Software gängige Dateiformate wie HDR, EXR und Substance, um volle Flexibilität bei der Gestaltung der Texturen zu bieten. Substance Designer und Painter sind übrigens ebenfalls grandiose Programme, die ich ebenfalls sehr gerne verwende. Von dem her, in der Zukunft, auch einen Beitrag wert.</p>



<h3 class="wp-block-heading">Erweiterbarkeit und Anpassungsfähigkeit von 3ds Max</h3>



<p>3ds Max ist ein äußerst anpassungsfähiges Programm, das über eine große Anzahl von Plugins und Skripts verfügt, um Workflows zu erstellen und zu optimieren. Die Unterstützung von Maxscript, <a href="https://ceosbay.com/2022/12/20/erklaerung-python/" target="_blank" rel="noreferrer noopener">Python</a> und <a href="https://ceosbay.com/2023/02/25/erklaerung-c/" target="_blank" rel="noreferrer noopener">C++</a> ermöglicht es, benutzerdefinierte Funktionen und Automatisierungen hinzuzufügen, um Projekte effizienter zu gestalten. Die Online-Community rund um 3ds Max ist sehr aktiv und bietet eine Vielzahl von Ressourcen, einschließlich Tutorials, Foren und Plugins, um das Programm an spezielle Anforderungen anzupassen.</p>



<h3 class="wp-block-heading">Nahtlose Integration von 3ds Max mit anderen Programmen</h3>



<p>Eine der Stärken von Autodesk 3ds Max ist seine nahtlose Integration in andere Anwendungen und Software-Ökosysteme. Die Software ermöglicht den Import und Export von Dateiformaten wie OBJ, FBX und Alembic, wodurch die Zusammenarbeit zwischen Designern, Künstlern und Entwicklern aus verschiedenen Bereichen sehr leicht zu bewerkstelligen ist. Darüber hinaus kann man es problemlos mit anderen Autodesk-Produkten wie <a href="https://ceosbay.com/2023/02/24/erklaerung-autodesk-maya/" target="_blank" rel="noreferrer noopener">Maya</a>, AutoCAD und Revit verbinden, um einen reibungslosen Workflow über verschiedene Projekte hinweg zu gewährleisten.</p>



<h3 class="wp-block-heading">Branchenweite Akzeptanz von 3ds Max</h3>



<p>Autodesk 3ds Max ist in einer Vielzahl von Branchen weit verbreitet und anerkannt, darunter Architektur, Film, Videospiele, Fernsehen und mehr. Dank der vielseitigen Funktionen und benutzerfreundlichen Oberfläche haben viele Branchenführer das Programm als Standardwerkzeug für die 3D-Modellierung und Animation gewählt. Als Ergebnis eröffnen sich mit der Beherrschung des Programms vielfältige berufliche Möglichkeiten in verschiedenen kreativen Bereichen und ich war in allen tätig, die ich soeben erwähnt habe 😀</p>



<h3 class="wp-block-heading">Fazit</h3>



<p>Autodesk 3ds Max ist ein mächtiges und vielseitiges Programm, das sich ideal für 3D-Modellierung, Animation und Rendering eignet. Durch umfangreiche Funktionen, einer benutzerfreundlichen Oberfläche und branchenweite Akzeptanz ist es ein unverzichtbares Werkzeug für Künstler und Designer, die auf der Suche nach einem Programm sind, das ihre Kreativität fördert und unterstützt. Unabhängig vom Fachgebiet oder der persönlichen Erfahrungsstufe bietet 3ds Max die Möglichkeit, atemberaubende 3D-Visualisierungen und Animationen zu erstellen und bei der Verwirklichung kreativer Visionen zu helfen. Viele mögen behaupten, dass das Programm mit Altlasten zu kämpfen hat. Doch dies kann ich so nicht bestätigen. Ich arbeite nach wie vor in meiner Freizeit als auch im professionellen Umfeld sehr gerne damit, wenn es sich mal wieder anbietet. Ansonsten kommen natürlich auch <a href="https://ceosbay.com/2023/02/24/erklaerung-autodesk-maya/" target="_blank" rel="noreferrer noopener">Maya</a>, <a href="https://ceosbay.com/2023/02/20/blender-kreativitaet-in-3d-grenzenlos-und-kostenlos/" target="_blank" rel="noreferrer noopener">Blender</a>, sowie viele andere Anwendungen zum Einsatz. Je nachdem, was man benötigt.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/02/21/autodesk-3ds-max-kreativitaet-entfesseln/">Autodesk 3ds Max &#8211; Kreativität entfesseln</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/02/21/autodesk-3ds-max-kreativitaet-entfesseln/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1417</post-id>	</item>
	</channel>
</rss>
