Samstag, 24. Februar 2024

Werbung auf dem Blog abgestellt


Die AdSense auf meinem Blog hatte ich mir letzten nochmal angesehen und muss sagen, dass Werbung mich nervt. Und das so sehr, dass ich Adsense entfernt habe. Den mit dem Popup Ähnlichen Werbung und Werbebanner zwischen den Blogpost empfinde ich als sehr penetrant und ist oft ein Grund, warum ich einige Blogs und Webseiten verlasse.

Brauche ich AdSense
Nicht wirklich. Damals wollte ich sehen, ob man damit Geld verdienen kann. Ja das geht, aber nach über 10 Jahren habe ich 24 € eingenommen. Ausgezahlt wird erst ab einer bestimmten Summe, ich glaube mit 70 € werden die Einnahmen ausgezahlt. Wenn das so bei mir bleibt, habe ich zum Renteneintritt meine erste Auszahlung. 
Ok, ich poste nicht regelmäßig und meine Reichweite schöpfe ich nicht aus. Da ist noch Potenzial nach oben, mit dem ich die Zielsumme schneller erreichen könnte.

AdSense kann man einstellen
Ja das kann man einstellen und das hatte ich auch bereits so angepasst, dass nur oben und einen Seitenbanner erschien. Das fand ich ok. OK fand ich das nicht, als ich jemanden meinem Blog zeigte, dass sich ein Popup Ähnliche Werbung erschien, den ich nicht zugestimmt habe.
Und nachdem ich das Design geändert habe, war das so viel Werbung zu sehen, dass ich keine Notwendigkeit darin sah, AdSense weiter noch zu verwenden. Haben wir im Alltag eh schon zu viel Werbung?

Fazit
Wir wollen alle gerne an unseren Werken etwas verdienen. Aber wir wollen den Nutzer auch nicht vergraulen. Dezent und Sinnvolle Werbung ist in Ordnung, aber sobald eine Webseite voll mit Werbebannern ist, frage ich mich immer als erstes, wie seriös ist diese Webseite. Ab dem Punkt überlegt der Nutzer, sowie ich, ob ich die Webseite verlasse und weitersuche. 
Ich befürchte immer auf einer Webseite mit zu viel Werbung, dass man sich verklickt und sich einen Virus einfangen könnte.

Samstag, 10. Februar 2024

Tool Lagerverwaltung (Teil 7) Projekt stand

Im Januar hatte ich den Blog Post geschrieben, in dem ich das Problem mit der Resource aus andere Assembly gelöst hatte. Die Lösung war peinlich einfach gewesen, aber ich denke, das vielleicht die Information den einen oder anderen weiterhelfen kann.

Aber kommen wir zu dem Tool für Lagerverwaltung, das auf Grund erhöhten Aufwand bei meiner Arbeit, die ich bei meinem Kunden aktuell habe. Ein Thema, über das ich in meinem Zukünftigen Buch schreiben werde, wenn ich genug Erfahrungen aus den Projekten zusammengetragen und Humorvoll ausgearbeitet habe.

 

Aber kommen wir zu dem eigentlich Thema für heute. Wo stehe ich gerade mit dem Projekt?

 

Benötigt

  • Github
  • Visual Studio 2022
  • .NET 7 (oder höher)

 

Zusammenfassen

Was sind meine nächsten Ziele, damit ich das Tool weiter entwickeln kann und welche Funktionen kommen in das Codexzier Application Framework.

 

Aktueller Stand

  • Die Solution mit mehrere Projekten Inhalten ist da.
  • Das UI Projekt selbst ist noch in WPF. Beim letzten mal wurde nur das Codexzier Application Framework für .NET MAUI angelegt.
  • In den Issues habe ich nur die eine Aufgabe Konzept ausschreiben.
  • Das Konzept selbst steht noch nicht im Wiki und muss noch als eigenes Kapitel abgelegt werden.
  • Eine Wiki in Github anlegen für das Tool ist auch schon angelegt. Das andere Wiki war für das Codexzier Application Framework für WPF und eine neue Ausführung mit .NET MAUI ist offen.

 

Wo fange ich an?

Eigentlich worauf ich Lust habe, aber ich kann nicht alles auf einmal erledigen. Also Entwickle ich die Grundfunktionalitäten, die ich allgemein brauche und die ebenfalls für das Tool relevant sind, aber auch für meine anderen Pojekte, über die ich auch offen habe.

 

