Tallan Blog

Tallan’s Experts Share Their Knowledge on Technology, Trends and Solutions to Business Challenges

Category Archive for "Custom Software Development"

Live Webinar on 11/29! How Digital Strategy Helped American Financial Resources Compete

Do you have lunch plans next Wednesday, 11/29? If not, why don’t you plan to treat yourself to some takeout, and register for our Webinar.
Our Live at Lunch Webinar features Bill Packer, the Chief Operating Officer of American Financial Resources (AFR) and our New York Region Managing Director, discussing the strategy surrounding AFR’s decision to transition to cloud-based infrastructure.
In an hour we plan to ask our client’s advice on what to consider when prioritizing a digital strategy, whether he’ll give us some insight on what he could have done differently – if anything, and how this modernization has empowered his employees as well as his customers (both in the B2B channel, and direct-to-consumer) to take control.
I bet you wouldn’t believe that he was actually hired specifically for his attitude toward innovation to transition AFR.  Mortgage banks are in the financial…

Designing & Developing The Award-Winning malegislature.gov

At this year’s National Conference of State Legislatures (NCSL) Legislative Summit in Los Angeles, the Commonwealth of Massachusetts took home the NALIT/LINCS Online Democracy Award for the best legislative website in the country. Tallan has worked hand-in-hand with the Massachusetts General Court for the better part of a decade, and this is the second time we have helped them take home this prestigious award. This is, however, the first time we’ve done it with a complete website redesign from beginning to end. This will be an exploration of some components of the redesign, and what helped make it such a successful effort.

Accessibility First
A key component of any government website is accessibility. Designers and developers need to make sure that all information is available to all users through the same interface. With Massachusetts, we approached every feature or idea by asking…

Developing Your First VSTO Add-In

Anyone planning to develop a VSTO Add-In may come to realize that documentation and examples are scarce or nonexistent. Recently I have found myself in this exact predicament as I have been developing a Microsoft Word VSTO Add-In to be used in the legislative drafting process. Throughout development, my team has created a handful of solutions for both simple and complex tasks. Many of these solutions could not be found online, and as a result, required significant research and testing. Here are a few examples that I wish I had when I started to develop a VSTO add-in that will hopefully jump-start your VSTO development.
Overriding Default Save Behavior
One of the core features that was required for our Word Add-In was version control. In order to support this functionality, we would need to override the default behavior of Word’s save functionality….

Genetic Algorithm: An Overview

The genetic algorithm is part of a family of algorithms used for optimization problems first conceived of in the 1950s at the Institute for Advanced Study in Princeton, NJ.   The algorithm didn’t gain much commercial use until the late 1980s.  In this post, I will briefly discuss genetic algorithm and how it works, going over an example of its implementation.  I will also discuss what practical problems genetic algorithm can be used to solve.  Lastly, I will provide some links for more reading on the subject should you feel like learning more.
So, the Genetic Algorithm gets its name from the fact that it attempts to simulate biological evolution.    If you recall from high school biology, all life is composed of DNA, and that DNA is made up of chromosomes, which are made up of Nucleic Acids.  When an organism reproduces,…

Simplify Your Mobile Presence With Progressive Web Apps

The biggest thing we take for granted in the current mobile-dominated web is that everything “just works”, no matter what size or type of device you’re on. But what’s the real impact of that expectation?
For customers, the frustration of needing to switch devices can be more than enough to turn them away from a certain product. For product owners, there’s an expectation that everything needs to be created in parallel to be desktop-friendly, tablet-friendly, mobile-friendly, and to have an equal native mobile app for every platform, which can quickly add up in cost. And for developers, there’s the fact that now you have to actually make all those versions of the same app, across completely different technologies for web and native, and have them work similarly enough to not raise any eyebrows.
But luckily, there’s a new way of doing things,…

Global Message Handling and Catching the Bot Framework Way

