diff --git a/about.html b/about.html index 988a786..68e7b95 100644 --- a/about.html +++ b/about.html @@ -30,15 +30,15 @@ - - + + +{"description":"Trainer for Mircosoft Azure and Identity/Security. Development from Cloud and Web Solutions.","@type":"WebPage","url":"https://meyer-consulting.net/about.html","headline":"about","@context":"https://schema.org"} diff --git a/blog.html b/blog.html index 122c9f6..2013e79 100644 --- a/blog.html +++ b/blog.html @@ -30,15 +30,15 @@ - - + + +{"description":"Trainer for Mircosoft Azure and Identity/Security. Development from Cloud and Web Solutions.","@type":"WebPage","url":"https://meyer-consulting.net/blog.html","headline":"blog","@context":"https://schema.org"} @@ -101,12 +101,12 @@

blog posts

- +

SQL Management Studio: Connect and Queries take so long

- +
@@ -118,7 +118,7 @@

SQL Management Studio: Connect and Queries take so long

- + Read more @@ -137,7 +137,7 @@

SQL Management Studio: Connect and Queries take so long

Timeout - permalink + permalink @@ -146,12 +146,12 @@

SQL Management Studio: Connect and Queries take so long


- +

Git: Add .gitignore after commit

- +
@@ -163,7 +163,7 @@

Git: Add .gitignore after commit

- + Read more @@ -178,7 +178,7 @@

Git: Add .gitignore after commit

gitignore - permalink + permalink @@ -187,12 +187,12 @@

Git: Add .gitignore after commit


- +

Self Hosted ASP.NET Core: TagHelper doesn't work

- +
@@ -204,7 +204,7 @@

Self Hosted ASP.NET Core: TagHelper doesn't work

- + Read more @@ -223,7 +223,7 @@

Self Hosted ASP.NET Core: TagHelper doesn't work

TagHelper - permalink + permalink @@ -232,12 +232,12 @@

Self Hosted ASP.NET Core: TagHelper doesn't work


- +

SelfHosted ASP.NET Core 2.0 Application

- +
@@ -249,7 +249,7 @@

SelfHosted ASP.NET Core 2.0 Application

- + Read more @@ -274,7 +274,7 @@

SelfHosted ASP.NET Core 2.0 Application

Windows Service - permalink + permalink @@ -283,12 +283,12 @@

SelfHosted ASP.NET Core 2.0 Application


- +

SQL Server 2012: EOMONTH Funktion

- +
@@ -300,7 +300,7 @@

SQL Server 2012: EOMONTH Funktion

- + Read more @@ -315,7 +315,7 @@

SQL Server 2012: EOMONTH Funktion

SQL Server 2012 - permalink + permalink @@ -324,12 +324,12 @@

SQL Server 2012: EOMONTH Funktion


- +

“Add STS Reference” in Visual Studio 2012

- +
@@ -341,7 +341,7 @@

“Add STS Reference” in Visual Studio 2012

- + Read more @@ -360,7 +360,7 @@

“Add STS Reference” in Visual Studio 2012

Visual Studio - permalink + permalink @@ -369,12 +369,12 @@

“Add STS Reference” in Visual Studio 2012


- +

Paging mit OFFSET und FETCH im SQL Server 2012

- +
@@ -386,7 +386,7 @@

Paging mit OFFSET und FETCH im SQL Server 2012

- + Read more @@ -409,7 +409,7 @@

Paging mit OFFSET und FETCH im SQL Server 2012

TOP - permalink + permalink @@ -418,12 +418,12 @@

Paging mit OFFSET und FETCH im SQL Server 2012


- +

Neuerungen mit SharePoint 2013

- +
@@ -435,7 +435,7 @@

Neuerungen mit SharePoint 2013

- + Read more @@ -452,7 +452,7 @@

Neuerungen mit SharePoint 2013

SharePoint 2013 - permalink + permalink @@ -461,12 +461,12 @@

Neuerungen mit SharePoint 2013


- +

Update auf große Datenmengen mit @@ROWCOUNT

- +
@@ -479,7 +479,7 @@

Update auf große Datenmengen mit @@ROWCOUNT

- + Read more @@ -496,7 +496,7 @@

Update auf große Datenmengen mit @@ROWCOUNT

WAITFOR DELAY - permalink + permalink @@ -518,55 +518,55 @@

Update auf große Datenmengen mit @@ROWCOUNT

+ + + + + + + + + + + + + + + +Update auf große Datenmengen mit @@ROWCOUNT | Robert Meyer Consulting + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+ + + +
+
+
+

+ Update auf große Datenmengen mit @@ROWCOUNT +

+
+ Robert Meyer + 11 Jul 2012 + + + + ROWCOUNT + + UPDATE + + WAITFOR DELAY + + + permalink +
+
+
+
+
+
+ +
+ +
+

Häufig steht man vor der Herausforderung in einer sehr großen Tabelle Datensätze zu aktualisieren. Hat diese z.B. wie in meinem Szenario über 10 Millionen Datensätze und einen Trigger der auf Update Commands reagiert, ist es nicht sehr sinnvoll mit einem mal mehr als 1000 Zeilen zu aktualisieren. +Hierbei kann es zu ungewollten Table Locks kommen. Noch problematischer wird es, wenn während des Zeitpunktes des Updates viele Abfragen auf dieser Tabelle ausgeführt werden.

+ +

Der erste Lösungsansatz bei diesem Problem ist ein eingeschränkter Update Befehl auf 1000 Zeilen. Diese kann man mit einem UPDATE TOP (1000) und ebenso mit dem Befehl SET ROWCOUNT 1000 erreichen (Siehe Beispiele).

+ +

+ +

Möchte man nun etwa 100000 Zeilen aktualisieren empfiehlt es sich hierfür eine Schleife zu bauen. Außerdem sollte nach jedem Updatebefehl eine Wartezeit von 1-3 Sekunden eingefügt werden, damit andere Anfragen die Möglichkeit haben Sperren zu setzen. Dies erreicht man durch den Befehl WAITFOR DELAY. Hier ein Beispiel:

+ +

+ +

Der gesamte Updatevorgang kann dadurch etwas länger dauern, man minimiert jedoch die Wahrscheinlichkeit von Locks über die ganze Tabelle und erlaubt z.B. Triggern optimaler zu arbeiten.

+ + + + +
+ + +
+ +
+
+
+
+
+
+ + + + +
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/2012/07/17/neuerungen-mit-sharepoint-2013/index.html b/blog/2012/07/17/neuerungen-mit-sharepoint-2013/index.html new file mode 100644 index 0000000..960aac7 --- /dev/null +++ b/blog/2012/07/17/neuerungen-mit-sharepoint-2013/index.html @@ -0,0 +1,325 @@ + + + + + + Robert Meyer Consulting + + + + + + + + + + + + + + + + + + + + +Neuerungen mit SharePoint 2013 | Robert Meyer Consulting + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+ + + +
+
+
+

+ Neuerungen mit SharePoint 2013 +

