improvGroup, LLC

improvGroup, LLC improvGroup, LLC provides technology related services on a per project basis.

We all work remotely but still have a home in Padgett & Padgett, PLLC for meetings by appointment or snail mail.

Here is a simple disposable wait cursor class to simplify your mouse display needs... ///  /// The WaitCursor class. Imp...
09/28/2020

Here is a simple disposable wait cursor class to simplify your mouse display needs... /// /// The WaitCursor class. Implements the /// /// public class WaitCursor : IDisposable { /// /// The previous cursor. /// private readonly Cursor previousCursor; /// /// A value indicating whether the class has been disposed. [ 159 more words ]

Here is a simple disposable wait cursor class to simplify your mouse display needs…

When encountering issues with async/await while building a Windows Forms application recently I came across this helpful...
09/28/2020

When encountering issues with async/await while building a Windows Forms application recently I came across this helpful class that allows you to await returning to the initial (usually UI) thread... public struct SynchronizationContextAwaiter : INotifyCompletion, IEquatable { private static readonly SendOrPostCallback postCallback = state => (state as Action)?.Invoke(); private readonly SynchronizationContext context; public SynchronizationContextAwaiter(SynchronizationContext context) => this.context = context; public bool IsCompleted => context == SynchronizationContext.Current; public static bool operator !=(SynchronizationContextAwaiter left, SynchronizationContextAwaiter right) => !(left == right); public static bool operator ==(SynchronizationContextAwaiter left, SynchronizationContextAwaiter right) => left.Equals(right); public override bool Equals(object? [ 157 more words ]

When encountering issues with async/await while building a Windows Forms application recently I came across this helpful class that allows you to await returning to the initial (usually UI) thread&…

Recently I had a need to map an IDataRecord to an entity class object in C # without using reflection for performance re...
09/28/2020

Recently I had a need to map an IDataRecord to an entity class object in C # without using reflection for performance reasons, and because I can. Here is the code for reference... First we need the method that generates a function to map the properties while handling DBNull. private static Func GenerateMapFunction(IDataReader dataReader) { if (dataReader is null) { throw new ArgumentNullException(nameof(dataReader)); } var expressions = new List(); var dataReaderParameterExpression = Expression.Parameter(typeof(IDataRecord), "o7thDR"); var targetExpression = Expression.Variable(typeof(T)); expressions.Add(Expression.Assign(targetExpression, Expression.New(targetExpression.Type))); // does int based lookup var indexerInfo = typeof(IDataRecord).GetProperty("Item", new[] { typeof(int) }); var columnNames = Enumerable.Range(0, dataReader.FieldCount) .Select(index => new { index, name = dataReader.GetName(index) }); foreach (var column in columnNames) { var property = targetExpression.Type.GetProperty( column.name, BindingFlags.Public | BindingFlags.Instance | BindingFlags.IgnoreCase); if (property is null) { continue; } // index var columnIndexExpression = Expression.Constant(column.index); // reader[index] var readerPropertyExpression = Expression.MakeIndex( dataReaderParameterExpression, indexerInfo, new[] { columnIndexExpression }); // reader.IsDBNull(index); var isReaderDbNull = Expression.Call( dataReaderParameterExpression, nameof(IDataReader.IsDBNull), null, columnIndexExpression); // reader[index] as PropertyType; var safeCastExpression = Expression.TypeAs( readerPropertyExpression, property.PropertyType); // T.Property var targetPropertyExpression = Expression.Property(targetExpression, property); // T.Property = reader.IsDBNull(index) ? [ 402 more words ]

Recently I had a need to map an IDataRecord to an entity class object in C # without using reflection for performance reasons, and because I can. Here is the code for reference…

Have you ever noticed that furniture makers always make computer desks with those closed off little cubby holes for the ...
09/12/2020

Have you ever noticed that furniture makers always make computer desks with those closed off little cubby holes for the tower? It’s about time someone told them computers need ventilation to work properly. I’ve seen countless computers overheat and die an untimely death due to this lack of understanding of simple common sense. Computers have fans in them for a reason: air flow. [ 59 more words ]

Have you ever noticed that furniture makers always make computer desks with those closed off little cubby holes for the tower? It’s about time someone told them computers need ventilation to work p…

Flash has this problem where it will show up blank or green when using hardware acceleration to display video. You used ...
09/12/2020

Flash has this problem where it will show up blank or green when using hardware acceleration to display video. You used to be able to turn that off in Flash options from the right click menu, but in IE10 you have to go to the Internet Explorer options’ advanced tab. There’s a checkbox there that you need to check to fix it at the top.

Flash has this problem where it will show up blank or green when using hardware acceleration to display video. You used to be able to turn that off in Flash options from the right click menu, but i…

I've been poking around at a lot of JavaScript over the last year or two and have been refining this layered architectur...
09/12/2020

I've been poking around at a lot of JavaScript over the last year or two and have been refining this layered architecture for setting up applications. The main idea behind it is to cover all the old bases in a way that also reduces the number of requests and performs very well. The layers I am using are setup like so: [ 364 more words ]

I’ve been poking around at a lot of JavaScript over the last year or two and have been refining this layered architecture for setting up applications. The main idea behind it is to cover all …

09/12/2020

There are a lot of tools out there and others have posted lists that are handy. I’m going to put my list of common tools here and try to keep it updated every now and then for my own use as well as anyone else who may like to reference it. Feel free to send me more to add to the list. Helpful Blogs The Morning Brew (Chris Alcock) Code & Text Editors Visual Studio Sublime Visual Studio Extensions Web Essentials SideWaffle StyleCop ReSharper General Utilities Beyond Compare 7-Zip Updaters Microsoft(r) Web Platform Installer Chocolatey Web Sites Epoch Converter JSON Lint Base64Decode

09/12/2020

I had to dig a little bit to find this. Since not all form factors support multiple windows and tablet mode generally discourages floating windows this is probably buried for a reason, but I wanted to do it anyway so here it is: var viewId = 0; var newView = CoreApplication.CreateNewView(); await newView.Dispatcher.RunAsync( CoreDispatcherPriority.Normal, () => { var frame = new Frame(); frame.Navigate(typeof(YourViewPageType), ViewModelDataOrNull); Window.Current.Content = frame; viewId = ApplicationView.GetForCurrentView().Id; ApplicationView.GetForCurrentView().Consolidated += App.ViewConsolidated; Window.Current.Activate(); }); var viewShown = await ApplicationViewSwitcher.TryShowAsStandaloneAsync(viewId); Hopefully that will save someone some digging. Technorati Tags: Windows 10,Universal Apps,new window

Amusingly today I’m looking at new cars, hence the blue and new, but that’s not all that’s going on. Today I am starting...
09/12/2020

Amusingly today I’m looking at new cars, hence the blue and new, but that’s not all that’s going on. Today I am starting something new that will change hopefully not just my perception of the world, but others as well. It’s time for change. Let’s do this. Technorati Tags: new window,change,world,

Amusingly today I’m looking at new cars, hence the blue and new, but that’s not all that’s going on. Today I am starting something new that will change hopefully not just my perception of …

09/12/2020

Aurelia, one of the leading JavaScript client frameworks for single page applications (SPAs), has been around for a while now an…

09/12/2020

Recently I updated the blog to MiniBlog.Core on ASP.NET Core. So far it seems pretty fast. I’m working on a new engine for it in my spare time using Azure Functions and blob storage. More to come when I find some time to update this. Technorati Tags: MiniBlog.Core,

Address

1302 Cleveland Avenue
Mount Vernon, WA
98273

Alerts

Be the first to know and let us send you an email when improvGroup, LLC posts news and promotions. Your email address will not be used for any other purpose, and you can unsubscribe at any time.

Share

Category