mfLY! and MVC Part 1#
mfLY! for Visual Studio allows developers to build using many patterns, one of which is Model-View-Controller (MVC).  In this post I will focus on how the controllers load views in mfLY!.

One aspect of MVC in mfLY! I want to point out here is how navigation is handled.  In an MVC application it is the controller that decides what view to load, and mfLY! is no exception but it does it just a bit different. 

In mfLY! there are Workflow Directors and View Workflows.  If it helps think of these as a workflow controller and view navigation controllers.  Workflow Directors are responsible for controlling navigation between View Workflows.  View Workflow’s on the other hand control navigation between views.  So when an application starts it lets the Workflow Director choose what View Workflow to start and the View Workflow in turn decides what view to show.  Each action (i.e. button click) in the application that is registered with the View Workflow can trigger the View Workflow to load the next view.

View Workflows allow the developer to encapsulate different feature areas into a workflow.  An example of this may be having one application with an Inventory View Workflow and an Orders View Workflow.  Since views are decoupled from navigation they can be used across multiple workflows.

 

The Workflow Director creates each View Workflow on demand, but does have the ability to create all of the View Workflows at one time.

The View Workflows have a similar creation mechanism.  A View workflow can create views on demand, all at one, or one level ahead.  One level ahead means when a view is loaded the View Workflow analyzes the possible paths and creates all the views that could be the next view, this way the lag between views is less.  In many cases the best option is to create all the views for the workflow at once since a user will most likely be working in a feature area for a specific task.  Of course this all depends on how many views are in the View Workflow.

In a future post I will show how to leverage the mfLY! workflow engine to do business logic and much more.

Monday, November 10, 2008 12:23:21 AM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

SMTP Server Headaches and Solutions#
Recently Clydesdale Software deployed a new site which heavily leverages the sending of emails.

My first approach was to run our own smtp server which in the end turned out to be a headache with spam and blacklists.

Next, was using the clients existing smtp which they pay a service company for. This service company only allows so many emails to be sent each hour. So another no go.

The solution, redundant smtp servers and a pay for smtp server. The first attempt to send an email is done by AuthSmtp. AuthSmtp is an affordable service which makes it very easy to upgrade and downgrade your service level that is based on how many emails you send. The second smtp server is the one the client has that only allows so many emails per hour. And the secret sauce, Advanced Smtp Server which lets you define multiple smtp gateways and will try each one in order. It also uses a queue and the messages will be retried to send if a failure occurs.

Friday, October 31, 2008 7:09:31 PM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

Migrating Access's DateValue to SQL Server#
Just came across a very annoying bug when migrating from Access to SQL Server.

Access's base date is December 31, 1899 which is represented by the serial number 1. If the existing queries are using the DateValue function this is very important.

SQL Server's base date is January 1, 1900 which is represented by the serial number 0.

So, when migrating from Access to SQL Server and the existing Access queries use DateValue you may have to do a hack around like I did, create user functions for DateValue and CDate that add 2 to the serial number.

You may ask, who cares if the float value of the datetime is off. Well, in this case there are people connecting via excel which also uses the DateValue function and expects the same base date as Access.

To recap, Access and SQL Server have different base dates and SQL Server is zero based while Access is one based.

Fun, Fun

Monday, October 20, 2008 7:44:16 PM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

New Toys - Apple TV#

I recently purchased an Apple TV to replace Netflix. So far I'm very pleased, not quite the selection of netflix but the convenience is awesome. I'm never sure when the urge to watch a movie or tv show will come up and now it does not matter.

The cost is a little pricey, $3.99 for a movie and $1.99 for tv shows. At those prices I could go broke pretty quick so I have to watch how much I use it. Everything should be a dollar cheaper; come on a $1.99 for an off air tv show...

All in all I do enjoy it, and they add more movies every day. If you are looking for a convenient way to watch/listen to movies, tv, pictures and music then this may be the ticket.

Saturday, May 17, 2008 2:02:54 AM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

I Think I'm in Love#

MacPro.png

Tuesday, May 13, 2008 3:16:53 PM (GMT Standard Time, UTC+00:00) #    Comments [1]  | 

 

Windows 2008 Backup and Restore#

In Windows 2008 the backup and restore comes with an option for a full backup which basically means it will take an image. This has come in very handy because I do not need any third party software now get an image and restore it on new hardware, like when my raptor hard drive unexpectedly crapped out.

Monday, May 12, 2008 1:54:13 PM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