+
+ Robert Meyer + 17 Jul 2012 + + + + Features + + Neuerungen + + SharePoint 2013 + + + permalink +
+
+
+
+
+
+ +
+ +
+

Diese Nacht war es endlich soweit und die Microsoft SharePoint 2013 Preview stand, neben Office 2013, zum Download bereit. Natürlich bringt SharePoint 2013 viele neue Features mit. Mit einigen hat man gerechnet, andere kamen ziemlich überraschend. Ich möchte euch hier eine kurze Auflistung der neuen Features zur Verfügung stellen.

+ +
    +
  • .NET 4.0 mit SharePoint 2013
  • +
  • Workflow Foundation 4.0
  • +
  • SharePoint Marketplace for Apps
    + Mit SharePoint 2013 führt Microsoft den Marketplace für SharePoint Apps ein. Eine SharePoint App ist eine Webapplikation, welche in SharePoint eingebunden werden kann. Hier ist man in der Wahl der Technologie relativ frei und kann z.B. HTML 5, CSS und JavaScript nutzen. Hierzu gibt es im Object Modell auf der Ebene von SPWeb eine Erweiterung mit dem Namen SPApp.
  • +
  • Stärkere Integration der Office Produkte in SharePoint 2013
  • +
  • Verbesserung in Client Object Model
    + Das Client Object Model wurde mit der Möglichkeit der Suche erweitert. Somit ist es nun auch Möglich über das Client Object Model die in SharePoint integrierte Suche zu nutzen.
  • +
  • Verbesserung der Workflows über den SharePoint Designer
    + Es ist nun Möglich dass bei Workflows, welche über den SharePoint Designer erstellt werden, Schleifen eingesetzt werden können. Dies ging bisher bei SharePoint 2010 nur bei Workflows die mit Visual Studio erstellt wurden.
  • +
  • Anstelle von AJAX kommt nun HTML5 mit JQuery zum Einsatz
  • +
  • MinimaDownload Strategy (MDS)
    + MDS ist eine Erweiterung die Microsoft dem SharePoint Server 2013 spendiert hat, mit der es Möglich ist nur den veränderten Bereich von Webseiten zu übertragen. Das Ziel ist den Traffic möglichst gering zu halten und die Geschwindigkeit bei Nutzern mit geringer Bandbreite zu erhöhen.
  • +
  • OAuth 2.0 Authentication
    + Unterstützung von WIndows Live ID, Twitter oder Facebook.
  • +
  • Unterstützung von Visual Studio 2012
  • +
+ +

Herunterladen kann man sich SharePoint 2013 Foundation kostenlos auf der Seite von Microsoft. Wer eine MSDN Subscription besitzt, kann sich die größeren Versionen dort herunterladen.

+ +

Viel Spaß beim Ausprobieren!

+ + + + +
+ + +
+ +
+
+
+
+
+
+ + + + +
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/2012/07/19/pagging-mit-offset-und-fetch-im-sql-server-2012/index.html b/blog/2012/07/19/pagging-mit-offset-und-fetch-im-sql-server-2012/index.html new file mode 100644 index 0000000..effe195 --- /dev/null +++ b/blog/2012/07/19/pagging-mit-offset-und-fetch-im-sql-server-2012/index.html @@ -0,0 +1,361 @@ + + + + + + Robert Meyer Consulting + + + + + + + + + + + + + + + + + + + + +Paging mit OFFSET und FETCH im SQL Server 2012 | Robert Meyer Consulting + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+ + + +
+
+
+

+ Paging mit OFFSET und FETCH im SQL Server 2012 +

+
+ Robert Meyer + 19 Jul 2012 + + + + FETCH + + OFFSET + + ORDER BY + + ROW_NUMBER + + SQL Server 2012 + + TOP + + + permalink +
+
+
+
+
+
+ +
+ +
+

Lange hat es gedauert, doch nun beherrscht der SQL Server mit Version 2012 endlich das Paging. Unter Paging versteht man die Festlegung davon wie viele Datensätze pro Seite ausgeben werden sollen. Dies wird besonders bei diversen Webapplikationen benötigt um die Anzahl der geladenen Daten zu verringern.

+ +

Würde die Suche auf einer Website ein Trefferergebnis von 400 Datensätzen betragen, möchte der Nutzer sicherlich nicht alle 400 Datensätze mit einmal auf der Website sehen, sondern z.B. immer nur 20 Stück. Diese 20 Datensätze werden jetzt auf 20 Seiten aufgelistet. Damit der Traffic möglichst gering bleibt, werden auch immer nur die Datensätze der aktuellen Seite geladen. Das nennt man Paging.

+ +
Möglichkeiten mit dem SQL Server 2012
+ +

Mit dem SQL Server 2012 kommen unter anderen zwei neue Befehle welche in der ORDER BY Klausel genutzt werden können:

+ +
    +
  • +

    OFFSET
    + Legt fest wie viele Datensätze übersprungen werden, bevor Datensätze zurückgegeben werden.

    +
  • +
  • +

    FETCH
    + Gibt an wie viele Datensätze nach der OFFSET Klausel angezeigt werden sollen

    +
  • +
+ +
Beispiel
+ +

In dem Beispiel werden Kundendaten selektiert, welche mit dem Nachnamen Meyer beginnen. Allerdings werden die ersten 40 Zeilen übersprungen und von da an 20 Zeilen selektiert.

+ +

+ +
Varianten von OFFSET und FETCH
+ +

Anstelle von NEXT kann man auch FIRST genutzt werden, es handelt sich hierbei nur um ein Synonym. Das gleich gilt für das Wort ROWS, hier kann auch ROW genutzt werden. Anstelle der direkten Anzahl der Datensätze bei OFFSET oder FETCH kann hier auch eine Variable zum Einsatz kommen. Dies könnte zum Beispiel so aussehen und wäre im zusammenhangen mit dynamisches Stored Procedures recht interessant.

+ +

+ +
Expressions in OFFSET und FETCH
+ +

Es ist ebenfalls möglich Expressions im Zusammenhang von OFFSET und FETCH zu nutzen. Hier ein Beispiel:

+ +

+ +

Zur Verfügung stehen die Erweiterungen OFFSET und FETCH bereits ab dem SQL Server 2012 Express.

+ + + + +
+ + +
+ +
+
+
+
+
+
+ + + + +
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/2012/07/30/add-sts-reference-in-visual-studio-2012/index.html b/blog/2012/07/30/add-sts-reference-in-visual-studio-2012/index.html new file mode 100644 index 0000000..bfa9ca5 --- /dev/null +++ b/blog/2012/07/30/add-sts-reference-in-visual-studio-2012/index.html @@ -0,0 +1,325 @@ + + + + + + Robert Meyer Consulting + + + + + + + + + + + + + + + + + + + + +“Add STS Reference” in Visual Studio 2012 | Robert Meyer Consulting + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+ + + +
+
+
+

+ “Add STS Reference” in Visual Studio 2012 +

