Individuelle Softwareentwicklung
Die Digitalisierung stellt Unternehmen permanent vor neue Herausforderungen. Neben den Einsparungen durch elektronische Arbeitsabläufe rücken immer mehr digitale Geschäftsmodelle und ein Vertrieb über Internet in den Focus. Dazu kommen neue Kommunikationswege mit Kunden, Lieferanten und innovative Arbeitsformen, wie z.B. Heimarbeitsplätze mit ihren Ansprüchen an sichere Netzwerkverbindungen und Datensicherheit. Die Herausforderung ist: Alles muss immer verfügbar sein und Reaktionen sollen möglichst sofort erfolgen.
Viele Funktionen können über Standardsoftwareprodukte realisiert werden. Dazu gehören zum Beispiel E-Mails, Dateiverwaltung und Telefonie. Branchenspezifische Software liefert Softwarelösungen, die auf speziellere Anforderungen einzelner Unternehmen zugeschnitten sind. Dazu gehören Finanzbuchhaltungen, Kalkulationssysteme und Warenwirtschaften.
Unsere Angebote:
- Individuelle Software für Ihre Geschäftsprozesse und Anforderungen
- Agiles Projektmanagement mit Scrum, Kaban, Devops, Git & Workshops
- Frontends mit .NET, C#, LINQ, async, XAML, WPF, UWP, Xamarin,
Entity Framework, Microsoft Access, VBA, Visual Basic, C++ & COM - Datenbanken mit Microsoft SQL Server, T-SQL, Microsoft Access,
MySQL, PostgreSQL, NoSQL, MongoDB, Azure, Redis & Cosmos DB - Web Full-Stack Entwicklung mit ASP.NET, ASP.NET Core, MVC, HTML,
CSS, JavaScript, REST, Json, XML, Angular, React & Bootstrap - Cloud mit Azure, Docker, Kubernetes, IoT, Azure Cognitive Services,
Azure Machine Learning, Azure Table Storage & Cosmos DB
Sobald diese IT-Lösungen an ihre Grenzen stoßen, schlägt die Stunde der individuellen Software. Mit einer Individualsoftware passen Sie Anwendungen an Ihre individuellen Geschäftsprozesse und Vertriebswege punktgenau an. Neben effizienten Arbeitsabläufen reduzieren Sie so mögliche Fehlerquellen durch eine präzise Benutzerführung und Eingabeüberprüfung. Der enge Kontakt zu uns als Programmierer erlaubt die flexible Weiterentwicklung einer Softwarelösung, um auf neue komplexe Herausforderungen schnell und innovativ zu reagieren.
Damit der Aufwand für individuelle Entwicklungen möglichst gering ist, verwenden wir Standardkomponenten für die Infrastruktur von individuellen Projekten, wie z.B. den Microsoft SQL Server, .NET als Benutzeroberfläche und als Webserver den Internet Information Server von Microsoft. Mit dieser Vorgehensweise kombinieren wir das Budget einer branchenspezifischen Software mit der Leistungsfähigkeit durch eine maßgeschneiderte Programmierung.
Unsere Kompetenz liegt in der Entwicklung von individuellen Unternehmensanwendungen, die den Kern Ihres Geschäftes bilden. Unsere Kunden kommen vorwiegend aus dem Mittelstand. Als Kölner Softwareentwickler liefern wir Ihnen selbstverständlich auch gerne eine IT-Beratung zum Einsatz individueller Softwarelösungen.
Agile Softwareentwicklung
Moderne IT-Projekte sind notorisch knapp an der Ressource Zeit. Um diese möglichst effektiv zu nutzen, setzen wir schon seit vielen Jahren auf agile Softwareentwicklung und Scrum. Mit dieser bewährten Methode stehen wir als Entwickler in engem Kontakt mit Ihnen als Auftraggeber. Die Implementierung erfolgt in kleinen Schritten und kann flexibel an Anforderungen während der Entwicklung der individuellen Software angepasst werden.
Neben dem Consulting sind Workshops ein zentraler Bestandteil der agilen Softwareentwicklung. Auf diesen wird Ihnen und Ihren Mitarbeitern der aktuelle Softwarestand demonstriert. Gemeinsam werden die nächsten Schritte geplant und der weitere Zeitplan abgestimmt. Anforderungen können hier noch angepasst werden, wenn sich dadurch Vorteile bei der Umsetzung des Projektes ergeben.
Softwareentwicklung mit .NET und C#
Als Microsoft Partner sind wir Spezialisten für die Softwareentwicklung mit C# und der .NET Plattform. Unser Schwerpunkt ist die Entwicklung von leistungsfähigen, geschäftskritischen Programmen für eine Windows Infrastruktur. Die Anwendungsentwicklung mit C# und .NET wird durch Microsoft sowohl direkt wie auch durch leistungsfähige Komponenten wie Betriebssysteme, Cloud und SQL Server unterstützt.
Die weite Verbreitung von Microsoft Softwarelösungen sorgt dafür, dass IT-Systeme schnell aufgebaut werden können. Darüber hinaus finden sich viele Dienstleister rund um die Microsoft Plattform und durch den kommerziellen Support werden Probleme schnell und effizient gelöst.
Als Entwicklungssystem ist C#1 ein echter Allrounder mit einer leistungsfähigen Entwicklungsumgebung. Die Grundlage bildet ein Java ähnlicher objektorientierter Kern, der mittlerweile um funktionale Elemente erweitert wurde. Darüber hinaus liefert C# mit LINQ2 eine SQL vergleichbare Syntax zur Bearbeitung großer Datenmengen. C# erreicht eine hohe Performance durch konsequentes asynchrones Programmieren. Die Komplexität und Fehleranfälligkeit von Programmen wird durch das automatische Speichermanagement im Vergleich zu C++ erheblich reduziert.
Die Plattformabhängigkeit der .NET Technologien ist mittlerweile nicht mehr auf Windows als Betriebssystem beschränkt und .NET Apps können auf Linux, MacOS, Android und iOS ausgeführt werden. Für webbasierte ASP.NET Core Anwendungen ist dies bereits komplett umgesetzt. Die Verwendung von .NET Benutzeroberflächen ist jedoch noch teilweise eingeschränkt. Im Vergleich zu C# sind die Möglichkeiten von Visual Basic for Applications (VBA) deutlich reduziert. Im Vergleich zu C# sind die Möglichkeiten von Visual Basic for Applications (VBA) deutlich reduziert. Allerdings bringt VBA mit Microsoft Access oder auch eingeschränkt mit Microsoft Excel und Microsoft Word bereits sehr leistungsfähige Komponenten mit, die in einem Projekt genutzt werden können. Mit VBA lassen sich unkompliziert Datenbankanwendungen auf der Grundlage von Microsoft Access programmieren, da Access bereits alle Komponenten wie Tabellen, Formulare für die Dateneingabe, SQL für Abfragen und Berichte für die Ausgabe von Daten mitbringt. Darüber hinaus kann VBA durch individuelle COM-Komponenten erweitert werden, wenn die Leistung oder Darstellungskapazität nicht ausreicht. Wir entwickeln und betreuen seit 1996 VBA und Visual Basic Individualsoftware und haben hier eine langjährige Kompetenz aufgebaut und ergänzende Komponenten entwickelt.
Windows Presentation Foundation
Die klassischen Benutzeroberflächen für .NET Programme waren lange Zeit die aus Visual Basic Tagen bekannten Windows Forms Formulare. Diese wurden mit einem Designer zusammengebaut und die dahinter liegende Programmierung durch Steuerelementereignisse mit der Benutzeroberfläche verdrahtet.
Im Gegensatz zu dieser Technologie hat die Windows Presentation Foundation3 (WPF) von Microsoft ihre Wurzeln im World Wide Web mit HTML als Auszeichnungssprache. So werden Benutzeroberflächen für die WPF mit XML in XAML-Dateien definiert. Ein Kernelement der WPF ist die Datenbindung zwischen Steuerelementen und den Eigenschaften von Objekten. Dadurch arbeiten XAML Oberflächen perfekt mit objektorientierten C# Lösungen zusammen.
Das ursprüngliche Ziel des Graphik-Frameworks war die Entwicklung von Windows Desktop Programmen. Mit der Universal Windows Plattform ist ein modernes, Touch-orientiertes Framework hinzugekommen. Mittels Xamarin lassen sich auch XAML-Benutzeroberflächen für Android, iOS und MacOS definieren. Leider verfolgen alle drei Technologien leicht unterschiedliche Ziele und die XAML-Dialekte sind nicht komplett austauschbar. Wir setzen seit 2011 Windows Presentation Foundation Benutzeroberflächen intensiv ein und sind auf die verschiedenen XAML-Dialekte und deren Verwendung spezialisiert.
Entity Framework
Das Entity Framework4 ist ein Framework für objektrelationale Abbildung (ORM) von .NET Klassen auf SQL Server Tabellen. Es verbindet Objekte einer C# .NET Programmierung mit den Datensätzen einer Datenbank und übernimmt die Abfrage, Änderung und das Löschen von Datensätzen. Damit übernimmt das Entity Framework eine ähnliche Funktion für die Datenbankanbindung wie die Windows Presentation Foundation für die Schnittstelle Richtung Benutzer.
Wir programmieren Funktionen sowohl als SQL in der Datenbank als auch LINQ Abfragen im Entity Framework. Dadurch sind wir nicht ausschließlich auf die automatische Übersetzung von objektorientiertem C#-Code in SQL durch das Entity Framework beschränkt und können im Bedarfsfall hochoptimierten SQL-Code entwickeln. Der Quellcode des Enity Frameworks ist mittlerweile als Open Source auf Github verfügbar. Das Entity Framework wird jedoch weiterhin von Microsoft betreut und weiterentwickelt. Dadurch sind eine intensive Unterstützung, hohe Stabilität und langfristige Komptabilität gewährleistet.
Mobile Apps mit Xamarin
Die Firma Xamarin wurde 2016 von Microsoft übernommen und steht für eine Plattform zur App-Entwicklung für mobile Geräte. Der innovative Ansatz basiert auf XAML als Auszeichnungssprache für Benutzeroberflächen. XAML-Definitionen werden dann von unterschiedlichen Renderen in native Steuerelemente der einzelnen mobilen Plattformen, wie Android und iOS, umgesetzt. Dadurch erhalten die Apps eine plattformspezifische Benutzeroberfläche bei weitestgehender Wiederverwendung des Source Codes. Dieses Render-Konzept wurde mittlerweile auf MacOS und die Universal Windows Plattform (UWP) ausgedehnt.
Damit bietet sich die Xamarin Plattform als effizientes Frontend für Apps auf mobilen Endgeräten an. Allerdings werden Unternehmensanwendungen derzeit auf mobilen Geräten, wie Android oder iOS Smartphones nur recht stiefmütterlich im Google und Apple App Store unterstützt.
Daher liefern meist Webanwendungen mit responsiven Webseiten5 eine ähnliche Funktionalität bei deutlich geringeren Kosten, solange keine hardwarenahen Funktionen, wie Kamera, Mikrofon, GPS oder Bluetooth benötigt werden.
Datenbanken für individuelle Software
Relationale Datenbanken sind immer noch das am meisten eingesetzte Backend für geschäftskritische Unternehmensanwendungen. Die Bandbreite reicht von Open Source Lösungen, wie MySQL und PostgreSQL über die gesamte Microsoft SQL Server Produktpalette und Microsoft Access bis zu Oracle Datenbanken. Strukturelles Merkmal relationaler Datenbank sind Tabellen, die miteinander durch Relationen in Beziehung stehen. Ihre Leistungsfähigkeit beruht auf der Indizierung von Tabellen und der performanten Verarbeitung großer Datenmengen in Mehrbenutzerumgebungen. Die klassische Programmiersprache für relationale Datenbanken ist SQL und der T-SQL Dialekt für den Microsoft SQL Server.
Mittlerweile haben sich parallel NoSQL Datenbanken wie Redis, CouchDB und MongoDB fest als Backend etabliert. Diese Schlüssel/Wert bzw. dokumentenzentrierten Datenbanken haben meist speziellere Einsatzzwecke. Im Bereich der NoSQL Datenbanken gibt es eine rasante technologische Entwicklung, die auch auf die alteingesessenen relationalen Datenbanken abfärbt. Dazu gehört z.B. die Verarbeitung von XML- und JSON-Dokumenten oder In-Memory Spalten und Tabellen.
Unser Schwerpunkt liegt auf Microsoft Datenbanksystemen und wir sind Spezialisten mit einer langjährigen Erfahrung in der Programmierung von T-SQL für den Microsoft SQL Server und Microsoft Access. Mittlerweile setzen wir auch NoSQL Systeme gerade im Cloud Bereich ein. Dazu gehört z.B. der Azure Table Storage als eine sehr kostengünstige Speicherlösung oder die Azure Cosmos DB mit ihren verschiedenen Zugriffsmodellen.
Webanwendungen
Unsere Weblösungen basieren auf individuellen Geschäftsanwendungen. Sie sind das Frontend für Ihre externe Mitarbeiter und Ihre Kunden. In den meisten Fällen bringen unsere Weblösungen die Arbeit zur Quelle und stellen Funktionen für Mitarbeiter oder Kunden als „Selfservice“ zur Verfügung.
Damit Webanwendung und geschäftskritische Unternehmensanwendungen eng zusammenarbeiten, verwenden wir die Microsoft ASP.NET und ASP.NET Core Plattformen für die Entwicklung von Weboberflächen. Diese können in einer Model-View-Controller6 (MVC) Anwendung mit Benutzeroberfläche oder als REST Webservice Architektur für den automatisierten Zugriff implementiert werden.
Geschäftslogik kann durch den Einsatz von C# und dem Entity Framework in der Webentwicklung wiederverwendet werden. Mit ASP.NET Core liefert Microsoft eine hoch performante Plattform für native Programme, die interpretierte Frameworks wie z.B. PHP um Längen hinter sich lässt. Mit React und Angular lassen sich so genannte Single-Page Anwendungen erstellen, die ihrer Daten über JavaScript aus Webdiensten nachladen.
Ein wesentlicher Pluspunkt von ASP.NET ist, dass die Plattform jahrelang unterstützt wird. Während sich die meisten Web-Technologien als sehr schnelllebig erweisen und sich Web Frameworks und Tools im Halbjahrestakt nacheinander ablösen, werden ASP.NET Lösungen auch nach Jahren immer noch von Microsoft mit Sicherheitspatches versorgt und müssen nicht permanent auf neue Plattformen migriert werden. Für Ihre Webanwendungen begleiten wir Sie mit einem Full-Service, angefangen mit der Konzeption über die Programmierung und den laufenden Support bis zum Betrieb der Individualsoftware auf einem Webserver oder in der Cloud.
1. Weitere Informationen zu C# finden Sie unter https://de.wikipedia.org/wiki/C-Sharp.↩
2. Language Integrated Query, siehe auch https://en.wikipedia.org/wiki/Language_Integrated_Query.↩
3. Mehr zur Windows Presentation Foundation unter https://de.wikipedia.org/wiki/Windows_Presentation_Foundation.↩
4. Siehe auch https://de.wikipedia.org/wiki/Entity_Framework.↩
5. Responsive Web Design, siehe auch https://en.wikipedia.org/wiki/Responsive_web_design.↩
6. Model View Controller, englisch für Modell-Präsentation-Steuerung, siehe auch https://de.wikipedia.org/wiki/Model_View_Controller.↩