Subscribe: DotNetGerman Bloggers
http://blogs.dotnetgerman.com/mainfeed.aspx
Added By: Feedage Forager Feedage Grade B rated
Language: German
Tags:
auf  azure  das  die  eine  für  microsoft  mit  net core  net  service  sloader  und  version  via  von  wie  windows 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: DotNetGerman Bloggers

DotNetGerman Bloggers



Alle Blogs von DotNetGerman.com



Copyright: Copyright 2004-2014 DotNetGerman.com
 



npm cheat sheet

Tue, 28 Feb 2017 07:37:12 Z

Da ich selbst node und  npm noch nicht so lange verwende, muss ich hin und wieder einige für mich wichtige Befehle nachschauen. Daher nachfolgend einige npm Befehle. Da ich die Befehle nur unter Windows verwende, kann ich leider nicht sagen ob es da signifikante Unterschiede zur Linux Version gibt, Wenn man dann noch hinter einem […](image)



x.news™ – Die gesamten Nachrichten & Neuigkeiten in einem Tool auf Microsoft Azure

Tue, 28 Feb 2017 07:25:04 Z

x.news information technology gmbh entwickelte mit x.news™ eine prämierte On-Demand Lösung für den modernen digitalen Newsroom, die primär auf der Microsoft Azure Cloud Plattform gehostet wird. x.news™ ist ein innovatives Recherche-System, welches Journalisten die Möglichkeit bietet, viele unterschiedlichste Quellen (Agenturen, Social Media-Portale, Web- sowie interne Quellen) in Echtzeit zu verfolgen, relevante Informationen zu finden, zu...



MeetUp: Up in the air – Serverless Computing mit Azure Functions

Mon, 27 Feb 2017 11:00:29 Z

Datum und Uhrzeit: 2. März 2017 18:00 Uhr | Ort: TechTalk, Leonard-Bernstein Straße 10, Wien Raoul Holzer und Andreas Willich werden vorstellen worum es bei dem Hype geht und wie uns eine Serverless Architektur in Zukunft helfen kann Projekte effektiv umzusetzen. Für das Beispiel werden Azure Functions verwendet. Diese sind Microsofts Angebot zur Implementierung einer "Serverless" Architektur.



Einführung in Node, Folge 8: Events auslösen und verarbeiten

Mon, 27 Feb 2017 09:47:00 +0100

Für die asynchrone Programmierung verwendet Node das Konzept der Callbacks. Allerdings gibt es Szenarien, wo andere Sprachmerkmale vorzuziehen sind. Das gilt beispielsweise dann, wenn ohne voriges Zutun der Entwickler etwas einfach passiert. Zu dem Zweck kennt Node Events. Wie funktionieren sie, und was gilt es zu beachten?



Links for 2017-02-26 [del.icio.us]

Mon, 27 Feb 2017 00:00:00 -0800

(image)



Offlinefähige Browser-Anwendungen mit Progressive Web Apps und Angular - Unterlagen von Vortrag auf BASTA! Spring 2017 in Frankfurt

Sun, 26 Feb 2017 00:00:00 Z

Nachfolgend die Folien und Beispiele von meinem Vortrag "Offlinefähige Browser-Anwendungen mit Progressive Web Apps und Angular", den ich auf der BASTA! Spring 2017 in Frankfurt gehalten habe. Das Beispiel zeigt die folgenden Aspekte:

  • PWA with Angular 2
  • Bundling Service Worker and App with webpack
  • Caching with Service Worker and the Service Worker Toolbox
  • Storing data with PouchDB (which uses IndexedDb, WebDb or LocalStorage)
  • AppShell Pattern with Caching to quickly provide value to the user
  • Web App Manifest and a Fallback using Meta-Tags to install the App to the Home Screen
  • Background Synchronisation with Service Workers
  • Push Notifications with Service Workers

Downloads:




Links for 2017-02-25 [del.icio.us]

Sun, 26 Feb 2017 00:00:00 -0800

(image)



Links for 2017-02-24 [del.icio.us]

Sat, 25 Feb 2017 00:00:00 -0800

