Datum
27.11.2018
Dieser Beitrag wurde verfasst von:
In diesem Blogbeitrag möchte ich einige Tipps und Tricks rund um Entity Framework mit euch teilen. In allen Beispielen gehen wir vom Code-First Ansatz aus.
1. 1-zu-1 Beziehung
Es gibt keine 1-zu-1 Beziehung in Datenbanken. Es gibt lediglich eine 1-zu-0/1 Beziehung. In Entity Framework wird diese Beziehung am besten mit der Fluent-API beschrieben.
public class Employee
{
public string Name { get; set; }
public virtual Address Address { get; set; }
}
public class Address
{
public string Street { get; set; }
public string PostCode { get; set; }
public string City { get; set; }
public virtual Employee Employee { get; set; }
}
Hier hat jede Datenbank ein Henne-Ei-Problem. Die Objekte können nicht simultan generiert werden und sofort auf das andere Objekt referenzieren.
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Address>()
.HasOptional(e => e.Address)
.WithRequired(a => a.Employee);
}
In diesem Beispiel kann ein Employee eine Address haben, aber ein Address kann nicht ohne Employee existieren.
Anmerkung: Mit Entity Framework kann eine (echte) 1-zu-1 Beziehung vorgetäuscht werden. Für die Datenbank sind diese Felder jedoch keine Pflichtfelder und somit keine echte 1-zu-1 Beziehung.
2. Mehr als eine 1-zu-n Beziehung zwischen zwei Entitäten
In unserem Beispiel gibt es folgende (vereinfachte) Klassen:
public class User
{
public int Id { get; set; }
public string UserName { get; set; }
}
public class Task
{
public string Title { get; set; }
public string Body { get; set; }
public virtual User CreatedBy { get; set; }
}
Daraus resultiert folgende Datenbank:
![TuTEntityFramework 1 Screenshot Datenbank mit einer 1-zu-n Beziehung](/NOV/Images/Blog/Archiv_Techblog/1206/image-thumb__1206__TextCombo-image-size-1-1/TuTEntityFramework1.png)
Jetzt möchten wir die Klasse Task noch um einen User erweitern, der diese Aufgabe zugewiesen bekommt. Somit hätten wir zwei 1-zu-n Beziehungen zwischen Task und User. Mit Data Annotations lässt sich diese Beziehung einfach realisieren:
public class User
{
public int Id { get; set; }
public string UserName { get; set; }
[InverseProperty(“AssignedTo”)]
public virtual ICollection<Task> Tasks { get; set; }
}
public class Task
{
public int Id { get; set; }
public string Title { get; set; }
public string Body { get; set; }
public virtual User CreatedBy { get; set; }
public virtual User AssignedTo { get; set; }
}
Daraus resultiert dann folgende Datenbank:
![TuTEntityFramework 2 Screenshot Datenbank mit zwei 1-zu-n Beziehung](/NOV/Images/Blog/Archiv_Techblog/1209/image-thumb__1209__TextCombo-image-size-1-1/TuTEntityFramework2.png)
3. Mit Entity Framework habe ich gar keine Kontrolle über meine Tabellen
Das ist ein hartnäckiges Vorurteil gegenüber Entity Framework, welches aber nicht ganz wahr ist. Wenn eine Zwischentabelle (für eine n-zu-m Beziehung) in Entity Framework erstellt wird, wird die Zwischentabelle mit dem Namen der verbundenen Entitäten erstellt.
public class Employee
{
public string Firstname { get; set; }
public string Lastname { get; set; }
public virtual ICollection<Skill> Skills { get; set; }
}
public class Skill
{
public string Name { get; set; }
public int Level { get; set; }
public virtual ICollection<Employee> Employees { get; set; }
}
Daraus kann nun eine EmployeeSkills oder eine SkillEmployees Tabelle entstehen. Die Erstellung dieser Zwischentabelle kann mit der Fluent-API gesteuert werden.
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Employee>()
.HasMany<Skill>(e => e.Skills)
.WithMany(s => s.Employees)
.Map(es =>
{
es.MapLeftKey(“EmployeeRefId”);
es.MapRightKey(“SkillRefId”);
es.ToTable(“EmployeeSkillList”);
});
}
Die Methoden HasMany() und WithMany() werden zur Konfiguration von n-zu-m Beziehungen verwendet. Danach wird mit der Map() Methode die Tabelle mit dem gewünschten Namen definiert.
Wichtig: Die Entität, aus welcher die HasMany() Methode aufgerufen wird (in unserem Beispiel die Employee Entität), wird mit MapLeftKey() in die „linke Spalte“ geschrieben.
4. SQL + Entity Framework = <3
Eine Kombination aus SQL und Entity Framework ist immer möglich. Die Performance bei komplexen Abfragen mit vielen ungewollten JOINS kann Entity Framework schnell in die Knie zwingen. Eine Kombination aus Entity Framework und einer SQL View kann die Performance enorm anheben. Im nächsten Beispiel haben wir eine sehr simple View, die uns die Namen der Mitarbeiter, deren Skills und deren Skillstufe anzeigt:
CREATE VIEW SkillOverview AS
SELECT E.Firstname as Firstname, E.Lastname as Name, S.Level as Level, S.Name as Skill FROM Employees E
JOIN EmployeeSkillList ESL ON ESL.EmployeeRefId = E.Id
JOIN Skills S ON S.Id = ESL.SkillRefId
Als nächstes erstellen wir ein Datenmodell:
public class SkillOverviewModel
{
public string Firstname { get; set; }
public string Name { get; set; }
public int Level { get; set; }
public string Skill { get; set; }
}
Nun erstellen wir eine Methode, die uns das Datenmodell anhand der View befüllt:
public ICollection<SkillOverviewModel> GetSkillOverview()
{
string query = “SELECT * FROM [dbo].[SkillOverview]”;
List<SkillOverviewModel> result = this.context.Database.SqlQuery<SkillOverviewModel>
(query).ToList();
return result;
}
Mit demselben Prinzip können auch SQL-Functions und Stored Procedures angesprochen werden. Die Parameter werden als SqlParameter Array übergeben. Wenn wir also nur die Mitarbeiter mit einem bestimmten Skill-Level sehen wollen entwickeln wir eine neue Methode:
public ICollection<SkillOverviewModel> GetSkillOverview(int skillLevel)
{
string query = “SELECT * FROM [dbo].[SkillOverview] WHERE [Level] = @skillLevel”;
List<object> parameters = new List<object>();
SqlParameter skillLevelParameter = new SqlParameter(“@skillLevel”, skillLevel);
parameters.Add(skillLevelParameter);
List<SkillOverviewModel> result = this.context.Database.SqlQuery<SkillOverviewModel>
(query, parameters.ToArray()).ToList();
return result;
}
5. Darf es noch ein wenig mehr sein?
Durch den Code First-Ansatz spiegeln unsere Entitäts-Objekte eine ganze Zeile einer Tabelle ab. In einigen Anwendungen können Entitäten viele Eigenschaften haben, die gar nicht immer benötigt werden.
public class Employee
{
public int Id { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
public virtual ICollection<Skill> Skills { get; set; }
}
class Program
{
static void Main(string[] args)
{
AppContext context = new AppContext();
List<Employee> employees = context.Employee.ToList();
Console.ReadKey();
}
}
Diese Abfrage liefert uns nun alle Einträge in der Employee Tabelle. Dadurch wird Id, Firstname und Lastname von jeder Entität geladen. Aber was ist mit den Skills eines Mitarbeiters? Lazy Loading ist standardmäßig aktiviert bei Entity Framework. Dadurch werden die Skills erst dann geladen, wenn diese gebraucht werden.
static void Main(string[] args)
{
AppContext context = new AppContext();
List<Employee> employees = context.Employee.ToList();
foreach(Employee employee in employees)
{
Console.WriteLine($”{employee.Firstname} {employee.Lastname}”);
foreach(Skill employeeSkill in employee.Skills)
{
Console.WriteLine($”{employeeSkill.Name}: {employeeSkill.Level}”);
}
}
Console.ReadKey();
}
Alle Employees sind bereits geladen, aber deren Skills leider nicht. Dadurch wird in der inneren foreach-Anweisung jedes Mal ein Request zur Datenbank geschickt und lädt den Skill nach. Besser wäre es, wenn die Skills direkt mit den Employees geladen werden. Mit der Include() Methode lässt sich das einfach realisieren:
List<Employee> employees = context.Employee.Include(e => e.Skills).ToList();
6. Das habe ich doch gar nicht gebraucht!
Wie wir sehen, verwenden wir nur FirstName und LastName von Employee sowie Name und Level von Skill. Mitgeladen wird aber auch jeweils die Id. Unser Beispiel ist etwas “klein”, aber stellen Sie sich vor, Sie haben zwei Entitäten mit verschiedenen Datentypen wie Datum, Integer, Float und davon auch noch viele. Diese werden nicht benötigt, aber auch geladen. In SQL würden wir auch nicht
SELECT * FROM [TABLE]
ausführen, um dann nur die Daten aus der Menge zu nehmen, die wir brauchen. Wieso sollten wir das dann bei Entity Framework tun?
Unser Ergebnis von der Query kommt wieder in ein Model:
public class FullNameModel
{
public string FullName { get; }
public FullNameModel(Employee employee)
{
this.FullName = $”{employee.Firstname} {employee.Lastname}”;
}
}
public ICollection<FullNameModel> GetAllFullNames()
{
List<FullNameModel> result = this.context.Employee
.Select(x => new FullNameModel
{
FullName = $”{x.Firstname} {x.Lastname}”
}).ToList();
return result; }
Übersetzt lautet dieser Code: SELECT Firstname, Lastname FROM [Employees] also genau das, was wir brauchen. Ein Entity Framework Select-Statement mit einem angepasstem Data Transfer Object(DTO) kann genauso schnell sein wie ein direktes SQL Statement.
Wichtig: Im Select-Statement kann nur ein parameterloser Konstruktor verwendet werden.
Fazit
Entity Framework oder SQL? Wieso nicht beides? Entity Framework kann die Arbeit erleichtern, aber nicht alles ist standardmäßig genau so eingestellt, wie der Entwickler es gerade braucht. Durch eine gute Kombination aus Entity Framework und SQL können Schwächen kompensiert und Entwicklungszeit verkürzt werden. Dank Codefirst wird die Datenbankgenerierung in der Codeverwaltung gespeichert und ein Wechsel der Datenbankengine ist einfacher zu realisieren. Der Einsatz von Entity Framework ersetzt nicht das Grundwissen von relationaler Datenmodellierung, sondern sollte diese ergänzen.
Erfahren Sie mehr
![Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up](/NOV/Images/Blog/Fallback_Titelbilder/1292/image-thumb__1292__MediumTileGrid-item-main-s1-3/man-using-mobile-phone_Adobe-453628768.jpg)
GraphQL – Die Alternative zu REST
![Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up](/NOV/Images/Blog/Fallback_Titelbilder/1292/image-thumb__1292__MediumTileGrid-item-main-s1-3/man-using-mobile-phone_Adobe-453628768.jpg)
Handlebars.js – Semantische Template Library
![novaCapta: Ihr Partner für die digitale Transformation mit Microsoft Technologien](/NOV/Images/Shooting%20B%C3%BCro%20Hannover%20April%202024/31430/image-thumb__31430__MediumTileGrid-item-main-s1-3/DSC00251-zuschnitt.jpg)
Spaltenformatierung in SharePoint: Column formatting vs. JS
![Abheben in die Cloud Close up of female hands while typing on laptop](/NOV/Images/Blog/Fallback_Titelbilder/392/image-thumb__392__MediumTileGrid-item-main-s1-3/FliegerCloud.jpg)
SharePoint Framework Client-Side Webparts mit React
![novaCapta: Ihr Partner für die digitale Transformation mit Microsoft Technologien](/NOV/Images/Shooting%20B%C3%BCro%20Hannover%20April%202024/31430/image-thumb__31430__MediumTileGrid-item-main-s1-3/DSC00251-zuschnitt.jpg)
Testen von Angular Anwendungen mit Cypress
![Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up](/NOV/Images/Blog/Fallback_Titelbilder/1292/image-thumb__1292__MediumTileGrid-item-main-s1-3/man-using-mobile-phone_Adobe-453628768.jpg)
Struktureller Aufbau eines Angular Modules
![Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up](/NOV/Images/Blog/Fallback_Titelbilder/1292/image-thumb__1292__MediumTileGrid-item-main-s1-3/man-using-mobile-phone_Adobe-453628768.jpg)
Ich bin im Flow! – Eine Übersicht zu Microsoft Flow
![Zwei Frauen schauen gemeinsam auf einen Bildschirm](/NOV/Images/Blog/Fallback_Titelbilder/1290/image-thumb__1290__MediumTileGrid-item-main-s1-3/TeamworkB%C3%BCro.jpg)
Xamarin – plattformübergreifende App-Entwicklung
![Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up](/NOV/Images/Blog/Fallback_Titelbilder/1292/image-thumb__1292__MediumTileGrid-item-main-s1-3/man-using-mobile-phone_Adobe-453628768.jpg)
Teams Extensions – Erstellen von Erweiterungen für Teams
![novaCapta: Ihr Partner für die digitale Transformation mit Microsoft Technologien](/NOV/Images/Shooting%20B%C3%BCro%20Hannover%20April%202024/31430/image-thumb__31430__MediumTileGrid-item-main-s1-3/DSC00251-zuschnitt.jpg)
Nutzung der SharePoint REST API mit Microsoft Flow
![novaCapta Cloud Blue sky and clouds](/NOV/Images/Headerimages/4013/image-thumb__4013__MediumTileGrid-item-main-s1-3/nCCloud.jpg)
Wir laden ein zum Azure Innovation Day
![News der novaCapta](/NOV/Images/Blog/Fallback_Titelbilder/1354/image-thumb__1354__MediumTileGrid-item-main-s1-3/Two-business-men-talking-to-each-other.jpg)
Der wiederholte Bereich in Nintex Forms
![News der novaCapta](/NOV/Images/Blog/Fallback_Titelbilder/1354/image-thumb__1354__MediumTileGrid-item-main-s1-3/Two-business-men-talking-to-each-other.jpg)
Gefilterte Ansicht über Unterschiede in mehreren Spalten
![novaCapta: Ihr Partner für die digitale Transformation mit Microsoft Technologien](/NOV/Images/Shooting%20B%C3%BCro%20Hannover%20April%202024/31430/image-thumb__31430__MediumTileGrid-item-main-s1-3/DSC00251-zuschnitt.jpg)
CQRS in ASP.Net MVC mit Entity Framework
![Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up](/NOV/Images/Blog/Fallback_Titelbilder/1292/image-thumb__1292__MediumTileGrid-item-main-s1-3/man-using-mobile-phone_Adobe-453628768.jpg)
PDF-Konverter in Power Automate
![Blue sky and clouds](/NOV/Images/Blog/Fallback_Titelbilder/1288/image-thumb__1288__MediumTileGrid-item-main-s1-3/Frau%20in%20der%20Cloud.jpg)
Vorgesetzte in Nintex per LDAP-Abfrage ermitteln
![Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up](/NOV/Images/Blog/Fallback_Titelbilder/1292/image-thumb__1292__MediumTileGrid-item-main-s1-3/man-using-mobile-phone_Adobe-453628768.jpg)
Dateizugriffsrechte verwalten mit Microsoft RMS – Teil 2
![novaCapta: Ihr Partner für die digitale Transformation mit Microsoft Technologien](/NOV/Images/Shooting%20B%C3%BCro%20Hannover%20April%202024/31430/image-thumb__31430__MediumTileGrid-item-main-s1-3/DSC00251-zuschnitt.jpg)
Warum ist Inline-CSS und JavaScript-Code so schlecht?
![Zwei Frauen schauen gemeinsam auf einen Bildschirm](/NOV/Images/Blog/Fallback_Titelbilder/1290/image-thumb__1290__MediumTileGrid-item-main-s1-3/TeamworkB%C3%BCro.jpg)
Fünf Tipps für eine verbesserte Software-Adoption
![novaCapta: Ihr Partner für die digitale Transformation mit Microsoft Technologien](/NOV/Images/Shooting%20B%C3%BCro%20Hannover%20April%202024/31430/image-thumb__31430__MediumTileGrid-item-main-s1-3/DSC00251-zuschnitt.jpg)
Drei Tipps für mehr SharePoint-Begeisterung
![Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up](/NOV/Images/Blog/Fallback_Titelbilder/1292/image-thumb__1292__MediumTileGrid-item-main-s1-3/man-using-mobile-phone_Adobe-453628768.jpg)
Multi Factor Authentication (Azure und SharePoint)
![novaCapta: Ihr Partner für die digitale Transformation mit Microsoft Technologien](/NOV/Images/Shooting%20B%C3%BCro%20Hannover%20April%202024/31430/image-thumb__31430__MediumTileGrid-item-main-s1-3/DSC00251-zuschnitt.jpg)
Fünf Tipps für mehr SharePoint-Adoption in Unternehmen
![Business Productivity Framework Zwei Männer am Smartphone](/NOV/Images/Headerimages/14616/image-thumb__14616__MediumTileGrid-item-main-s1-3/Business%20Productivity%20Framework_header.jpg)
Business Productivity Framework
![novaCapta: Ihr Partner für die digitale Transformation mit Microsoft Technologien](/NOV/Images/Shooting%20B%C3%BCro%20Hannover%20April%202024/31430/image-thumb__31430__MediumTileGrid-item-main-s1-3/DSC00251-zuschnitt.jpg)
Braucht man wirklich jQuery?
![Schreibtisch](/NOV/Images/Blog/Fallback_Titelbilder/1289/image-thumb__1289__MediumTileGrid-item-main-s1-3/Schreibtisch.jpg)
Anhänge nach Datentyp in PowerApps einschränken
![novaCapta: Ihr Partner für die digitale Transformation mit Microsoft Technologien](/NOV/Images/Shooting%20B%C3%BCro%20Hannover%20April%202024/31430/image-thumb__31430__MediumTileGrid-item-main-s1-3/DSC00251-zuschnitt.jpg)
Migration IBM Lotus Notes zu Microsoft SharePoint
![Blue sky and clouds](/NOV/Images/Blog/Fallback_Titelbilder/1355/image-thumb__1355__MediumTileGrid-item-main-s1-3/BlauerHimmel.jpg)
Angular Route-Guards
![Blue sky and clouds](/NOV/Images/Blog/Fallback_Titelbilder/1288/image-thumb__1288__MediumTileGrid-item-main-s1-3/Frau%20in%20der%20Cloud.jpg)
Grundlagen der Datenmodellierung
![Qualitätsmanagement Close up shot of female hands typing on laptop](/NOV/Images/Blog/Fallback_Titelbilder/1353/image-thumb__1353__MediumTileGrid-item-main-s1-3/female-hands-typing-on-laptop.jpg)
SharePoint vs. TYPO3 – Sechs Gründe für SharePoint-Intranet
![Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up](/NOV/Images/Blog/Fallback_Titelbilder/1292/image-thumb__1292__MediumTileGrid-item-main-s1-3/man-using-mobile-phone_Adobe-453628768.jpg)
Dateizugriffsrechte verwalten mit Microsoft RMS – Teil 3
![novaWorxx Provisioning Drei Personen in einer Besprechung an einem Tisch besprechen den Zeitplan auf ihrem Microsoft-Laptop](/NOV/Images/Headerimages/15231/image-thumb__15231__MediumTileGrid-item-main-s1-3/nwxProvisioning_header.jpg)
Die Bedeutung einer Governance
![Blue sky and clouds](/NOV/Images/Blog/Fallback_Titelbilder/1288/image-thumb__1288__MediumTileGrid-item-main-s1-3/Frau%20in%20der%20Cloud.jpg)
Farben zur Optimierung des SharePoint-Kalender
![Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up](/NOV/Images/Blog/Fallback_Titelbilder/1292/image-thumb__1292__MediumTileGrid-item-main-s1-3/man-using-mobile-phone_Adobe-453628768.jpg)
Produktiver lernen mit SharePoint
![Abheben in die Cloud Close up of female hands while typing on laptop](/NOV/Images/Blog/Fallback_Titelbilder/392/image-thumb__392__MediumTileGrid-item-main-s1-3/FliegerCloud.jpg)
Grundlagen der Gestaltung
![](/TTA/Blog/Web%20Development%20Blog/04_Deno/11071/image-thumb__11071__MediumTileGrid-item-main-s1-3/Header_Deno.jpg)
Deno – Das müsst ihr über die Laufzeitumgebung wissen
![Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up](/NOV/Images/Blog/Fallback_Titelbilder/1292/image-thumb__1292__MediumTileGrid-item-main-s1-3/man-using-mobile-phone_Adobe-453628768.jpg)
Was kann der neue Office 365 Planner – und was kann er nicht
![Zwei Frauen schauen gemeinsam auf einen Bildschirm](/NOV/Images/Blog/Fallback_Titelbilder/1290/image-thumb__1290__MediumTileGrid-item-main-s1-3/TeamworkB%C3%BCro.jpg)
Umfragen in Teams mit Microsoft Forms
![News der novaCapta](/NOV/Images/Blog/Fallback_Titelbilder/1354/image-thumb__1354__MediumTileGrid-item-main-s1-3/Two-business-men-talking-to-each-other.jpg)
Zentralisiertes Logging – Simpler Logging-Stack mit Graylog
![Abheben in die Cloud Close up of female hands while typing on laptop](/NOV/Images/Blog/Fallback_Titelbilder/392/image-thumb__392__MediumTileGrid-item-main-s1-3/FliegerCloud.jpg)
Qualitätsmanagement - Dokumentation verwalten mit SharePoint
![Blue sky and clouds](/NOV/Images/Blog/Fallback_Titelbilder/1355/image-thumb__1355__MediumTileGrid-item-main-s1-3/BlauerHimmel.jpg)
Hat Ihr Unternehmen einen Informations-Lebenszyklus?
![Team of programmers working in office](/NOV/Images/Blog/Headerbild/18304/image-thumb__18304__MediumTileGrid-item-main-s1-3/IT-Projekte%20und%20Change%20Management.png)
Was Sie beim nächsten IT-Projekt beachten sollten
![](/CPL/CPL-X/2024_Aktuelles/31914/image-thumb__31914__MediumTileGrid-item-main-s1-3/elderly-man-with-mustache-poses-sunglasses.jpg)
First Tuesday am 02.07.2024
![christmas woman](/CPL/CPL-X/Assessts/29959/image-thumb__29959__MediumTileGrid-item-main-s1-3/christmas_woman.png)
First Tuesday am 12.12.2023
![Abheben in die Cloud Close up of female hands while typing on laptop](/NOV/Images/Blog/Fallback_Titelbilder/392/image-thumb__392__MediumTileGrid-item-main-s1-3/FliegerCloud.jpg)
Was ist Application Lifecycle Management (ALM)?
![Zwei Frauen schauen gemeinsam auf einen Bildschirm](/NOV/Images/Blog/Fallback_Titelbilder/1290/image-thumb__1290__MediumTileGrid-item-main-s1-3/TeamworkB%C3%BCro.jpg)
Change Management in IT-Projekten
![Zwei Frauen schauen gemeinsam auf einen Bildschirm](/NOV/Images/Blog/Fallback_Titelbilder/1290/image-thumb__1290__MediumTileGrid-item-main-s1-3/TeamworkB%C3%BCro.jpg)
Corporate News – Das zentrale Medium interner Kommunikation
![Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up](/NOV/Images/Blog/Fallback_Titelbilder/1292/image-thumb__1292__MediumTileGrid-item-main-s1-3/man-using-mobile-phone_Adobe-453628768.jpg)
Dateizugriffsrechte verwalten mit Microsoft RMS – Teil 4
![novaCapta: Ihr Partner für die digitale Transformation mit Microsoft Technologien](/NOV/Images/Shooting%20B%C3%BCro%20Hannover%20April%202024/31430/image-thumb__31430__MediumTileGrid-item-main-s1-3/DSC00251-zuschnitt.jpg)
Angular 5 Custom Filter in Angular Material Data-Table
![novaCapta: Ihr Partner für die digitale Transformation mit Microsoft Technologien](/NOV/Images/Shooting%20B%C3%BCro%20Hannover%20April%202024/31430/image-thumb__31430__MediumTileGrid-item-main-s1-3/DSC00251-zuschnitt.jpg)
SharePoint und Informationsarchitektur – worauf kommt es an?
![Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up](/NOV/Images/Blog/Fallback_Titelbilder/1292/image-thumb__1292__MediumTileGrid-item-main-s1-3/man-using-mobile-phone_Adobe-453628768.jpg)
Dateizugriffsrechte verwalten mit Microsoft RMS – Teil 1
![Phishing, mobile phone hacker or cyber scam concept. Password and login pass code in smartphone. Online security threat and fraud. Female scammer with cellphone and laptop. Bank account security.](/NOV/Images/Blog/28758/image-thumb__28758__MediumTileGrid-item-main-s1-3/Blog_Header_Cyber%20Security.jpg)
Die Awareness kommt mit dem ersten Cyberangriff
![Eine Angestellte lädt auf ihrem Handy die Microsoft Teams App für digitale Zusammenarbeit herunter.](/NOV/Images/Headerimages/10034/image-thumb__10034__MediumTileGrid-item-main-s1-3/Teams.jpg)
Microsoft Teams: mehr als Videotelefonie und Chat
![Programmer Woman Coding On Computer](/NOV/Images/Blog/Headerbild/18306/image-thumb__18306__MediumTileGrid-item-main-s1-3/Ohne%20Programmierkenntnisse%20zum%20Entwickler%20werden%20-%20Power%20Platform.png)
Ohne Programmierkenntnisse zum Entwickler werden
![Interessiertes Publikum sinnbildlich für IBM Think 2019](/XIN/Events/20190212_IBM%20THINK%202019/10253/image-thumb__10253__MediumTileGrid-item-main-s1-3/Publikum-IBM-Think-Summit.jpg)
X-INTEGRATE auf der IBM THINK 2019
![Junge Dame mit Brillen umgeben von Wolken](/CPL/CPL-X/2024_Aktuelles/31259/image-thumb__31259__MediumTileGrid-item-main-s1-3/Variante%20Website_1200x800.jpg)
First Tuesday am 04.06.2024
![clever korean school girl](/CPL/CPL-X/Assessts/30042/image-thumb__30042__MediumTileGrid-item-main-s1-3/clever-korean-schoolgirl-has-serious-sullen-look-folds-lips-holds-pencil-notepad-head.jpg)
First Tuesday am 18.01.2024
![](/CPL/CPL-X/First%20Tuesday/2024-03-05/30741/image-thumb__30741__MediumTileGrid-item-main-s1-3/waist-up-shot-positive-carefree-woman-moves-with-rhythm-music-enjoys-favorite-melody-wears-stereo-headphones-ears-wears-round-eyeglasses-casual-turtleneck-isolated-green-wall.jpg)
First Tuesday am 05.03.2024
![](/CPL/CPL-X/First%20Tuesday/2024-04-16/31024/image-thumb__31024__MediumTileGrid-item-main-s1-3/vacation-sea-resort-concept-stupefied-lifeguard-with-lifebuoy-looks-surprisingly-into-distance_800x400.jpg)
First Tuesday am 16.04.2024
![Desktopvirtualisierung mit Azure oder Windows Eine Expertin erläutert Kollegen .NET Code in einer Software-Entwicklungsumgebung.](/NOV/Images/Headerimages/4025/image-thumb__4025__MediumTileGrid-item-main-s1-3/Entwicklung.jpg)
Applications & Integration
![Eine Angestellte lädt auf ihrem Handy die Microsoft Teams App für digitale Zusammenarbeit herunter.](/NOV/Images/Headerimages/10034/image-thumb__10034__MediumTileGrid-item-main-s1-3/Teams.jpg)
Microsoft Teams für digitale Zusammenarbeit
![DevOps Young beautiful woman working on laptop at home office, copy space, portrait.](/NOV/Images/Headerimages/15753/image-thumb__15753__MediumTileGrid-item-main-s1-3/DevOps_copy.png)
DevOps für Prozessoptimierung im Unternehmen | novaCapta
![Microsoft Teams as a Platform Happy lifestyle digital nomad young cheerful woman work outdoor with laptop computer - people and modern technology job and communication related - alternative office at the beach](/NOV/Images/Headerimages/28668/image-thumb__28668__MediumTileGrid-item-main-s1-3/Header_Teams-as-a-Platform.jpg)
Microsoft Teams as a Platform
![medicine, healthcare and people concept - female doctor with tablet pc computer talking to smiling woman patient at hospital](/NOV/Images/Headerimages/23018/image-thumb__23018__MediumTileGrid-item-main-s1-3/LP_Medizinische%20Software.jpg)
Apps als Medizinprodukt
![DevOps Young beautiful woman working on laptop at home office, copy space, portrait.](/NOV/Images/Headerimages/15753/image-thumb__15753__MediumTileGrid-item-main-s1-3/DevOps_copy.png)
novaCapta hat neue Gold-Kompetenz für DevOps
![Beladenes Containerschiff auf dem Meer](/NOV/Referenzen/dteq/16456/image-thumb__16456__MediumTileGrid-item-main-s1-3/AdobeStock_390654783_Headerbild_CS_dteq_web.jpg)
dteq: Projektmanagement wie es sein soll
![Für versicherungsmathematische Berechnungen, Projektionen, die Gewinnprüfung, stochastische Modellierung und das Asset-Liability-Management ist ein modernes Framework unverzichtbar. Was muss es im Spannungsfeld gesetzlicher und unternehmerischer Hürden leisten? Und was muss aktuarielle Software mitbringen, wenn sie den Herausforderungen von heute und morgen gerecht werden will?](/NOV/Images/Blog/Headerbild/22871/image-thumb__22871__MediumTileGrid-item-main-s1-3/novaPredict_Eine%20Frage%20des%20Frameworks.jpg)
Eine Frage des Frameworks
![Tipps & Tools für eine erfolgreiche interne Kommunikation Happy male business team leader talking to employees at corporate meeting, discussing work project, sharing jokes, laughing. Positive mentor training diverse group of interns, having fun](/NOV/Images/Blog/Headerbild/29797/image-thumb__29797__MediumTileGrid-item-main-s1-3/Headerbild_Blog_Firmenevent_Teil%202.jpg)
Tipps & Tools für eine erfolgreiche interne Kommunikation
![Cyber Security: Interview mit Sebastian Nipp Phone lock code. Smartphone protection with 2fa (two factor authentication). Smartphone protection and security with pin number. Encrypted data. Personal online privacy. Cyber hacker threat.](/NOV/Images/Blog/Headerbild/29891/image-thumb__29891__MediumTileGrid-item-main-s1-3/Header_Blog_Interview%20Sebastian_CSI.jpg)
Interview: Wie Unternehmen Cyber Security herstellen
![Videoserie zur Azure, Teil 3, Cloud Mythos](/NOV/Images/Blog/Headerbild/22744/image-thumb__22744__MediumTileGrid-item-main-s1-3/Videoserie%20Azure%203.jpg)
Azure Video-Serie: Mythos "Cloud günstiger als On-premises"
![Videoserie zur Azure, Teil 4, Mythos Cloud Provider](/NOV/Images/Blog/Headerbild/23081/image-thumb__23081__MediumTileGrid-item-main-s1-3/Videoserie%20Azure%204.jpg)
Azure Video-Serie: Mythos "Cloud Provider = Management"
![](/NOV_CH/Images/Bannerbilder/8095/image-thumb__8095__MediumTileGrid-item-main-s1-3/Blog%20Change%20Management.jpg)
Wieso braucht es Change Management?
![Videoserie zur Azure, Teil 1, Azure Cost Management](/NOV/Images/Blog/Headerbild/22293/image-thumb__22293__MediumTileGrid-item-main-s1-3/Videoserie%20Azure%201.jpg)
Azure Video-Serie: Cost Compliance
![Luzia Herger Luzia Herger](/NOV_CH/Landingpages/Adventskalender-Schweiz/24931/image-thumb__24931__MediumTileGrid-item-main-s1-3/04_Luzia_Portrait.jpg)
Working @ novaCapta: Luzias Insights
![Female student using laptop on desk at library](/NOV/Images/News/TeaserImages/428/image-thumb__428__MediumTileGrid-item-main-s1-3/PC4.jpg)
Fachbeitrag der novaCapta: Das personalisierte Intranet
![Videoserie zur Azure, Teil 2, Azure Advisor](/NOV/Images/Blog/Headerbild/22429/image-thumb__22429__MediumTileGrid-item-main-s1-3/Videoserie%20Azure%202.jpg)
Azure Video-Serie: Advisor
![Cristina Steegmann Cristina Steegmann](/NOV_CH/Landingpages/Adventskalender-Schweiz/24943/image-thumb__24943__MediumTileGrid-item-main-s1-3/02_Cristina_Portrait.jpg)
Working @ novaCapta: Cristinas Insights
![Young business people in office](/NOV/Images/Headerimages/14588/image-thumb__14588__MediumTileGrid-item-main-s1-3/Header_Hubseite%20Collaboration%20und%20Intranet.png)
Ohne Digital Workplace keine digitale Transformation
![Ausschnitt vom Firmenevent 2023 der novaCapta](/NOV/Images/Blog/Headerbild/29961/image-thumb__29961__MediumTileGrid-item-main-s1-3/Firmenevent_Header_Blog_Tanz.jpg)
Warum Firmenevents Teil unserer Unternehmenskultur sind
![Samuel Horstmann Portrait von Samuel Horstmann](/NOV_CH/Landingpages/Adventskalender-Schweiz/25198/image-thumb__25198__MediumTileGrid-item-main-s1-3/06_Samuel_Portrait.jpg)
Working @ novaCapta: Samuels Insights
![Intranet mit SharePoint Standard - Interview Happy caucasian casual businesswoman using laptop at desk](/NOV/Images/Blog/Headerbild/29342/image-thumb__29342__MediumTileGrid-item-main-s1-3/Header_Interview_Intranet%20mit%20SP.jpg)
"Ein Intranet ist keine Nebentätigkeit"
![ESG environmental social governance policy for modish business to set a standard to achieve high ESG score](/NOV/Images/Blog/Headerbild/27306/image-thumb__27306__MediumTileGrid-item-main-s1-3/Blog_Interview_Nachhaltigkeit.jpg)
IT: Schlüssel zum erfolgreichen Nachhaltigkeitsmanagement?!
![Mitarbeiterinnen der novaCapta im Büro in Hannover](/NOV/Images/Aufnahmen%20B%C3%BCro%20Hannover/31040/image-thumb__31040__MediumTileGrid-item-main-s1-3/_MG_4780-klein-Web.jpg)
Das Einmaleins zum Aufbau eines Intranets
![Modern Workplace: Die ersten Schritte zum Arbeitsplatz der Zukunft Creative young woman working on laptop in her studio](/NOV/Images/Blog/Headerbild/24803/image-thumb__24803__MediumTileGrid-item-main-s1-3/BestPractice_Artikel-Modern-Work%20Preview.jpg)
Modern Workplace: Erste Schritte zum modernen Arbeitsplatz
![Microsoft Copilot Smile, work and a businessman with a laptop for an email, communication or online coding. Happy, programming and a male programmer typing on a computer for web or software development in an office](/NOV/Images/Blog/28447/image-thumb__28447__MediumTileGrid-item-main-s1-3/Blogbeitrag_Copilot_Teaser.jpg)
Mit Microsoft Copilot in die Zukunft des Arbeitens
![Führungskräfteleitlinien-Workshop Foto vom Führungskräfteleitlinien-Workshop der novaCapta im Kölner Büro](/NOV/Images/Blog/Employer%20Brading/30194/image-thumb__30194__MediumTileGrid-item-main-s1-3/FK-Leitlinien-Workshop_Koeln_web-klein_2.jpg)
Warum & wie wir Führungsleitlinien entwickelt haben
![Erstellung einer Mitarbeiter-App Erstellung einer Mitarbeiter-App](/NOV/Images/Headerimages/15872/image-thumb__15872__MediumTileGrid-item-main-s1-3/Intranet_Firstline_Worker.jpg)
Wer benötigt ein Intranet?
![Sandra Zimmerli Portrait von Sandra Zimmerli](/NOV_CH/Landingpages/Adventskalender-Schweiz/25240/image-thumb__25240__MediumTileGrid-item-main-s1-3/15_Sandra_Portrait.jpg)
Working @ novaCapta: Sandras Insights
![10 Must-haves Change & Adoption Problem Solving,Close up view on hand of business woman stopping falling blocks on table for concept about taking responsibility.](/NOV/Images/Blog/27940/image-thumb__27940__MediumTileGrid-item-main-s1-3/Blogbeitrag_Change%20Management_Best%20Practices.jpg)
10 Must-haves im Change Management
![Google zu M365 Migration Frau arbeitet remote mit Smartphone und Laptop](/NOV/Images/Headerimages/21702/image-thumb__21702__MediumTileGrid-item-main-s1-3/Google-zu-M365_Migration.jpg)
Was Sie von Copilot erwarten können – und was nicht
![Vorschau: IT-Trends 2024 - Teil 2 Close up of a business man working on a laptop, typing with his hands for work in office environment home office](/NOV/Images/Blog/Headerbild/30196/image-thumb__30196__MediumTileGrid-item-main-s1-3/Headerbild_Blog_IT-Trends_Teil2.jpg)
Vorschau: IT-Trends 2024 - Teil 2
![Produkttesting mit Microsoft Power Apps Business professionals using a tablet pc in an office](/NOV/Images/Blog/Headerbild/29559/image-thumb__29559__MediumTileGrid-item-main-s1-3/Header_Blogbeitrag_CS%20adidas.jpg)
Automatisierter Testing Prozess mit Power Apps
![Gerardo Immordino, novaCapta Schweiz AG Portraitbild von Gerardo Immordino](/NOV/Mitarbeiter/28651/image-thumb__28651__MediumTileGrid-item-main-s1-3/Gerardo_Immordino.jpg)
Working @ novaCapta: Gerardos Insights
![Mit Edge Computing IoT-Daten nahezu in Echtzeit verarbeiten Headerbild für Edge Computing](/XIN/Kompetenzen-alt/IoT/Teaser-Header/21736/image-thumb__21736__MediumTileGrid-item-main-s1-3/Edge%20Computing.jpg)
Edge Computing
![NIS2-Richtlinie zur Stärkung der Cybersicherheit Detailaufnahme eines Fingers, dessen Fingerabdruck zur Identifizierung am Laptop genutzt wird. Daben sieht man ein Sicherheitsschloss.](/NOV/Images/Blog/Headerbild/31361/image-thumb__31361__MediumTileGrid-item-main-s1-3/Header_Blogbeitrag_NIS2.jpg)
NIS2 kommt: So bereiten Sie sich optimal vor
![Security Awareness für höheren Schutz vor Cyberangriffen Phone password lock for mobile cyber security or login verification passcode in online bank app. Data privacy and protection from hacker, identity thief or cybersecurity threat. Laptop and smartphone.](/NOV/Images/Blog/Headerbild/30515/image-thumb__30515__MediumTileGrid-item-main-s1-3/Header_Blog_Security_Awareness.jpg)
Security Awareness für mehr mehr Schutz vor Cyberangriffen
![Mitarbeiterinnen der novaCapta im Büro in Hannover](/NOV/Images/Aufnahmen%20B%C3%BCro%20Hannover/31040/image-thumb__31040__MediumTileGrid-item-main-s1-3/_MG_4780-klein-Web.jpg)
Erfolgsfaktoren Weiterbildung & Entwicklung
![Dokumentenmanagement mit GPT African American Business woman hard working, debtor, deferred debt, Times Interest Earned, Subsidiary Ledger, Special Journal, Shareholders Equity, Scrap value, Price Index, Profitability Ratios](/NOV/Images/Blog/29053/image-thumb__29053__MediumTileGrid-item-main-s1-3/Header_Blog_GPT.jpg)
Dokumentenmanagement mit GPT optimieren
![Microsoft Viva Learning Cute university student with curly red hair doing homework sitting at kitchen table with coffee cup and wired earphones next to big window, watching online tutorial on laptop and writing in copybook](/NOV/Images/Blog/27427/image-thumb__27427__MediumTileGrid-item-main-s1-3/Teaserbild_Blogbeitrag_Viva%20Learning.jpg)
Wie Viva Learning Lernen im Arbeitsalltag möglich macht
![Vorschau: IT-Trends 2024 - Teil 1 Social media marketing concept. Women hand using smartphone typing, chatting conversation in chat box icons pop up](/NOV/Images/Blog/Headerbild/30187/image-thumb__30187__MediumTileGrid-item-main-s1-3/Headerbild_IT-trends_Teil1.jpg)