+
+ Robert Meyer + 30 Jul 2012 + + + + ACS + + Reference + + STS + + Visual Studio + + + permalink +
+
+
+
+
+
+ +
+ +
+

Ich habe heute ein Azure Projekt im neuen Visual Studio 2012 angefangen und wollte ACS einbinden. Bei Visual Studio 2010 ging dies sehr einfach über den Menupunkt “Add STS Reference …”.

+ +

+ +

Dieser ist jedoch leider bei Visual Studio 2012 nicht vorhanden. Hier führt es auch nicht zum gewünschten Erfolg, wenn man das aktuelle Azure SDK installiert. Jedoch ist es über einen Umweg möglich die vermisste Funktionalität in Visual Studio 2012 wieder herbei zu zaubern.

+ +
    +
  1. +

    Im Hauptmenu von Visual Studio 2012 im Eintrag “Tools” auf den Menupunkt “Extensions and Updates …” klicken.
    +

    +
  2. +
  3. +

    In dem sich nun öffnenden Fenster im linken Menu die Kategorie “Online” auswählen und in das Suchfeld “Identity” eingeben. Danach die “Identity and Access Tools” herunterladen und installieren und Visual Studio 2012 neustarten. +

    +
  4. +
  5. +

    Nach dem Neustart von Visual Studio 2012 gibt es einen neuen Menueintrag im Kontextmenu des Projektes mit der Bezeichnung “Identity and Access …”. Hier kann nun wie gewohnt eine ACS Referenz hinzugefügt werden.
    +

    +
  6. +
+ +

+ + + + +
+ + +
+ +
+
+
+
+
+
+ + + + +
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/2012/08/07/sql-server-2012-eomonth-funktion/index.html b/blog/2012/08/07/sql-server-2012-eomonth-funktion/index.html new file mode 100644 index 0000000..039fa94 --- /dev/null +++ b/blog/2012/08/07/sql-server-2012-eomonth-funktion/index.html @@ -0,0 +1,299 @@ + + + + + + Robert Meyer Consulting + + + + + + + + + + + + + + + + + + + + +SQL Server 2012: EOMONTH Funktion | Robert Meyer Consulting + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+ + + +
+
+
+

+ SQL Server 2012: EOMONTH Funktion +

+
+ Robert Meyer + 07 Aug 2012 + + + + EOMONTH + + SQL Server 2012 + + + permalink +
+
+
+
+
+
+ +
+ +
+

Mit dem SQL Server 2012 ist eine neue Datumsfunktion dazu gekommen. Mit EOMONTH ist es möglich sich den letzten Tag des Monats ausgeben zu lassen. Dies ist besonders interessant wenn man Wertebereiche innerhalb eines Monats oder über mehrere Monate Tag genau selektieren möchte.

+ +

So wendet man EOMONTH an, um sich den letzten Tag des Monats August im Jahr 2012 ausgegeben zu lassen:

+ +

settings

+ +

Man kann jedoch auch Monat dazu addieren oder abziehen. Hierfür steht ein optionaler Operator zur Verfügung.

+ +

settings

+ +

Es ist nur eine kleiner Erweiterung, aber sie erleichtert doch auf angenehme Art die Arbeit mit TSQL.

+ + + + +
+ + +
+ +
+
+
+
+
+
+ + + + +
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/2017/09/22/selfhosted-asp-net-core-2-0-application/index.html b/blog/2017/09/22/selfhosted-asp-net-core-2-0-application/index.html new file mode 100644 index 0000000..46463cb --- /dev/null +++ b/blog/2017/09/22/selfhosted-asp-net-core-2-0-application/index.html @@ -0,0 +1,639 @@ + + + + + + Robert Meyer Consulting + + + + + + + + + + + + + + + + + + + + +SelfHosted ASP.NET Core 2.0 Application | Robert Meyer Consulting + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+ + + +
+
+
+

+ SelfHosted ASP.NET Core 2.0 Application +

+
+ Robert Meyer + 22 Sep 2017 + + + + .NET Core + + .NET Standard + + Autofac + + NLog + + SelfHosted Website + + ServerFabric + + Windows Service + + + permalink +
+
+
+
+
+
+ +
+ +
+

Auf Grund einer Projektanforderung musste ich mich die Tage damit auseinandersetzen, wie man eine ASP.NET Core 2.0 Website und Web API in einem eigenen Prozess als Windows Service bereitstellt.

+ +

Hierbei gibt es einige Besonderheiten zu beachten, auf welche ich in diesem Post gern näher eingehen möchte.

+ +

Folgende Technologien kommen zum Einsatz:

+ +
    +
  • Alle Projekte basieren auf .NET Core 2.0 oder .NET Standard 2.0
  • +
  • Autofac als IoC Container
  • +
  • NLog für das Logging
  • +
  • Peter Kottas WindowsService als ServerFabric (GitHub)
  • +
+ +
Grundlegende Architektur der Anwendung
+

Architecture

+

Zu finden ist dieses Beispiel auf GitHub.

+ +
Grundlegendes Vorgehen
+

Die Konsolenapplikation kann als WindowsService oder direkt ausgeführt werden und hostet die Website und die API. Die Website und die API sind beides .NETStandard 2.0 Projekte, während die Console eine .NET Core 2.0 Anwendung darstellt.

+ +
Aufbau der SelfHosted.Console
+

IApplication definiert ein Interface zum Starten und Stoppen der Applikationen. Eine Applikation kann eine Website oder eine WebApi sein.

+

IApplication

+

Diese Applikationen werden in Autofac registriert und einem gekapselten MicroService geladen und gestartet.

+ +
public class SelfHostedWindowService : MicroService, IMicroService
+{
+	private IServiceProvider _provider;
+
+	public void Start()
+	{
+		this.StartBase();
+
+		var builder = new ContainerBuilder();
+		builder.RegisterType<WebApplication>().As<IApplication>();
+		builder.RegisterType<WebApiApplication>().As<IApplication>();
+		var applicationContainer = builder.Build();
+
+		_provider = new AutofacServiceProvider(applicationContainer);
+
+		foreach (var app in _provider.GetServices<IApplication>())
+		{
+			app.Start();
+		}
+
+		System.Console.WriteLine("Windows services started.");
+	}
+
+	public void Stop()
+	{
+		this.StopBase();
+
+		foreach (var app in _provider.GetServices<IApplication>())
+		{
+			app.Stop();
+		}
+
+		System.Console.WriteLine("Windows services stopped.");
+	}
+}
+
+ +

Beim Starten der Konsole oder des Services, wird der MicroService registriert und in einer ServiceFactory geladen. Dadurch starten alle Applikationen, welche in den jeweiligen MicroService definiert sind.