So you’ve set up your new chat bot using the Microsoft Bot Framework, and you need to catch messages before they’re read by your dialogs or FormFlows to apply some global or preemptive logic. Luckily, the Bot Framework team thought ahead and built in a concept for handling message interception, called Scorables.
What Are Scorables?
A Scorable is a class that you can register with Autofac (the dependency injection solution used by Bot Framework), that will silently sit in between your externally-facing code accepting incoming user messages, and your internal dialog code. Each one will get the chance to handle the incoming message, and even compete for priority (which is where the “score” originates).
When To Use Scorables
Since they have full access to Autofac and the dialog stack, they can allow you to do anything from:

applying logic across your entire set of dialogs without duplicating…

Using T4 Templates to Generate C# Enums from SQL Server Database Tables

When building applications with C# and SQL Server, it is often necessary to define codes in the database that correspond with enums in the application. However, it can be burdensome to maintain the enums manually, as codes are added, modified, and deleted in the database.
In this blog post, I’ll share a T4 template that I wrote which does this automatically. I looked online first, and did find a few different solutions for this, but none that worked for me as-is. So, I built this generic T4 template to do the job, and you can use it too.
Let’s say you’ve got a Color table and ErrorType table in the database, populated as follows:

Now you’d like enums in your C# application that correspond to these rows. The T4 template will generate them as follows:

Before showing the code that generates this, let’s point…

Making the Case for Entity Framework in the Enterprise

Recently, I was met with some friction by the IT department at a client where, they asserted, that a decision had been made years ago to ban Entity Framework. Like many enterprise environments, this client was understandably concerned with the potential pitfalls of embracing Entity Framework. That meant that my job was to convince them otherwise – not to discount their apprehension, but quite the contrary – to demonstrate how EF can be leveraged for its advantages, and avoided for its shortcomings.
Entity Framework (EF) is a broad framework with many optional parts. There are several aspects of EF that provide great benefit, while others are a source of great consternation – particularly from the perspective of the database purist. As the cliché goes, “with great power comes great responsibility,” and so this blog post explores different aspects of EF, and…

Solving Plugin Types Import Failure on Dynamics 2016 up 1 On Premise

This is the error I received when trying to import a managed solution into an organization where an early version of it already existed.
From the import log :
Plugin Types import: FAILURE. Error: Plugin: [PluginAssemblyName], Version=1.0.0.0, Culture=neutral, PublicKeyToken=c66c1d5121b276ee of PluginTypeName: Microsoft.Crm.Entities.PluginType and PluginTypeNode: System.Xml.XmlElement caused an exception.
This one was new to me and caused me to have to do some digging, first I had to be reminded how to start digging, and the first step should be to enable tracing, which you can find here : https://support.microsoft.com/en-us/help/907490/how-to-enable-tracing-in-microsoft-dynamics-crm.  Then after that do your import and go to the TraceDirectory to find the internal exception causing this import exception.
 
That lead me to this exception from the trace logs :
>Crm Exception: Message: Plugin Types import: FAILURE. Error: Plugin: [PluginAssemblyName], Version=1.0.0.0, Culture=neutral, PublicKeyToken= of PluginTypeName: Microsoft.Crm.Entities.PluginType and PluginTypeNode: System.Xml.XmlElement caused an exception., ErrorCode: -2147188718, InnerException: Microsoft.Crm.CrmException: A managed…

Design-Time Properties for Custom SSIS Objects – Part 1 – Intro & Tasks

Managing the editable properties of your custom objects in SQL Server Integration Services (SSIS) is a great way to improve their usability, but how can you? By properties, I mean the common fields exposed on the Properties tool window in Visual Studio, any time you’re working with a visual designer, and which you’ve probably used any time you wanted to make a precise change, or a quick change.
In SSIS, you can create your own class to handle all of the following types:

Data Flow / Pipeline Components
Control Flow Tasks
Connection Managers
Log Providers
For Each Enumerators (for the for each loop task)

For the most part, these custom classes can be directly modified when editing SSIS packages in Visual Studio, and so anything properties you expose on the class can be edited right from Visual Studio without opening up any new UIs. For simple objects especially, these can…

\\\