Ich brauche allgemein

  • Die Projekte in der Solution aktualisieren nach .NET 8
  • Eine Druckfunktion
  • Style anlegen für Datagrid

 

Kleine Schritte

Zeitlich bin ich viel eingebunden. Wer ist das nicht, wenn man Beruflich mehr als 40 Stunden arbeitet und darüber noch eine Familie hat, mit der man gerne Zeit verbringt. Eigentlich kann ich die Privaten Projekte lassen und auch das schreiben eines Blogpost lassen. Dennoch müssen wir hin und wieder Dinge erlernen und ich lerne durch Probieren und darüber schreiben.

Montag, 5. Februar 2024

Problem bei der Entwicklung mit MS Office Interop


So ganz habe ich nicht verstanden warum das Hinzufügen des Nuget Paket Microsift.Office.Interop.Word (andere Office Interop Pakete) nicht ausreicht. Nach dem ich das Paket hinzugefügt habe und versucht habe nur die Application zu instanziieren, bekam ich einen Ausnahmefehler.

 

Verwendete Umgebung

  • Windows 11
  • Visual Studio 2022
  • Office365 Installation

 

Nur zum laufen bringen

Die Consolen Anwendung soll eine Instanz von Word starten.

 

Die Variante, die nicht geht

Zur Vollständigkeit, wie ich zu dem Ausnahmefehler kam, bei der Verwendung des NuGet Pakets.

 


Und zum Testen ein kurzer Code Schnipsel, der eigentlich ausführbar sein sollte.

 using Microsoft.Office.Interop.Word;  
 Console.WriteLine("Start office application! Solution 1");  
 var app = new Application  
 {  
   Visible = true  
 };  
 Console.WriteLine("Office application started!");  
 Console.WriteLine("Press any key to close the application!");  
 Console.ReadLine();  
 // close the application  
 app.Quit();  

Die Assembly Datei konnte nicht gefunden werden, aber ich konnte nicht erkennen woran das lag. Die zu verwendete Assembly landet nach dem Kompilieren ebenfalls im selben Ordner.

 System.IO.FileNotFoundException  
  HResult=0x80070002  
  Message=Could not load file or assembly 'office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'. Das System kann die angegebene Datei nicht finden.  
  Source=<Cannot evaluate the exception source>  
  StackTrace:  
 <Cannot evaluate the exception stack trace>  

 

Alternative Lösung

Statt das NuGet Packet zu verwenden, wird bereits auf eine installierte Bibliothek zugegriffen.



Kompiliert und gestartet wird wieder mit dem selben Code Schnipsel.

 using Microsoft.Office.Interop.Word;  
 Console.WriteLine("Start office application! Solution 2");  
 var app = new Application  
 {  
   Visible = true  
 };  
 Console.WriteLine("Office application started!");  
 Console.WriteLine("Press any key to close the application!");  
 Console.ReadLine();  
 // close the application  
 app.Quit();  

Wird die Anwendung ausgeführt, sollte sich die Word Anwendung ohne Seite starten.

 


Drück mit der Consolen Anwendung eine Taste, wird der Schließen Befehl ausgeführt und die Word Anwendung sollte sich dann schließen.

 

Warum geht das (nicht)?

Das habe ich mich auch gefragt und wird zunächst ein offener Punkt bleiben.

Die Installierte Assembly zu verwenden ist klar, dass muss funktionieren. Hat bereits vor 10 Jahren so funktioniert und geht auch heute noch.

Aber wenn man die Office Assembly per NuGet Paket einbinden kann, sollte dies auch gehen. Die Beschreibung von Microsoft (Link) beschreibt bzw. gibt einen Hinweis, dass die Implementierung abweichen kann von der Beschreibung. Dennoch frage ich mich, wo meine Consolen Anwendung schaut, wenn versucht wird das NuGet Paket zu verwenden.

 

Es geht doch (noch)

Im letzten Absatz habe ich mir die Frage schon fast beantwortet. Wenn man nicht gerade auf der aktuellsten .NET unterwegs ist, funktioniert die Beschreibung von Microsoft genau so wie beschrieben. Wenn das Projekt mit .NET Framework 4.8 eingestellt ist, also bevor die .NET Welt aufgeräumt wurde, dann funktioniert dies auch. Code ist praktisch das selbe, nur halt ohne TOP Level Statement.


Wieviel grad zum Ausweichen

Das Thema Ausweichen ist für nicht ganz so leicht, wenn man nur feststellen kann, dass ein Objekt vor einem liegt oder nicht. Ich ...