Boredom paid off...

Guessing my brother forgot my request to see him this week over the new software I went ahead and did as suggested in my last post and converted the entire project to .Net 4 and WPF/WCF.

As suspected, since I hadn't specified many of the more complicated relationships, I was able to get the WCF service off the ground VERY easily. Already started building some of the UI elements. Chose a new sort of design style versus the old one and I'm actually spending the time to get things right. I want to apply as much of this as I can back to Veronica's new application and this also may be a better product for selling down the line.

UI still needs some polishing, but in general I like the design paradigm I went with this time. Rolled away from my old approach with a main central panel and expanders on the sides and went instead with giant tiles to launch portions of the application. I've grouped similar functions into their own controls and they are launched from their own buttons decorated with images and text. Customer one below:
Each set of functions will have a header with a (hopefully) self-explanatory header text and icon. The icon in the header is used across all of the pop-up windows for that function where it makes sense so that if there are multiple windows open and minimized you can hopefully find the one you want. Likewise, all of the buttons have images, headers and tool tip text to make them easier to read. I like the design paradigm in general, but the problem is when I have a panel with only 1 or 2 items as above. Buttons end up being huge and standing in the middle of open space because I only have 4 panels I need for this application, but it is definitely much nicer looking than what I had before. I just need to find either more buttons to create or more panels.

Since the customer one was the first set of tiles I created, the first window I created was the customer search window:
You can see the icon is the same as the customer header icon, I have a number of common filters and then 3 well defined buttons with images, headers and tooltips. Search button brings up a list of all customers matching the search criteria above and delete removes the currently selected one from the grid and database. Edit button brings up the next screen I made, the customer editor (same screen used by the new customer button as well):
While, I can support multiple addresses, that is for a later date to implement on the UI side of things if ever. Right now it grabs the first one associated with the customer or creates a new blank if none exists. The phone tab allows multiple phone numbers to be stored and the orders tab brings up a list of their orders. Once I have the order stuff implemented you will be able to double click an order to bring up the details or even change it if it hasn't been closed yet. Very basic stuff here, but again, have the nice descriptive buttons. I'm starting to feel like a salesperson, so I'll shut up about the buttons from here on in.

Next I wanted to cover Products and Inventory. But before I got to that I needed to setup some locations to store the inventory in. Since this is a function which will likely not be meddled with once implemented, I shoved it in a menu at the top. Just to make my tiles look sexier, I probably should have shoved it somewhere else... but I think practicality should win out here. I'm not even going to bother showing the location manager screen. It is the simplest screen in the application, it has a grid and 3 buttons. Shouldn't be enough locations to ever need to filter them.

So, next was the inventory manager. Allows you to search, adjust stock in and adjust stock out:
Once I figure out what all my brother needs to track on his products and what he wants to search on this might evolve. But at the moment searches are by a portion of the product name, can filter by location and can also filter by part of the description. Adjust in/out buttons both bring up the same screen with the sole exception that one adds inventory and one removes it, has some added checks like not letting you remove stock that isn't there and stopping you from removing too much:
Have the screen above with the inventory manager grid in the background... if a record was selected it will populate those values by default. You can also specify other locations and products using the search buttons beside each field, but the general assumption was that if you were looking at a specific stock record, that is probably the one you want to edit. Clicking the product one will bring up the product manager with the exception that when a product is double clicked it sets it here instead of opening the editor and locations are similar, opens up the location manager and double clicks select and return the location, where they do nothing regularly. So I guess that means we are onto the Product manager since it is the final thing I have completed so far.
So lastly for today's updates, here is the Product manager/selector. As far as I have been told, the software will only be used by one person, my brother, so I wasn't afraid about reusing management functionality for selection tools, adds the ability to create and manage products while doing other things that require you to select one. There is a separate screen that comes up when the edit button is clicked, but aside from a few buttons it is just the standard Details control the DataSource tab generated for me with a few fields hidden.

I think this whole thing actually puts me ahead of where I was with the older software, so I'm happy. I think I spent a total of 3 evenings on it to get it this far. Silverlight and XAML come more naturally to me every time I touch them. Just hoping Microsoft drops that whole ridiculousness where I need to pay $100US to register myself and my WP7 phone as a development device so I can start building some good WP7 apps for fun.

Anyway, that is enough for now.

Comments

Popular Posts