(image)



Fehler in ATLTHUNK.DLL führt auf Windows 10 (64bit) unter bestimmten Umständen zu zufälligen Crashes von Anwendungen

Fri, 24 Feb 2017 14:29:53 Z

Wer es schnell mag, kann gleich den Beitrag und technische Details auf Stack Overflow lesen: http://stackoverflow.com/questions/41741448/random-crashes-on-windows-10-64bit-with-atl-subclassing Hier möchte ich etwas ausführlicher, die Story dazu erzählen, eine Story aus dem ganz „normalen“ Leben eines Programmierers 😉 Letztes Jahr stellen wir in der Firma produktiv von VC-2013 auf VC-2015 um. Wir haben eine relativ große Anwendung, die […]



Hello, Android!

Fri, 24 Feb 2017 05:00:42 Z

In diesem Beitrag wollen wir uns genauer mit dem Thema Xamarin.Android beschäftigen. Du baust deine erste Xamarin.Android Anwendung und entwickelst ein Verständnis der Grundlagen der Android-Anwendung Entwicklung mit Xamarin. (Episode 2) Dieser Beitrag ist Teil einer Xamarin University Serie und erscheint immer am Freitag.



Links for 2017-02-23 [del.icio.us]

Fri, 24 Feb 2017 00:00:00 -0800

(image)



Es gab wichtige Änderungen auf unserer Facebookseite!

Thu, 23 Feb 2017 09:58:20 Z

Ab heute sind wir unter dem neuen Namen Microsoft Developer auf Facebook gelistet. und zertifiziert. Die neue URL lautet: https://www.facebook.com/MicrosoftDeveloper.AT/.



async und await für Node

Thu, 23 Feb 2017 09:17:00 +0100

Gestern wurde Node in der Version 7.6 veröffentlicht. Was zunächst lediglich nach einem unbedeutenden Versionssprung klingt, ist tatsächlich ein bedeutender Schritt für jeden JavaScript-Entwickler. Die neue Version enthält nämlich die beiden aus C# bekannten Schlüsselwörter async und await. Wie funktionieren sie?



Creating a Word document OutputFormatter in ASP.NET Core

Thu, 23 Feb 2017 00:00:00 Z