+ +
ServiceRunner<SelfHostedWindowService>.Run(config =>
+{
+	var serviceName = "SelfHosted.WindowsService";
+
+	config.SetName(serviceName);
+	config.Service(serviceConfig =>
+	{
+		serviceConfig.ServiceFactory((service, extraArguments) =>
+		{
+			return new SelfHostedWindowService();
+		});
+
+		serviceConfig.OnStart((service, extraArguments) =>
+		{
+			System.Console.WriteLine("Service {0} started", serviceName);
+			service.Start();
+		});
+
+		serviceConfig.OnStop((service) =>
+		{
+			System.Console.WriteLine("Service {0} stopped", serviceName);
+			service.Stop();
+		});
+
+		serviceConfig.OnError(e =>
+		{
+			System.Console.WriteLine($"Service '{serviceName}' errored with exception : {e.Message}");
+		});
+	});
+});
+
+ +
Besonderheiten in der ASP.NET Core 2.0 Website
+

Es gibt jedoch beim hosten seiner ASP.NET Core 2.0 Website in einer Console noch drei wichtige Dinge zu beachten.

+ +
    +
  1. Alle Views müssen Embedded werden. Dafür habe ich folgende Extension Methode geschrieben, welche im Startup bei AddRazorOptions aufgerufen wird.
  2. +
+ +
public static RazorViewEngineOptions AddViews(this RazorViewEngineOptions options)
+{
+	options.FileProviders.Add(new EmbeddedFileProvider(typeof(ServiceCollectionExtensions).GetTypeInfo().Assembly, "SelfHosted.Website"));
+	return options;
+}
+
+ +

2. Danach stellte sich heraus, dass noch einige Assemblies fehlten. Diese werden ebenfalls per Extension Methode im Startup geladen.

+ +
public static RazorViewEngineOptions AddCompilationAssemblies(this RazorViewEngineOptions options)
+{
+	var myAssemblies = AppDomain
+	.CurrentDomain
+	.GetAssemblies()
+	.Where(x => !x.IsDynamic)
+	.Concat(new[] { // additional assemblies used in Razor pages:
+		typeof(HtmlString).Assembly, // Microsoft.AspNetCore.Html.Abstractions
+		typeof(IViewLocalizer).Assembly, // Microsoft.AspNetCore.Mvc.Localization
+		typeof(IRequestCultureFeature).Assembly // Microsoft.AspNetCore.Localization
+	})
+	.Select(x => MetadataReference.CreateFromFile(x.Location))
+	.ToArray();
+
+	var previous = options.CompilationCallback;
+
+	options.CompilationCallback = context =>
+	{
+		previous?.Invoke(context);
+		context.Compilation = context.Compilation.AddReferences(myAssemblies);
+	};
+
+	return options;
+}
+
+ +
    +
  1. Jetzt müssen noch alle statischen Files, welche z.B. im wwwroot liegen embedded werden. Auch hier gibt es wieder eine passende Extension Methode.
  2. +
+ +
public static IServiceCollection AddStaticFiles(this IServiceCollection collection)
+{
+	// static files are embedded resources in the "wwwroot" folder
+	collection.Configure<StaticFileOptions>(options =>
+	{
+		options.FileProvider = new EmbeddedFileProvider(typeof(Startup).Assembly, typeof(Startup).Namespace + ".wwwroot");
+	});
+	return collection;
+}
+
+ +

Aufgerufen werden die Extension Methods im Startup der Website, in der Funktion ConfigureServices wie folgt:

+ +
public IServiceProvider ConfigureServices(IServiceCollection services)
+{
+	services.AddSingleton<IConfiguration>(Configuration);
+	services.AddMvc()
+	.AddRazorOptions(options =>
+	{
+		options.AddViews();
+		options.AddCompilationAssemblies();
+	});
+	services.AddStaticFiles();
+
+	var builder = new ContainerBuilder();
+	builder.Populate(services);
+	this.ApplicationContainer = builder.Build();
+
+	return new AutofacServiceProvider(this.ApplicationContainer);
+}
+
+ +
Zusammenfassung
+

Auf diesem Weg erreicht man eine sehr leichtgewichtige Anwendung, welche komplett in einem eigenen Prozess unabhängig von dem Betriebssystem und Webserver installiert werden kann. Somit erreicht man bei seiner Produktentwicklung, welchen bei Kunden vor Ort installiert werden muss, eine sehr hohe Flexibilität und ich unabhängig der Umgebung.

+ + + + +
+ + +
+ +
+
+
+
+
+
+ + + + +
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/2017/09/29/self-hosted-asp-net-core-taghelper-doesnt-work/index.html b/blog/2017/09/29/self-hosted-asp-net-core-taghelper-doesnt-work/index.html new file mode 100644 index 0000000..db927d8 --- /dev/null +++ b/blog/2017/09/29/self-hosted-asp-net-core-taghelper-doesnt-work/index.html @@ -0,0 +1,379 @@ + + + + + + Robert Meyer Consulting + + + + + + + + + + + + + + + + + + + + +Self Hosted ASP.NET Core: TagHelper doesn’t work | Robert Meyer Consulting + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+ + + +
+
+
+

+ Self Hosted ASP.NET Core: TagHelper doesn't work +

+
+ Robert Meyer + 29 Sep 2017 + + + + .NET Core + + ASP.NET Core + + SelfHosted Website + + TagHelper + + + permalink +
+
+
+
+
+
+ +
+ +
+

I have implemented a simple TagHelper in a ASP.NET Core 2.0 Website, which replace the <time> Tag with the current time. The website never runs in an ISS or Kestrel server, but is hosted by HttpSys in a console / service.

+ +

My custom TimeTagHelper:

+
[HtmlTargetElement("time")]
+public class TimeTagHelper : TagHelper
+{
+    public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
+    {
+        output.Content.SetHtmlContent($"<h1>{DateTime.Now.ToShortTimeString()}</h1>");
+    }
+}
+
+ +

If I start the website project directly, the TagHelper works without problems. Launched from the Console / Service, the <time> tag was not replaced. Obviously the _ViewImports.cshtml is not loaded.

+ +
The solution: PreserveCompilationContext
+ +

These are the steps that helped me:

+ +
    +
  1. Add the following ItemGroup definition to my Selhosted.Website.csproj
  2. +
+ +
<ItemGroup>
+  <EmbeddedResource Include="wwwroot\**\*;Views\**\*;Areas\**\Views" />
+</ItemGroup>
+
+ +
    +
  1. Add the PreserveCompilationContext property to the PropertyGroup in Selhosted.Website.csproj
  2. +
+ +
<PropertyGroup>
+  <TargetFramework>netcoreapp2.0</TargetFramework>
+  <AssemblyName>SelfHosted.Website</AssemblyName>
+  <RootNamespace>SelfHosted.Website</RootNamespace>
+  <TypeScriptToolsVersion>2.3</TypeScriptToolsVersion>
+  <PreserveCompilationContext>true</PreserveCompilationContext>
+</PropertyGroup>
+
+ +
    +
  1. Include the generated SelfHosted.Website.deps.json from the websites bin folder to the SelfHosted.Console project and set the Copy to Output Directory to Copy always.
  2. +
+ +

project properties

+ +