Choosing a Database Modeling Tool#

I have been using many different database modeling tools for SQL Server to figure out which one would work best for me. Some of the features I'm looking for are:

  • Quick table creation and editing
  • Easy and quick to add or edit relationships
  • Can create different schemas
  • Can generate a database script for specific schemas
  • Can compare model to an existing database and generate alter script
  • Can compare model to older version of model and generate alter script

In the past I have used Sybase's Power Designer Data Architect but now that I'm paying for it out of my own pocket it seems a bit too pricey. Power Designer is a complex tool to use that does a lot but is in need of some user experience expertise.

So I started cheap, not recommended. I first looked at Database Spy by Altova, not truely a database modeling tool in my mind because I can not generate the ddl needed to create the database out of the tool. There are some nice features of Database Spy like intellicrack sql editor and quick editing and exporting of data.

Next I tried Happy Fish. I really like this tool; the most user friendly interface of any tool I have used though it does lack on looks, no fancy color gradients here. Creating, changing and generating ddl for the model was breeze. There is only one feature missing in the product which made me not choose it, there is no support for generating alter scripts from and existing database or an older version of the model. I was really disappointed when I found this for two reasons, one the tools is just so easy to use it is almost fun (I said almost) and two, it has a compare with database feature which had my hopes up but it falls short.

In the lineup next was DDS-Pro by Chilli Source. Did not expect too much from this product and did not get much, I think I had it installed all of 15 minutes before I was already convinced it did not meet my needs. It did however leave behind a nice present in my system32 directory, an old version of sqlcmd which then broke my database build because the "-S" did not exist long ago.

And now I can stop looking as I have found the affordable database modeling tool, ModelRight. This tool is not as easy to use as Happy Fish but works fine none the less. The big feature for me is being able to compare the current model with a database or an older version of the model and generate an alter script. This is a fairly common task when maintaining or extending existing software, which in my mind makes any database modeling tool that does not do it worthless.

Saturday, May 10, 2008 9:35:41 PM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

Running Projects using OnTime#

I have chosen to use Axosoft's OnTime software to help manage projects. This is a very powerful and adaptable piece of project management software with many strong features. My biggest reason for choosing OnTime over FogBugz was the user interface was more intuitive to the business user. I like to get the business involved as much as possible on projects and if they can not figure out how to use the software then it is the wrong tool for the job. Personally I think FogBugz does some things very well and in a lot of ways allows a knowledagble user to be very efficient using it but the fact remains that the learning curve is too steep for business users to use it, they just do not have time to sit down and learn it.

Honestly there is almost to much out of the box with OnTime so I simplified it. Out of the box it comes with separate areas for features, defect, tasks, incidents and a wiki. I chose to turn off the defects and tasks and rename features to backlog items. I also added a custom field for backlog item type which can be scenario, feature, defect, or task. The reason I did this is I like working from one prioritized list and it just simplifies the whole process. I have also modified the workflow process each backlog item goes through (another great feature of OnTime).

There are many more customization that I may do in the future but this is my first pass through OnTime and it is working pretty good so far. There is also developer sdk which I'm actually using on one project to call the OnTIime web service to submit incidents from a web site. Incident is something else I preferred to change and call them tickets instead.

While I am happy with OnTime there is a downside, it is slow. Not slow enough that I will not use it but noticeably slower than FogBugz.

Monday, May 05, 2008 2:31:19 AM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

Back to Blogging, Finally!#

It has been a while since I blogged and there is a reason for that. A lot has changed in a very short time for me. Our family grew with the addition of Chloe and starting my own company Clydesdale Software.

It has been a great time with Chloe, she started sleeping through the night at three weeks which frankly concerned us at first but now is a blessing in disguise. Chloe is full of smiles and very talkative, it seems like she really wants to be part of any conversation. All I gotta say is I'm not paying the cell phone bill when she is older:)

Business is going well, sometimes too well. While I welcome all the business I'm sure my wife would be happy with less since I'm working all the time. There are some very exciting things I have been working on which I will be sharing some information on shortly.

Thats all for now.

Monday, May 05, 2008 2:05:19 AM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

All content © 2008, John Luif
On this page
This site
Calendar
<November 2008>
SunMonTueWedThuFriSat
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456
Archives
Sitemap
Blogroll OPML
Disclaimer

Powered by: newtelligence dasBlog 2.1.8102.813

The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

Send mail to the author(s) E-mail

Theme design by Jelle Druyts