In one of the ASP.NET Core projects we did in the last year, we created an OutputFormatter to provide a Word documents as printable reports via ASP.NET Core Web API. Well, this formatter wasn't done by me, but done by a fellow software developer Jakob Wolf at the yooapps.com. I told him to write about it, but he hadn't enough time to do it yet, so I'm going to do it for him. Maybe you know about him on Twitter. Maybe not, but he is one of the best ASP.NET and Angular developers I ever met. About OutputFormatters In ASP.NET you are able to have many different formatters. The best known built-in formatter is the JsonOutputFormatter which is used as the default OutputFormatter in ASP.NET Web API. By using the AddMvcOptions() you are able to add new Formatters or to manage the existing formatters: services.AddMvc() .AddMvcOptions(options => { options.OutputFormatters.Add(new WordOutputFormatter()); options.FormatterMappings.SetMediaTypeMappingForFormat( "docx", MediaTypeHeaderValue.Parse("application/ms-word")); }) As you can see in the snippet above, we add the Word document formatter (called WordOutputFormatter to provide the Word documents if the requested type is "application/ms-word". You are able to add whatever formatter you need, provided on whatever media type you want to support. Let's have a look how a output formatter looks like: public class MyFormatter : IOutputFormatter { public bool CanWriteResult(OutputFormatterCanWriteContext context) { // check whether to write or not throw new NotImplementedException(); } public async Task WriteAsync(OutputFormatterWriteContext context) { // write the formatted contents to the response stream. throw new NotImplementedException(); } } You have one method to check whether the data can be written to the expected format or not. The other async method does the job to format and output the data to the response stream, which comes with the context. This way needs to do some things manually. A more comfortable way to implement an OutputFormatter is to inherit from the OutputFormatter base class directly: public class WordOutputFormatter : OutputFormatter { public string ContentType { get; } public WordOutputFormatter() { ContentType = "application/ms-word"; SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ContentType)); } // optional, but makes sense to restrict to a specific condition protected override bool CanWriteType(Type type) { if (type == null) { throw new ArgumentNullException(nameof(type)); } // only one ViewModel type is allowed return type == typeof(DocumentContentsViewModel); } // this needs to be overwritten public override Task WriteResponseBodyAsync(OutputFormatterWriteContext context) { // Format and write the document outputs here throw new NotImplementedException(); } } The base class does some things for you. For example to write the correct HTTP headers. Creating Word documents To create Word documents you need to add a reference to the Open XML SDK. We used the OpenXMLSDK-MOT with the version 2.6.0, which cannot used with .NET Core. This is why we run that specific ASP.NET Core project on .NET 4.6. Version 2.7.0 is available as a .NET Standard 1.3 library and can be used in .NET Core. Unfortunately this version isn't yet available in the default NuGet Feed. To install the latest Version, follow the instructions on GitHub: https://github.com/officedev/open-xml-sd Currently there is a mess with the NuGet package IDs and versions on NuGet and MyGet. Use the MyGet feed, mentioned on the GitHub page to install the latest version. Th[...]



Buch: Langlebige Software-Architekturen

Wed, 22 Feb 2017 19:32:20 Z

Architekturanalysen und Lösungsansätze für eine Verbesserung gehören nicht zu den einfachsten Themen in der Softwareentwicklung. In diesem Beitrag stelle ich ein Buch vor, welches hier tatkräftig unterstüzt.

The post Buch: Langlebige Software-Architekturen appeared first on Norbert Eder.




Hier lernst Du kostenlos wie Du mit C#/XAML programmierst! (Update)

Wed, 22 Feb 2017 14:00:03 Z

Du interessierst dich für die Entwicklung mit Xamarin? Du willst eine mobile Anwendung für alle mobilen Betriebssysteme entwickeln? Du verfolgst zufällig meine neue Xamarin Serie auf Codefest? In diesem Beitrag wollen wir dir eine kurze Zusammenfassung geben wo du am Besten und kostenlos lernst mit C#/XAML zu programmieren. Ausgewählte Kurse: Programmieren für Beginner mit C#, Xamarin für Anfänger, Spielerisch C# Lernen mit Windows 10



includes-Funktion in ES2016: Zurück zu den Grundlagen

Wed, 22 Feb 2017 09:22:00 +0100

Eine der beiden Neuerungen von ES2016 ist die includes-Funktion, mit der sich ermitteln lässt, ob ein Array ein gegebenes Element enthält. Zuvor musste man auf die indexOf-Funktion und den binären NOT-Operator zurückgreifen. Wie und warum hat das funktioniert?



Durch die Schallmauer: Hochperformante Anwendungen mit Angular - Unterlagen von Vortrag auf der BASTA! Spring 2017 in Frankfurt

Wed, 22 Feb 2017 00:00:00 Z

Nachfolgend findet man die Unterlagen meines Vortrags "Durch die Schallmauer: Hochperformante Anwendungen mit Angular" von der BASTA! Spring 2017 in Frankfurt. Die Beispiele zeigen:

  • Einsatz von Lazy Loading
  • Einsatz von Preloading
  • Datenbindungsperformance mit OnPush
  • AOT und Tree Shaking
  • Caching mit Service Worker
  • Serverside Rendering (Angular Universal)

Downloads:




Links for 2017-02-21 [del.icio.us]

Wed, 22 Feb 2017 00:00:00 -0800

(image)



Der Router in Angular im Detail betrachtet: Unterlagen von Vortrag auf BASTA! Spring 2017 in Frankfurt

Wed, 22 Feb 2017 00:00:00 Z

Nachfolgend die Unterlagen zu meinem Vortrag "Der Router in Angular im Detail betrachtet" von der BASTA! Spring 2017 in Frankfurt. Das Beispiel zeigt:

  • Hierarchisches Routing mit Child Routes
  • Aux Routes
  • Guards
  • Lazy Loading

Downloads:




[Video] Softwareentwicklung ohne Abhängigkeiten – OOP 2017

Tue, 21 Feb 2017 09:56:33 Z

Auf der diesjährigen OOP in München habe ich meinen Vortrag zum Thema Softwareentwicklung ohne Abhängigkeiten gehalten.

Der Beitrag [Video] Softwareentwicklung ohne Abhängigkeiten – OOP 2017 erschien zuerst auf Refactoring Legacy Code.




MARMIND – Die innovative Marketing Cloud Lösung auf Microsoft Azure

Tue, 21 Feb 2017 08:24:52 Z

Wie erzeugen wir Aufmerksamkeit für unsere Produkte? Wo sollen wir unser Budgets investieren? Wie schaffen wir unseren täglichen Arbeitsaufwand? – Herausforderungen, vor denen Marketer jeden Tag stehen. Was ist MARMIND? MARMIND ist eine Marketing Software Lösung auf Microsoft Azure. MARMIND verbindet Kampagnen, Budgets und Ergebnissen zu einem zentralen Marketingplan. Mehrmehrt & Vorteile Kontrolle über Ihre...



Links for 2017-02-20 [del.icio.us]

Tue, 21 Feb 2017 00:00:00 -0800

(image)



Per Code mit TFS-WorkItems arbeiten

Mon, 20 Feb 2017 12:56:30 Z

Auf den TFS kann man ganz gut über eine API zugreifen. Dieser Beitrag zeigt, wie man WorkItems manipulieren kann.

The post Per Code mit TFS-WorkItems arbeiten appeared first on Norbert Eder.




Einführung in Node, Folge 7: Callbacks verstehen

Mon, 20 Feb 2017 11:47:00 +0100

In Node gehört der Umgang mit asynchronem Code zum Alltag. Dazu greift man in der Regel auf den Einsatz von Callbacks zurück. Doch der Umkehrschluss gilt nicht: Nicht alle Callbacks sind asynchron. Woran erkennt man asynchrone Callbacks, und worauf gilt es bei ihrer Verwendung zu achten?



Neu in Visual Studio und TFS "15" / 2017: Neues fürs Testen in Update 1

Mon, 20 Feb 2017 05:00:26 Z

In vorhergehenden Beiträgen unserer Serie zum Thema “Neu in TFS und Visual Studio 2017” wurden bereits zahlreiche neue Features für den Bereich des Testens beschrieben. Vor wenigen Tagen wurde nun wurde RC2 für Update 1 veröffentlicht, welcher wiederum zahlreiche Neuerungen mit sich bringt. Auf welche neuen Möglichkeiten Sie sich freuen dürfen, möchten wir Ihnen in diesem […]



Links for 2017-02-19 [del.icio.us]

Mon, 20 Feb 2017 00:00:00 -0800

(image)



Demo-Projekt vom Angular Workshop, BASTA! Spring 2017 in Frankfurt

Mon, 20 Feb 2017 00:00:00 Z

Nachfolgend das durchgängige Demo-Projekt aus dem heutigen Workshop zu Angular von der BASTA! Spring 2017 in Frankfurt:




Eine Web- und Cross-Plattform-Desktop-Anwendung mit HTML, TypeScript und Angular

Fri, 17 Feb 2017 14:38:00 +0100

Das Architekturbeispiel "MiracleList" läuft sowohl im Browser als auch als Desktop-Client auf Windows, Linux und macOS sowie Android und iPhone/iPad.



So entwickelst Du mobile Anwendungen für Windows Mobile, iOS und Android!

Fri, 17 Feb 2017 14:36:57 Z

Du wolltest schon immer eine mobile Anwendung für Windows Mobile, iOS und Android entwickeln? Wie Du Zeit sparen kannst und dabei aber auf kein Feature der jeweiligen Plattform verzichten musst werden wir Dir hier in diesem Beitrag erklären. (Episode 1) Dieser Beitrag ist Teil einer Xamarin University Serie und erscheint immer am Freitag.



Keine Karten für die Build bekommen? Hier kannst Du die Build kostenlos sehen!

Thu, 16 Feb 2017 12:44:42 Z

Der Kartenverkauf hat begonnen und schon sind alle Karten ausverkauft! Keine Karten für die Build bekommen? Dann haben wir für euch genau das Richtige! Datum und Uhrzeit: 10. Mai 2017 | 17:15 Uhr – 20:30 Uhr



Public IP Addresses of Azure Datacenters

Thu, 16 Feb 2017 07:55:21 Z

For all of you being interested in IP address ranges of Microsoft Azure Datacenters (for setting up firewall configuration etc.), Microsoft publishes lists of all public IP address ranges, ready to be downloaded: Microsoft Azure Datacenter IP Rangeshttps://www.microsoft.com/en-gb/download/details.aspx?id=41653 Azure Datacenter IP Ranges in Germanyhttps://www.microsoft.com/en-us/download/details.aspx?id=54770 Azure Datacenter IP Ranges in Chinahttps://www.microsoft.com/en-us/download/details.aspx?id=42064



HTTP/2 in Node

Wed, 15 Feb 2017 09:37:00 +0100

Alle gängigen Webbrowser unterstützen inzwischen das HTTP/2-Protokoll. Auch ohne besondere Vorkehrungen ist das Protokoll für Webentwickler interessant, beispielsweise wegen des Bündelns von Verbindungen. Wie lässt sich eine Node-Anwendung auf HTTP/2 umstellen?



Microsoft Azure Marketplace

Wed, 15 Feb 2017 07:30:12 Z

Haben Sie schon vom Microsoft Azure Marketplace gehört? Der Azure Marketplace ist Ihr Onlineshop für Tausende von zertifizierten Open Source- und Community-Softwareanwendungen, Entwicklerdiensten und Daten - allesamt vorkonfiguriert für Microsoft Azure.



Kostenloses Webinar: Native Cross-Platform Entwicklung mit Xamarin

Tue, 14 Feb 2017 16:05:37 Z

Wir dürfen vorstellen: Ein kostenloses Webinar als Einführung in die Entwicklung mit Xamarin. Eine gemeinsame Code-Basis für iOS, Android und Windows – der Traum eines jeden Entwicklers wird wahrer denn je. Mit modernen Technologien wie Xamarin wird es möglich, 100% native Apps für alle Plattformen zu erstellen und so viel Code wie möglich zwischen diesen...



Create NuGet packages with Cake

Mon, 13 Feb 2017 23:45:00 Z

This blogpost is a follow up to these Cake (C# Make) related blogpost: Building with Cake Build & run xUnit tests with Cake Scenario Let’s say we have this project structure. The “Config”, “Result” and “Engine” projects contains a corresponding .nuspec, like this: Sloader.Config 0.1.0 Sloader.Config Code Inside Team Code Inside Team https://github.com/Code-Inside/Sloader/blob/master/LICENSE https://github.com/Code-Inside/Sloader false Sloader Config ## Version 0.1 ## Init Copyright 2017 Sloader Nothing fancy - pretty normal NuGet stuff. Goal The goal is to create a NuGet package for each target project with Cake. build.cake The usage in Cake is pretty much the same as with the normal nuget.exe pack command The sample only shows the actual cake target - see the older blogposts for a more complete example: Task("BuildPackages") .IsDependentOn("Restore-NuGet-Packages") .IsDependentOn("RunTests") .Does(() => { var nuGetPackSettings = new NuGetPackSettings { OutputDirectory = rootAbsoluteDir + @"\artifacts\", IncludeReferencedProjects = true, Properties = new Dictionary { { "Configuration", "Release" } } }; MSBuild("./src/Sloader.Config/Sloader.Config.csproj", new MSBuildSettings().SetConfiguration("Release")); NuGetPack("./src/Sloader.Config/Sloader.Config.csproj", nuGetPackSettings); MSBuild("./src/Sloader.Result/Sloader.Result.csproj", new MSBuildSettings().SetConfiguration("Release")); NuGetPack("./src/Sloader.Result/Sloader.Result.csproj", nuGetPackSettings); MSBuild("./src/Sloader.Engine/Sloader.Engine.csproj", new MSBuildSettings().SetConfiguration("Release")); NuGetPack("./src/Sloader.Engine/Sloader.Engine.csproj", nuGetPackSettings); }); Easy, right? The most interesting part here is the NuGetPack command. Before we invoke this command we need to make sure that we build the last recent version - to enforce that we just rebuild each project in release mode. Result The console output should make the flow pretty clear: PS C:\Users\Robert\Documents\GitHub\Sloader> .\build.ps1 -t BuildPackages Preparing to run build script... Running build script... Analyzing build script... Processing build script... Installing tools... Compiling build script... ======================================== Clean ======================================== Executing task: Clean Cleaning directory C:/Users/Robert/Documents/GitHub/Sloader/artifacts Finished executing task: Clean ===[...]



Pläne und Bugliste für die Windows Universal Platform

Mon, 13 Feb 2017 08:13:00 +0100

Microsoft gewährt für die Windows Universal Apps in Windows 10 erstmals Einblicke in das eigene Backlog.



Einführung in Node, Folge 6: Auf das Dateisystem zugreifen

Mon, 13 Feb 2017 07:27:00 +0100

Kaum eine Anwendung kommt ohne Zugriff auf das Dateisystem aus. Für das Laden von JavaScript- und JSON-Dateien lässt sich zwar die require-Funktion verwenden, doch für andere Dateitypen werden andere Funktionen benötigt. Wie funktioniert das, und wie geht man mit Pfaden, Encodings & Co. um?



Aktuelle Fachartikel aus der dotnetpro und windows.developer

Mon, 13 Feb 2017 05:00:24 Z

In den Ausgaben der dotnetpro vom Januar (01/2017) wie auch der windows.developer (01/2017) finden Sie Artikel von der AIT. Im Beitrag „Zwei Lösungen eine App“ geht es um das Zusammenspiel von Xamarin in Verbindung mit Azure, die anhand von Beispielen die einfache Umsetzung zeigt. Im Artikel der dotnetpro hingegen können Sie sich über den praktischen […]



Lazy Loading [like a Viking] with Angular - Slides and samples from my talk at ngVikings in Copenhagen, Feb 2017

Sat, 11 Feb 2017 00:00:00 Z

Please find below the slides and samples from my talk about lazy loading with Angular at ngVikings in Copenhagen (Feb 2017). It shows:
  • Lazy Loading
  • Preloading
  • Custom Preloading Strategies
  • Lazy Loading and Shared Modules

Downloads:



Konferenztermine für .NET- und Webentwickler 2017

Fri, 10 Feb 2017 09:19:00 +0100

Eine Übersicht der Veranstaltung für .NET- und Webentwickler in 2017.



BrowserLink causes an error in a new ASP.NET Core web

Fri, 10 Feb 2017 00:00:00 Z

Using the latest bits of Visual Studio 2017 and the latest SDK of .NET Core, you will possibly get an error while starting your ASP.NET Core Web in Visual Studio 2017 or using dotnet run.

In Visual Studio 2017 the browser opens on pressing F5, but with wired HTML code in the address bar. Debugging starts and stops a few seconds later. Using the console you'l get a more meaningful error message:

(image)

This error means, something is missing the system.runtime.dll ("System.Runtime, Version=4.2.0.0") which is not referenced or used somewhere directly. I had a deeper look into the NuGet references and couldn't found it.

Because I often had problems with BrowserLink in the past, I removed the NuGet reference from the project and all worked fine. I added it again, to be sure that the removal didn't clean up anything. The error happened again.

It seams that the current Version of BrowserLink is referencing a library which is not supported by the app. Remove it, if you get the same or a similar error.

BrowserLink in general is a pretty cool feature, it refreshes the browser magically if anything changes on the server. With this tool, you are able to edit your CSS files and preview it directly in the browser without doing a manual refresh. It is a VisualStudio Add-in and uses NuGet-Packages to extend your app to support it.

(image)



Neue, regelmäßige Azure News auf der Microsoft TechWiese

Thu, 09 Feb 2017 13:13:16 Z

Nachdem ich selbst leider nicht mehr die zeitliche Kapazität habe, eine regelmäßige Azure-News-Serie zu unterhalten, freut es mich umso mehr, dass es nun tollen Ersatz gibt: Die… Azure News on Mondayauf der Microsoft TechWiese und dem IT Pro Hub Meine Kollegen rund um Markus Zeischke listen dort jeden Montag die aktuellen News zu Azure und...



Datum in Batch-Dateien verarbeiten

Thu, 09 Feb 2017 11:25:48 Z

In Batch-Dateien bzw. der Konsole im Allgemeinen kann mit Datumswerten gearbeitet werden. Dieser Beitrag zeigt wie eine Formatierung möglich ist.

The post Datum in Batch-Dateien verarbeiten appeared first on Norbert Eder.




Docker for AWS lokal steuern

Wed, 08 Feb 2017 09:12:00 +0100

Mit Docker for AWS fällt das Einrichten eines Docker-Swarm-Clusters in der Cloud leicht. Allerdings lässt sich Docker von Haus aus nur lokal ansprechen, man muss sich also stets zunächst per SSH anmelden, was einige Nachteile mit sich bringt. Wie lässt sich das besser lösen?



Using Dependency Injection in .NET Core Console Apps

Wed, 08 Feb 2017 00:00:00 Z

The Dependency Injection (DI) Container used in ASP.NET Core is not limited to ASP.NET Core. You are able to use it in any kind of .NET Project. This post shows how to use it in an .NET Core Console application. Create a Console Application using the dotnet CLI or Visual Studio 2017. The DI Container is not available by default, bit the IServiceProvider is. If you want to use an Custom or third party DI Container, you should provide an implementation if an IServiceProvider, as an encapsulation of a DI Container. In this post I want to use the DI Container used in the ASP.NET Core projects. This needs an additional NuGet package "Microsoft.Extensions.DependencyInjection" (currently it is version 1.1.0) Since this library is a .NET Standard Library, it should also work in a .NET 4.6 application. You just need to add a reference to "Microsoft.Extensions.DependencyInjection" After adding that package we can start to use it. I created two simple classes which are dependent to each other, to show the how it works in a simple way: public class Service1 : IDisposable { private readonly Service2 _child; public Service1(Service2 child) { Console.WriteLine("Constructor Service1"); _child = child; } public void Dispose() { Console.WriteLine("Dispose Service1"); _child.Dispose(); } } public class Service2 : IDisposable { public Service2() { Console.WriteLine("Constructor Service2"); } public void Dispose() { Console.WriteLine("Dispose Service2"); } } Usually you would also use interfaces and create the relationship between this two classes, instead of the concrete implementation. Anyway, we just want to test if it works. In the static void Main of the console app, we create a new ServiceCollection and register the classes in a transient scope: var services = new ServiceCollection(); services.AddTransient(); services.AddTransient(); This ServiceCollection comes from the added NuGet package. Your favorite DI container possibly uses another way to register the services. You could now share the ServiceCollection to additional components, who wants to share some more services, in the same way ASP.NET Core does it with the AddSomething (e. g. AddMvc()) extension methods. Now we need to create the ServiceContainer out of that collection: var provider = services.BuildServiceProvider(); We can also share the ServiceProvider in our application to retrieve the services, but the proper way is to use it only on a single entry point: using (var service1 = provider.GetService()) { // so something with the class } Now, let's start the console app and look at the console output: As you can see, this DI container is working in any .NET Core app.[...]



Build & run xUnit tests with Cake

Tue, 07 Feb 2017 23:45:00 Z

Last year I already covered the basic usage of Cake, which stands for “C# Make”. This time we want to build and run xUnit tests with Cake. Scenario Let’s say we have this project structure. Be aware that all our tests have the suffix “Tests” in the project name. The files are organized like this, so we have all “Tests” in a “tests” folder and the actual code under “src”: src/Sloader.Config src/Sloader.Engine src/Sloader.Hosts.Console src/Sloader.Result tests/Sloader.Config.Tests tests/Sloader.Engine.Tests tests/Sloader.Result.Tests .gitignore build.cake build.ps1 LICENSE Sloader.sln Goal Now we want to build all tests projects and run them with the xUnit console runner. Be aware that there are multiple ways of doing it, but I found this quite good. build.cake #tool "nuget:?package=xunit.runner.console" ////////////////////////////////////////////////////////////////////// // ARGUMENTS ////////////////////////////////////////////////////////////////////// var target = Argument("target", "Default"); var configuration = Argument("configuration", "Release"); ////////////////////////////////////////////////////////////////////// // PREPARATION ////////////////////////////////////////////////////////////////////// // Define directories. var artifactsDir = Directory("./artifacts/"); var rootAbsoluteDir = MakeAbsolute(Directory("./")).FullPath; ////////////////////////////////////////////////////////////////////// // TASKS ////////////////////////////////////////////////////////////////////// Task("Clean") .Does(() => { CleanDirectory(artifactsDir); }); Task("Restore-NuGet-Packages") .IsDependentOn("Clean") .Does(() => { NuGetRestore("./Sloader.sln"); }); Task("Build") .IsDependentOn("Restore-NuGet-Packages") .Does(() => { }); Task("BuildTests") .IsDependentOn("Restore-NuGet-Packages") .Does(() => { var parsedSolution = ParseSolution("./Sloader.sln"); foreach(var project in parsedSolution.Projects) { if(project.Name.EndsWith(".Tests")) { Information("Start Building Test: " + project.Name); MSBuild(project.Path, new MSBuildSettings() .SetConfiguration("Debug") .SetMSBuildPlatform(MSBuildPlatform.Automatic) .SetVerbosity(Verbosity.Minimal) .WithProperty("SolutionDir", @".\") .WithProperty("OutDir", rootAbsoluteDir + @"\artifacts\_tests\" + project.Name + @"\")); } } }); Task("RunTests") .IsDependentOn("BuildTests") .Does(() => { Information("Start Running Tests"); XUnit2("./artifacts/_tests/**/*.Tests.dll"); }); ////////////////////////////////////////////////////////////////////// // TASK TARGETS ////////////////////////////////////////////////////////////////////// [...]



So stellst du das Target-Framework in großen .NET-Solutions schnell um

Tue, 07 Feb 2017 11:50:50 Z

Ein Retarget der .NET Framework-Version kann bei großen Solutions viel Aufwand bedeuten. Dieser Beitrag hilft Zeit zu sparen.

The post So stellst du das Target-Framework in großen .NET-Solutions schnell um appeared first on Norbert Eder.




HoloLens: Evaluierung der 3D Grafikleistung

Tue, 07 Feb 2017 08:15:47 Z

Im Gegensatz zu normalen Desktopanwendungen ist die Bildwiederholungsrate bei Virtual und Augmented Reality Anwendungen kritisch. Je geringer die Bildwiederholungsrate ist, desto stärker hängt das virtuelle Bild der Realität nach. Dieser Effekt führt zur sogenannten Simulator Sickness. Um virtuelle Anwendungen über längere Zeitspannen anstatt nur für kurze Tests zu verwenden ist eine konstant hohe Bildwiederholungsrate deshalb von hoher Wichtigkeit. Im genauen Gegenteil dazu stehen die hoch detaillierten Modelle und komplexen Shader wie sie heute Standardmäßig verwendet werden. In diesem Blogpost wird gezeigt wie viel grafische Rechenleistung in der Microsoft HoloLens steckt. Die Ergebnisse sollen eine Größenordnung für die Konzeption von Anwendungen für die HoloLens bieten.



Neuer Server neues Glück – Blog Umzug ist vollzogen

Mon, 06 Feb 2017 16:08:54 Z

Nachdem es lange Zeit "sehr" still rund um meinen Blog war, möchte ich den gerade vollzogenen Umzug meines Blog auf einen neuen Server auch dazu nutzen wieder regelmäßig zu bloggen. Mit dem Umzug auf den neuen Server habe ich auch gleich das Zertifikat Thema aktualisiert. Ab sofort setze ich hier im Blog ein Zertifikat von Letsencrypt ein.