You can find the sample project in my GitHub Repo:  +roeb/DotNetCoreSamples

+ + + + +
+ + +
+ +
+
+
+
+
+
+ + + + +
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/2017/10/04/git-add-gitignore-after-commit/index.html b/blog/2017/10/04/git-add-gitignore-after-commit/index.html new file mode 100644 index 0000000..b28caf7 --- /dev/null +++ b/blog/2017/10/04/git-add-gitignore-after-commit/index.html @@ -0,0 +1,315 @@ + + + + + + Robert Meyer Consulting + + + + + + + + + + + + + + + + + + + + +Git: Add .gitignore after commit | Robert Meyer Consulting + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+ + + +
+
+
+

+ Git: Add .gitignore after commit +

+
+ Robert Meyer + 04 Oct 2017 + + + + GitHub + + gitignore + + + permalink +
+
+
+
+
+
+ +
+ +
+

I had created a new repository in GitHub and forgot to add the .gitignore file to ignore all my Visual Studio and debugging files. However, I did not realize it until after I created the first commit.

+ +

These are the steps to apply the gitignore file later:

+ +
    +
  1. Create a .gitignore file in the root of your local repository. Run this command. This removes everything from the index: +
    git rm -r --cached .
    +
    +
  2. +
  3. Re-add all files. Now the files and folders from gitignore are ignored. +
    git add .
    +
    +
  4. +
  5. Then commit the changes again and push it to your GitHub repository +
    git commit -m ".gitignore is now working"
    +git push
    +
    +
  6. +
+ + + + +
+ + +
+ +
+
+
+
+
+
+ + + + +
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/2018/04/16/sql-management-studio-connect-and-queries-take-so-long/index.html b/blog/2018/04/16/sql-management-studio-connect-and-queries-take-so-long/index.html new file mode 100644 index 0000000..a4e41be --- /dev/null +++ b/blog/2018/04/16/sql-management-studio-connect-and-queries-take-so-long/index.html @@ -0,0 +1,305 @@ + + + + + + Robert Meyer Consulting + + + + + + + + + + + + + + + + + + + + +SQL Management Studio: Connect and Queries take so long | Robert Meyer Consulting + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+ + + +
+
+
+

+ SQL Management Studio: Connect and Queries take so long +

+
+ Robert Meyer + 16 Apr 2018 + + + + Long Running Queries + + SQL Management Studio + + SQL Operations Studio + + Timeout + + + permalink +
+
+
+
+
+
+ +
+ +
+

When I connect to my local SQL Server using SQL Management Studio or SQL Operations Studio and want to execute queries, it sometimes takes several minutes to execute.

+ +

This setting in Internet Explorer’s Internet Options solved my problem:

+ +
    +
  • Open Internet Explorer
  • +
  • Go to Tools -> Internet option
  • +
  • Open the “Advanced” tab
  • +
  • Uncheck “Check for server certificate revocation (requires restart)”
  • +
+ +

settings

