Skip to main content

Skin Design

Flexo is a personal accounting package. Since it is in very initial stage, it tracks only your expenses and generates variety of reports on it. (Recently I included income tracking module which is in alpha stage) In coming years Flexo will extend and mechanize most of money management activities under few button clicks. In parallel to cool features, creating a good and ease of user interface is also a head scratching work. It’s an art too. I don’t want to set more expectation saying that Flexo has very good interface but I feel it has got what it was expected to have.

When you download and check all screens in Flexo, one thing you will sure notice, Consistency. Just open any UI guidelines book, this will be a first statement and there is no way to skip this rule in my software too.

If we think traditionally, the design approach for consistent UI for all forms could be like these,

Create header-footer ActiveX/Custom/User control and place it on all forms or create a static class which has a drawing method to decorate runtime loading forms and thinking further to this, maintain one XML configuration file which will hold all coloring, fonts and size details from which our drawing method gets inspired and brushes it on all forms.

In dot net, we have one cool feature - Visual Inheritance, which allows us to create a master form and inherit this to all child forms. Whatever UI changes you make on a master form will affect all its children. Re-using the idea of above mentioned XML configuration file, use dot net App.config and define all fancy information in it. Associate values from app.config file to master form’s properties popularly known as setting dynamic properties and we are done! Whenever I want to change any color of my Flexo forms I will just update flexo.exe.config file and I don’t have to compile my application to reflect new changes.

Comments

Popular posts from this blog

Windows forgets visual effects settings on log-out or reboot for non-administrator account

Steps given here worked for me with Windows 7 SP1. Hope you may find it useful.

Start -> Run-> cmd (press enter) -> type SystemPropertiesPerformance.exeThis gets you the "System Properties" window, go to  Advanced tab -> Performance Settings -> Visual Effects tab and choose "Adjust for best performance" and click OK. Note: While doing all these UAC doesn't show-up as all changes you are doing will be saved in your logged-in profile account.

Reference material used: http://msdn.microsoft.com/en-us/library/ee330866.aspx

Feel free to comment your findings.

Hangfire with In-Memory Storage (ASP.Net MVC 4/5)

This is in continuation to my previous post: Hangfire with ASP.Net MVC : Simplest Code To Start with.

In this post we will see how Hangfire can be configured without the SQL Server as its backend for job scheduling, instead, manage all in-memory

1) Create ASP.Net MVC 4/5 Projects
2) in web.config file
3) Run Install-Package HangFire -Version 1.6.17 or visit here for latest version: https://www.nuget.org/packages/Hangfire/1.6.17
3) Run Install-Package Hangfire.MemoryStorage -Version 1.5.2 or visit here for latest version https://www.nuget.org/packages/Hangfire.MemoryStorage/
4) I am simply updating a table with a primary key (auto incremented), and string field "StampTime" with current date and time.
5) Open Global.asax.cs and paste below shown code.
6) Run the app and check the database.


using Hangfire; using Hangfire.Common; using Hangfire.MemoryStorage; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Web; using…

Hangfire with ASP.Net MVC : Simplest Code To Start with

It seems many are looking for using Hangfire with ASP.Net MVC 4 / 5+ SQL Server here is the simplest code example for you to start quick.

I am using Visual Studio 2017 Community Edition

1) Create ASP.Net MVC 4/5 Projects
2) <add key="owin:AutomaticAppStartup" value="false" /> in web.config file
3)Run Install-Package HangFire -Version 1.6.17 or visit here for latest version: https://www.nuget.org/packages/Hangfire/1.6.17
4) From the sample code, make sure you create database in SQL Server DB and update the connection string.
5) I am simply updating a table with a primary key (auto incremented), and string field "StampTime" with current date and time.
6) Open Global.asax.cs and put this code.
7) Run the app and check the database.

The example code also showcase a hack on how to run jobs with few seconds interval.

namespace HangFireDemo { publicstaticclassMyTasks { publicstaticasync Task<int> MinuteTick() { awa…