Posts

Green Field Project Checklist

Image
 A few days ago, a friend of mine contacted me about a new application he was thinking about and wanted to get together to discuss it. I said sure. Then I started thinking about what questions I needed to ask to be able to give good advice on how to build the application. The more I thought about it, I realized what I really needed was a checklist of areas to understand to be able to get a handle on the system he wanted me to build. This post is that set of checkboxes. From his description, I was able to get the domain the application would be in. Once I understood that I could dive into my items. User Directed 1. User Flow a. What feature/functionality is required 2. Paid or free application a. A paid version requires more work than a free version. 3. Support Platforms a. Web b. Desktop i. Windows ii. Mac iii. Linux c. Mobile d. Tables e. The decisions here will drive the technology and UI Framework 4. Customer Sign up a. How will a new customer sign ...

.Net 8 and Blazor Render Modes Changes

Image
With the release of .Net 8, Blazor got some great updates. Blzoar is now a full-featured development system.  With the latest Blazor, you can build websites, web applications, desktop applications, Progressive Web Applications, tablet applications, and even mobile applications.  That is a long list of things you can build with Blazor and C#. Render Modes .Net 8 has added new render mores and has made great improvements to the old render modes.  These changes have really pushed Blazor to new heights of building great applications. The old render modes are server and web assembly.   Server mode  This mode would use SingleR to open web sockets to the server.  In this mode, everything is compiled on the server and sends just the changes to the client.  It allows you to isolate your code to the server and keep your code secure.  The downside is that it can get expensive to scale to handle a large amount of users. Web Assembly This mode allows ever...

Build Customer Loyalty into your Application

Image
  When designing and building a software solution, you must always keep your users in mind.  These may seem like minor details or not worth the coding effort but saving your users time, money and even their business can go a long way to building customer loyalty.   Here are a couple real-life little UX and system changes that had a huge impact on a user or even a company. "Could I just hit enter" This question came from a user of a sales ordering software application.  At the top of the Orders screen, there was a text box where the user would enter a sales order number.  They then would tab or use the mouse to click a lookup / find button.   As a team, we thought the UX was very cool, just 2 steps to look or find an order.  We had a session with the user to show off our new UI, with all the bells and whistles.  They were very polite and liked what we showed. At the end, we asked a simple question, "What do you think?".  She said it ...

Live data updating in Blazor

Image
  Providing live data updates or data synchronization in a multi-user environment has always been a bit challenging.  I have been chasing how to do live updates and day sync between desktop applications, web applications, and even temporarily disconnected clients. I have worked with Sales applications and legal applications where users needed to work but did not have access to the internet or a network.  Even though I was able to provide a solution, they were too complex and too hard to maintain for what I care for. Thanks to ZetBit , I was able to find an awesome solution to move forward with. This solution is only using Microsoft SQL Server and a cool Nuget package called SQLTableDependancy .   For this solution, you need to enable the Service Broker in SQL Server.  This will generate events when records in the database are added, edited, or deleted.  Using the SQLTableDependancy class you set event listeners for what tables you want to listen to. Th...

Add a PWA feature to our Blazor Maui Hybrid application

Image
  I have been working on a series of posts about the Maui Hybrid solution.  I create a desktop and Blazor web assembly web client that uses the same code for the UI and the same code for their backend services. Just for fun or to see if it is even possible, I wanted the ability to deploy the solution as a Progress web app as well.  This gives users an additional way they can get the application and use it.  I have an older post about why you would want to build a PWA. Turn Blazor Web Assembly web client into a PWA The steps are fairly straightforward to archive this: 1. Create a Manifest File:       This is a JSON file that provides information about your application (such as name, author, icon, and description) to the browser. It's typically named manifest.json and placed in the wwwroot directory of your project.  Here's a basic example: {   "short_name": "BlazorPWA",   "name": "Blazor Progressive Web Application",   "icons":...

Maui hybrid Desktop and a Web client share the same database

Image
  In the first couple of posts on Maui Hybrid, Let's Make a Blazor Hybrid app and Blazor Hybrid application, and a Blazor Web application , we covered the basics of creating our Maui hybrid application and a Blazor web assembly application, all using the same UI.  These 2 projects worked nicely together.  It worked nicely. My next step was configuring the Maui hybrid desktop to access the same database as the web client.  Seems easy enough. Turns out it is.  What we need to do is check to see if we are running in a hosted environment, if so, make a call to the server API to get the weather data.  If not, just use the local source. In my demo, I am using the data source from which the Blazor sample app comes, but you could also easily use a database.  Changes to the WeatherForecastService We need to add a flag to the WeatherForecastService to let it know if we are in a hosted mode or not.  To achieve this we add a parameter to the constr...

Maui Hybrid application and a Blazor

Image
Since Java first came out, I have been trying to use the same code for both a desktop client and a web client. It was easy to do this for the backend. Getting a shared UI across a desktop and a web client that provided the same experience, was not possible.  Add in the support for Android and iOS and you end up with 4 UI code bases, 4 UI teams, 4 QA teams, etc. Maui Blazor Hybrid to the rescued. With Maui Blaozr I can finally achieve that goal. In my last post, "Let’s Make a Blazor Hybrid Application!" I showed how to create a simple Maui Blazor hybrid application.  I now took the next step, added a Blazor Web Assembly application, and using the Shared library, I created a hosted web client and a desktop client, with the same UI. Here is how I did it. Desktop Application Create a Share UI library project Move the Pages Folder into the new library Move the Shared Folder into the new library Move the CSS folder into the new library Create a new Shared Service Library Move the W...