+ + + + +
+ + +
+ +
+
+
+
+
+
+ + + + +
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/contact.html b/contact.html index 33f414f..a9af49a 100644 --- a/contact.html +++ b/contact.html @@ -30,15 +30,15 @@ - - + + +{"description":"Trainer for Mircosoft Azure and Identity/Security. Development from Cloud and Web Solutions.","@type":"WebPage","url":"https://meyer-consulting.net/contact.html","headline":"Robert Meyer Consulting","@context":"https://schema.org"} diff --git a/feed.xml b/feed.xml index 89b7ea5..fd579ef 100644 --- a/feed.xml +++ b/feed.xml @@ -1,4 +1,4 @@ -Jekyll2020-03-25T14:29:54-05:00meyer-consulting.net/feed.xmlRobert Meyer ConsultingTrainer for Mircosoft Azure and Identity/Security. Development from Cloud and Web Solutions.{"twitter"=>"roeb", "picture"=>"/assets/img/me_free.png"}SQL Management Studio: Connect and Queries take so long2018-04-16T02:42:50-05:002018-04-16T02:42:50-05:00meyer-consulting.net/2018/04/16/sql-management-studio-connect-and-queries-take-so-long<p>When I connect to my local SQL Server using SQL Management Studio or SQL Operations Studio and want to execute queries, it sometimes takes several minutes to execute.</p> +Jekyll2020-03-25T14:44:15-05:00https://meyer-consulting.net/feed.xmlRobert Meyer ConsultingTrainer for Mircosoft Azure and Identity/Security. Development from Cloud and Web Solutions.{"twitter"=>"roeb", "picture"=>"/assets/img/me_free.png"}SQL Management Studio: Connect and Queries take so long2018-04-16T02:42:50-05:002018-04-16T02:42:50-05:00https://meyer-consulting.net/blog/2018/04/16/sql-management-studio-connect-and-queries-take-so-long<p>When I connect to my local SQL Server using SQL Management Studio or SQL Operations Studio and want to execute queries, it sometimes takes several minutes to execute.</p> <p>This setting in Internet Explorer’s Internet Options solved my problem:</p> @@ -9,7 +9,7 @@ <li>Uncheck “Check for server certificate revocation (requires restart)”</li> </ul> -<p><img src="/assets/img/blog/2018/1a9c2cf90ff6a62dc42dddcb742a04ac.png" alt="settings" /></p>{"login"=>"sqlpractice", "email"=>"info@meyer-consulting.net", "display_name"=>"Robert Meyer", "first_name"=>"Robert", "last_name"=>"Meyer"}info@meyer-consulting.netWhen I connect to my local SQL Server using SQL Management Studio or SQL Operations Studio and want to execute queries, it sometimes takes several minutes to execute.Git: Add .gitignore after commit2017-10-04T00:21:30-05:002017-10-04T00:21:30-05:00meyer-consulting.net/2017/10/04/git-add-gitignore-after-commit<p>I had created a new repository in GitHub and forgot to add the .gitignore file to ignore all my Visual Studio and debugging files. However, I did not realize it until after I created the first commit.</p> +<p><img src="/assets/img/blog/2018/1a9c2cf90ff6a62dc42dddcb742a04ac.png" alt="settings" /></p>Robert MeyerWhen I connect to my local SQL Server using SQL Management Studio or SQL Operations Studio and want to execute queries, it sometimes takes several minutes to execute.Git: Add .gitignore after commit2017-10-04T00:21:30-05:002017-10-04T00:21:30-05:00https://meyer-consulting.net/blog/2017/10/04/git-add-gitignore-after-commit<p>I had created a new repository in GitHub and forgot to add the .gitignore file to ignore all my Visual Studio and debugging files. However, I did not realize it until after I created the first commit.</p> <p>These are the steps to apply the gitignore file later:</p> @@ -27,7 +27,7 @@ git push </code></pre></div> </div> </li> -</ol>{"login"=>"sqlpractice", "email"=>"info@meyer-consulting.net", "display_name"=>"Robert Meyer", "first_name"=>"Robert", "last_name"=>"Meyer"}info@meyer-consulting.netI had created a new repository in GitHub and forgot to add the .gitignore file to ignore all my Visual Studio and debugging files. However, I did not realize it until after I created the first commit.Self Hosted ASP.NET Core: TagHelper doesn’t work2017-09-29T00:56:06-05:002017-09-29T00:56:06-05:00meyer-consulting.net/2017/09/29/self-hosted-asp-net-core-taghelper-doesnt-work<p>I have implemented a simple TagHelper in a ASP.NET Core 2.0 Website, which replace the &lt;time&gt; Tag with the current time. The website never runs in an ISS or Kestrel server, but is hosted by HttpSys in a console / service.</p> +</ol>Robert MeyerI had created a new repository in GitHub and forgot to add the .gitignore file to ignore all my Visual Studio and debugging files. However, I did not realize it until after I created the first commit.Self Hosted ASP.NET Core: TagHelper doesn’t work2017-09-29T00:56:06-05:002017-09-29T00:56:06-05:00https://meyer-consulting.net/blog/2017/09/29/self-hosted-asp-net-core-taghelper-doesnt-work<p>I have implemented a simple TagHelper in a ASP.NET Core 2.0 Website, which replace the &lt;time&gt; Tag with the current time. The website never runs in an ISS or Kestrel server, but is hosted by HttpSys in a console / service.</p> <p>My custom TimeTagHelper:</p> <div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">[</span><span class="nf">HtmlTargetElement</span><span class="p">(</span><span class="s">"time"</span><span class="p">)]</span> @@ -75,7 +75,7 @@ git push <p><img src="/assets/img/blog/2017/64fcb891c62c3a149c6ff350ebe0b1d3.png" alt="project properties" /></p> <p>You can find the sample project in my GitHub Repo:  -<a href="https://github.com/roeb/DotNetCoreSamples" target="_blank" rel="noopener">roeb/DotNetCoreSamples</a></p>{"login"=>"sqlpractice", "email"=>"info@meyer-consulting.net", "display_name"=>"Robert Meyer", "first_name"=>"Robert", "last_name"=>"Meyer"}info@meyer-consulting.netI have implemented a simple TagHelper in a ASP.NET Core 2.0 Website, which replace the &lt;time&gt; Tag with the current time. The website never runs in an ISS or Kestrel server, but is hosted by HttpSys in a console / service.SelfHosted ASP.NET Core 2.0 Application2017-09-22T03:40:14-05:002017-09-22T03:40:14-05:00meyer-consulting.net/2017/09/22/selfhosted-asp-net-core-2-0-application<p>Auf Grund einer Projektanforderung musste ich mich die Tage damit auseinandersetzen, wie man eine ASP.NET Core 2.0 Website und Web API in einem eigenen Prozess als Windows Service bereitstellt.</p> +<a href="https://github.com/roeb/DotNetCoreSamples" target="_blank" rel="noopener">roeb/DotNetCoreSamples</a></p>Robert MeyerI have implemented a simple TagHelper in a ASP.NET Core 2.0 Website, which replace the &lt;time&gt; Tag with the current time. The website never runs in an ISS or Kestrel server, but is hosted by HttpSys in a console / service.SelfHosted ASP.NET Core 2.0 Application2017-09-22T03:40:14-05:002017-09-22T03:40:14-05:00https://meyer-consulting.net/blog/2017/09/22/selfhosted-asp-net-core-2-0-application<p>Auf Grund einer Projektanforderung musste ich mich die Tage damit auseinandersetzen, wie man eine ASP.NET Core 2.0 Website und Web API in einem eigenen Prozess als Windows Service bereitstellt.</p> <p>Hierbei gibt es einige Besonderheiten zu beachten, auf welche ich in diesem Post gern näher eingehen möchte.</p> @@ -250,7 +250,7 @@ git push </code></pre></div></div> <h5>Zusammenfassung</h5> -<p>Auf diesem Weg erreicht man eine sehr leichtgewichtige Anwendung, welche komplett in einem eigenen Prozess unabhängig von dem Betriebssystem und Webserver installiert werden kann. Somit erreicht man bei seiner Produktentwicklung, welchen bei Kunden vor Ort installiert werden muss, eine sehr hohe Flexibilität und ich unabhängig der Umgebung.</p>{"login"=>"sqlpractice", "email"=>"info@meyer-consulting.net", "display_name"=>"Robert Meyer", "first_name"=>"Robert", "last_name"=>"Meyer"}info@meyer-consulting.netAuf Grund einer Projektanforderung musste ich mich die Tage damit auseinandersetzen, wie man eine ASP.NET Core 2.0 Website und Web API in einem eigenen Prozess als Windows Service bereitstellt.SQL Server 2012: EOMONTH Funktion2012-08-07T06:18:03-05:002012-08-07T06:18:03-05:00meyer-consulting.net/2012/08/07/sql-server-2012-eomonth-funktion<p>Mit dem SQL Server 2012 ist eine neue Datumsfunktion dazu gekommen. Mit EOMONTH ist es möglich sich den letzten Tag des Monats ausgeben zu lassen. Dies ist besonders interessant wenn man Wertebereiche innerhalb eines Monats oder über mehrere Monate Tag genau selektieren möchte.</p> +<p>Auf diesem Weg erreicht man eine sehr leichtgewichtige Anwendung, welche komplett in einem eigenen Prozess unabhängig von dem Betriebssystem und Webserver installiert werden kann. Somit erreicht man bei seiner Produktentwicklung, welchen bei Kunden vor Ort installiert werden muss, eine sehr hohe Flexibilität und ich unabhängig der Umgebung.</p>Robert MeyerAuf Grund einer Projektanforderung musste ich mich die Tage damit auseinandersetzen, wie man eine ASP.NET Core 2.0 Website und Web API in einem eigenen Prozess als Windows Service bereitstellt.SQL Server 2012: EOMONTH Funktion2012-08-07T06:18:03-05:002012-08-07T06:18:03-05:00https://meyer-consulting.net/blog/2012/08/07/sql-server-2012-eomonth-funktion<p>Mit dem SQL Server 2012 ist eine neue Datumsfunktion dazu gekommen. Mit EOMONTH ist es möglich sich den letzten Tag des Monats ausgeben zu lassen. Dies ist besonders interessant wenn man Wertebereiche innerhalb eines Monats oder über mehrere Monate Tag genau selektieren möchte.</p> <p>So wendet man EOMONTH an, um sich den letzten Tag des Monats August im Jahr 2012 ausgegeben zu lassen:</p> @@ -260,7 +260,7 @@ git push <p><img src="/assets/img/blog/2012/eomonth_2.png" alt="settings" /></p> -<p>Es ist nur eine kleiner Erweiterung, aber sie erleichtert doch auf angenehme Art die Arbeit mit TSQL.</p>{"login"=>"sqlpractice", "email"=>"info@meyer-consulting.net", "display_name"=>"Robert Meyer", "first_name"=>"Robert", "last_name"=>"Meyer"}info@meyer-consulting.netMit dem SQL Server 2012 ist eine neue Datumsfunktion dazu gekommen. Mit EOMONTH ist es möglich sich den letzten Tag des Monats ausgeben zu lassen. Dies ist besonders interessant wenn man Wertebereiche innerhalb eines Monats oder über mehrere Monate Tag genau selektieren möchte.“Add STS Reference” in Visual Studio 20122012-07-30T04:57:43-05:002012-07-30T04:57:43-05:00meyer-consulting.net/2012/07/30/add-sts-reference-in-visual-studio-2012<p>Ich habe heute ein Azure Projekt im neuen Visual Studio 2012 angefangen und wollte ACS einbinden. Bei Visual Studio 2010 ging dies sehr einfach über den Menupunkt “Add STS Reference …”.</p> +<p>Es ist nur eine kleiner Erweiterung, aber sie erleichtert doch auf angenehme Art die Arbeit mit TSQL.</p>Robert MeyerMit dem SQL Server 2012 ist eine neue Datumsfunktion dazu gekommen. Mit EOMONTH ist es möglich sich den letzten Tag des Monats ausgeben zu lassen. Dies ist besonders interessant wenn man Wertebereiche innerhalb eines Monats oder über mehrere Monate Tag genau selektieren möchte.“Add STS Reference” in Visual Studio 20122012-07-30T04:57:43-05:002012-07-30T04:57:43-05:00https://meyer-consulting.net/blog/2012/07/30/add-sts-reference-in-visual-studio-2012<p>Ich habe heute ein Azure Projekt im neuen Visual Studio 2012 angefangen und wollte ACS einbinden. Bei Visual Studio 2010 ging dies sehr einfach über den Menupunkt “Add STS Reference …”.</p> <p><img src="/assets/img/blog/2012/sts_1.png" alt="" /></p> @@ -281,7 +281,7 @@ git push </li> </ol> -<p><img src="/assets/img/blog/2012/sts_5.png" alt="" /></p>{"login"=>"sqlpractice", "email"=>"info@meyer-consulting.net", "display_name"=>"Robert Meyer", "first_name"=>"Robert", "last_name"=>"Meyer"}info@meyer-consulting.netIch habe heute ein Azure Projekt im neuen Visual Studio 2012 angefangen und wollte ACS einbinden. Bei Visual Studio 2010 ging dies sehr einfach über den Menupunkt “Add STS Reference …”.Paging mit OFFSET und FETCH im SQL Server 20122012-07-19T00:25:45-05:002012-07-19T00:25:45-05:00meyer-consulting.net/2012/07/19/pagging-mit-offset-und-fetch-im-sql-server-2012<p>Lange hat es gedauert, doch nun beherrscht der SQL Server mit Version 2012 endlich das Paging. Unter Paging versteht man die Festlegung davon wie viele Datensätze pro Seite ausgeben werden sollen. Dies wird besonders bei diversen Webapplikationen benötigt um die Anzahl der geladenen Daten zu verringern.</p> +<p><img src="/assets/img/blog/2012/sts_5.png" alt="" /></p>Robert MeyerIch habe heute ein Azure Projekt im neuen Visual Studio 2012 angefangen und wollte ACS einbinden. Bei Visual Studio 2010 ging dies sehr einfach über den Menupunkt “Add STS Reference …”.Paging mit OFFSET und FETCH im SQL Server 20122012-07-19T00:25:45-05:002012-07-19T00:25:45-05:00https://meyer-consulting.net/blog/2012/07/19/pagging-mit-offset-und-fetch-im-sql-server-2012<p>Lange hat es gedauert, doch nun beherrscht der SQL Server mit Version 2012 endlich das Paging. Unter Paging versteht man die Festlegung davon wie viele Datensätze pro Seite ausgeben werden sollen. Dies wird besonders bei diversen Webapplikationen benötigt um die Anzahl der geladenen Daten zu verringern.</p> <p>Würde die Suche auf einer Website ein Trefferergebnis von 400 Datensätzen betragen, möchte der Nutzer sicherlich nicht alle 400 Datensätze mit einmal auf der Website sehen, sondern z.B. immer nur 20 Stück. Diese 20 Datensätze werden jetzt auf 20 Seiten aufgelistet. Damit der Traffic möglichst gering bleibt, werden auch immer nur die Datensätze der aktuellen Seite geladen. Das nennt man Paging.</p> @@ -318,7 +318,7 @@ git push <p><img src="/assets/img/blog/2012/offset_3.png" alt="" /></p> -<p>Zur Verfügung stehen die Erweiterungen OFFSET und FETCH bereits ab dem SQL Server 2012 Express.</p>{"login"=>"sqlpractice", "email"=>"info@meyer-consulting.net", "display_name"=>"Robert Meyer", "first_name"=>"Robert", "last_name"=>"Meyer"}info@meyer-consulting.netLange hat es gedauert, doch nun beherrscht der SQL Server mit Version 2012 endlich das Paging. Unter Paging versteht man die Festlegung davon wie viele Datensätze pro Seite ausgeben werden sollen. Dies wird besonders bei diversen Webapplikationen benötigt um die Anzahl der geladenen Daten zu verringern.Neuerungen mit SharePoint 20132012-07-17T01:59:37-05:002012-07-17T01:59:37-05:00meyer-consulting.net/2012/07/17/neuerungen-mit-sharepoint-2013<p>Diese Nacht war es endlich soweit und die Microsoft SharePoint 2013 Preview stand, neben Office 2013, zum Download bereit. Natürlich bringt SharePoint 2013 viele neue Features mit. Mit einigen hat man gerechnet, andere kamen ziemlich überraschend. Ich möchte euch hier eine kurze Auflistung der neuen Features zur Verfügung stellen.</p> +<p>Zur Verfügung stehen die Erweiterungen OFFSET und FETCH bereits ab dem SQL Server 2012 Express.</p>Robert MeyerLange hat es gedauert, doch nun beherrscht der SQL Server mit Version 2012 endlich das Paging. Unter Paging versteht man die Festlegung davon wie viele Datensätze pro Seite ausgeben werden sollen. Dies wird besonders bei diversen Webapplikationen benötigt um die Anzahl der geladenen Daten zu verringern.Neuerungen mit SharePoint 20132012-07-17T01:59:37-05:002012-07-17T01:59:37-05:00https://meyer-consulting.net/blog/2012/07/17/neuerungen-mit-sharepoint-2013<p>Diese Nacht war es endlich soweit und die Microsoft SharePoint 2013 Preview stand, neben Office 2013, zum Download bereit. Natürlich bringt SharePoint 2013 viele neue Features mit. Mit einigen hat man gerechnet, andere kamen ziemlich überraschend. Ich möchte euch hier eine kurze Auflistung der neuen Features zur Verfügung stellen.</p> <ul> <li><strong>.NET 4.0 mit SharePoint 2013</strong></li> @@ -340,7 +340,7 @@ git push <p>Herunterladen kann man sich SharePoint 2013 Foundation kostenlos auf der Seite von <a href="http://www.microsoft.com/en-us/download/details.aspx?id=30345">Microsoft</a>. Wer eine MSDN Subscription besitzt, kann sich die größeren Versionen dort herunterladen.</p> -<p>Viel Spaß beim Ausprobieren!</p>{"login"=>"sqlpractice", "email"=>"info@meyer-consulting.net", "display_name"=>"Robert Meyer", "first_name"=>"Robert", "last_name"=>"Meyer"}info@meyer-consulting.netDiese Nacht war es endlich soweit und die Microsoft SharePoint 2013 Preview stand, neben Office 2013, zum Download bereit. Natürlich bringt SharePoint 2013 viele neue Features mit. Mit einigen hat man gerechnet, andere kamen ziemlich überraschend. Ich möchte euch hier eine kurze Auflistung der neuen Features zur Verfügung stellen.Update auf große Datenmengen mit @@ROWCOUNT2012-07-11T03:38:31-05:002012-07-11T03:38:31-05:00meyer-consulting.net/2012/07/11/update-auf-groe-datenmengen-mit-rowcount<p>Häufig steht man vor der Herausforderung in einer sehr großen Tabelle Datensätze zu aktualisieren. Hat diese z.B. wie in meinem Szenario über 10 Millionen Datensätze und einen Trigger der auf Update Commands reagiert, ist es nicht sehr sinnvoll mit einem mal mehr als 1000 Zeilen zu aktualisieren. +<p>Viel Spaß beim Ausprobieren!</p>Robert MeyerDiese Nacht war es endlich soweit und die Microsoft SharePoint 2013 Preview stand, neben Office 2013, zum Download bereit. Natürlich bringt SharePoint 2013 viele neue Features mit. Mit einigen hat man gerechnet, andere kamen ziemlich überraschend. Ich möchte euch hier eine kurze Auflistung der neuen Features zur Verfügung stellen.Update auf große Datenmengen mit @@ROWCOUNT2012-07-11T03:38:31-05:002012-07-11T03:38:31-05:00https://meyer-consulting.net/blog/2012/07/11/update-auf-groe-datenmengen-mit-rowcount<p>Häufig steht man vor der Herausforderung in einer sehr großen Tabelle Datensätze zu aktualisieren. Hat diese z.B. wie in meinem Szenario über 10 Millionen Datensätze und einen Trigger der auf Update Commands reagiert, ist es nicht sehr sinnvoll mit einem mal mehr als 1000 Zeilen zu aktualisieren. Hierbei kann es zu ungewollten Table Locks kommen. Noch problematischer wird es, wenn während des Zeitpunktes des Updates viele Abfragen auf dieser Tabelle ausgeführt werden.</p> <p>Der erste Lösungsansatz bei diesem Problem ist ein eingeschränkter Update Befehl auf 1000 Zeilen. Diese kann man mit einem UPDATE TOP (1000) und ebenso mit dem Befehl SET ROWCOUNT 1000 erreichen (Siehe Beispiele).</p> @@ -351,4 +351,4 @@ Hierbei kann es zu ungewollten Table Locks kommen. Noch problematischer wird es, <p><img src="/assets/img/blog/2012/row_count_2.png" alt="" /></p> -<p>Der gesamte Updatevorgang kann dadurch etwas länger dauern, man minimiert jedoch die Wahrscheinlichkeit von Locks über die ganze Tabelle und erlaubt z.B. Triggern optimaler zu arbeiten.</p>{"login"=>"sqlpractice", "email"=>"info@meyer-consulting.net", "display_name"=>"Robert Meyer", "first_name"=>"Robert", "last_name"=>"Meyer"}info@meyer-consulting.netHäufig steht man vor der Herausforderung in einer sehr großen Tabelle Datensätze zu aktualisieren. Hat diese z.B. wie in meinem Szenario über 10 Millionen Datensätze und einen Trigger der auf Update Commands reagiert, ist es nicht sehr sinnvoll mit einem mal mehr als 1000 Zeilen zu aktualisieren. Hierbei kann es zu ungewollten Table Locks kommen. Noch problematischer wird es, wenn während des Zeitpunktes des Updates viele Abfragen auf dieser Tabelle ausgeführt werden. \ No newline at end of file +<p>Der gesamte Updatevorgang kann dadurch etwas länger dauern, man minimiert jedoch die Wahrscheinlichkeit von Locks über die ganze Tabelle und erlaubt z.B. Triggern optimaler zu arbeiten.</p>Robert MeyerHäufig steht man vor der Herausforderung in einer sehr großen Tabelle Datensätze zu aktualisieren. Hat diese z.B. wie in meinem Szenario über 10 Millionen Datensätze und einen Trigger der auf Update Commands reagiert, ist es nicht sehr sinnvoll mit einem mal mehr als 1000 Zeilen zu aktualisieren. Hierbei kann es zu ungewollten Table Locks kommen. Noch problematischer wird es, wenn während des Zeitpunktes des Updates viele Abfragen auf dieser Tabelle ausgeführt werden. \ No newline at end of file diff --git a/impressum.html b/impressum.html index 7c6be9b..663e74c 100644 --- a/impressum.html +++ b/impressum.html @@ -30,15 +30,15 @@ - - + + +{"description":"Trainer for Mircosoft Azure and Identity/Security. Development from Cloud and Web Solutions.","@type":"WebPage","url":"https://meyer-consulting.net/impressum.html","headline":"Legal Notice","@context":"https://schema.org"} diff --git a/index.html b/index.html index c765e8a..765273f 100644 --- a/index.html +++ b/index.html @@ -30,15 +30,15 @@ - - + + +{"description":"Trainer for Mircosoft Azure and Identity/Security. Development from Cloud and Web Solutions.","@type":"WebSite","url":"https://meyer-consulting.net/","name":"Robert Meyer","headline":"Robert Meyer Consulting","sameAs":["https://twitter.com/roeb","https://facebook.com/roeb2k5","https://xing.com/profile/Robert_Meyer10","https://linkedin.com/in/robert-meyer-332b2b28/","https://github.com/roeb"],"@context":"https://schema.org"} diff --git a/privacy.html b/privacy.html index cf3db3c..543ea1d 100644 --- a/privacy.html +++ b/privacy.html @@ -30,15 +30,15 @@ - - + + +{"description":"Trainer for Mircosoft Azure and Identity/Security. Development from Cloud and Web Solutions.","@type":"WebPage","url":"https://meyer-consulting.net/privacy.html","headline":"Privacy Notice","@context":"https://schema.org"} diff --git a/services.html b/services.html index c67638c..b2e8005 100644 --- a/services.html +++ b/services.html @@ -30,15 +30,15 @@ - - + + +{"description":"Trainer for Mircosoft Azure and Identity/Security. Development from Cloud and Web Solutions.","@type":"WebPage","url":"https://meyer-consulting.net/services.html","headline":"Robert Meyer Consulting","@context":"https://schema.org"}