{"id":3676,"date":"2019-09-11T23:42:58","date_gmt":"2019-09-11T23:42:58","guid":{"rendered":"http:\/\/www.trinitydatasolutions.com\/?p=3676"},"modified":"2019-09-19T22:15:15","modified_gmt":"2019-09-19T22:15:15","slug":"what-exactly-is-a-framework","status":"publish","type":"post","link":"https:\/\/www.trinitydatasolutions.com\/index.php\/2019\/09\/11\/what-exactly-is-a-framework\/","title":{"rendered":"What Exactly is a Framework?"},"content":{"rendered":"\n[et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;section&#8221; _builder_version=&#8221;3.28&#8243; background_color=&#8221;#ffffff&#8221; background_image=&#8221;http:\/\/www.trinitydatasolutions.com\/wp-content\/uploads\/2019\/07\/samuel-zeller-9DXyfwO_A6I-unsplash.jpg&#8221; custom_padding=&#8221;||0px|&#8221; custom_padding_tablet=&#8221;||0px|&#8221; transparent_background=&#8221;off&#8221; padding_mobile=&#8221;on&#8221; make_fullwidth=&#8221;off&#8221; use_custom_width=&#8221;off&#8221; width_unit=&#8221;on&#8221; fb_built=&#8221;1&#8243; _i=&#8221;0&#8243; _address=&#8221;0&#8243;][et_pb_row padding_mobile=&#8221;on&#8221; column_padding_mobile=&#8221;on&#8221; admin_label=&#8221;row&#8221; _builder_version=&#8221;3.25&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;||0px|&#8221; make_fullwidth=&#8221;off&#8221; use_custom_width=&#8221;off&#8221; width_unit=&#8221;on&#8221; _i=&#8221;0&#8243; _address=&#8221;0.0&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221; _i=&#8221;0&#8243; _address=&#8221;0.0.0&#8243;][et_pb_divider show_divider=&#8221;off&#8221; disabled_on=&#8221;on|on|off&#8221; admin_label=&#8221;Divider&#8221; _builder_version=&#8221;3.23.4&#8243; height=&#8221;110px&#8221; hide_on_mobile=&#8221;on&#8221; _i=&#8221;0&#8243; _address=&#8221;0.0.0.0&#8243;][\/et_pb_divider][et_pb_text admin_label=&#8221;Text&#8221; _builder_version=&#8221;3.28&#8243; text_font=&#8221;PT Sans|on|||&#8221; text_text_color=&#8221;#edffd1&#8243; text_letter_spacing=&#8221;2px&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; text_orientation=&#8221;center&#8221; module_alignment=&#8221;center&#8221; custom_margin=&#8221;||0px|&#8221; custom_padding=&#8221;||0px|&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; _i=&#8221;1&#8243; _address=&#8221;0.0.0.1&#8243;]TECHNOLOGY&nbsp;[\/et_pb_text][et_pb_text admin_label=&#8221;Text&#8221; _builder_version=&#8221;3.28&#8243; text_font=&#8221;PT Sans||||&#8221; text_text_color=&#8221;#ffffff&#8221; text_font_size=&#8221;72&#8243; text_line_height=&#8221;1.1em&#8221; header_text_color=&#8221;#edffd1&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; text_orientation=&#8221;center&#8221; max_width=&#8221;660px&#8221; module_alignment=&#8221;center&#8221; custom_margin=&#8221;18px||80px|&#8221; text_font_size_tablet=&#8221;52&#8243; text_font_size_last_edited=&#8221;on|desktop&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; _i=&#8221;2&#8243; _address=&#8221;0.0.0.2&#8243;]What Exactly is a Framework?[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;Section&#8221; _builder_version=&#8221;3.22&#8243; background_color=&#8221;#f7f7f4&#8243; custom_padding=&#8221;0px|||&#8221; custom_padding_tablet=&#8221;0px|||&#8221; transparent_background=&#8221;off&#8221; padding_mobile=&#8221;on&#8221; make_fullwidth=&#8221;off&#8221; use_custom_width=&#8221;off&#8221; width_unit=&#8221;on&#8221; fb_built=&#8221;1&#8243; _i=&#8221;1&#8243; _address=&#8221;1&#8243;][et_pb_row padding_mobile=&#8221;on&#8221; column_padding_mobile=&#8221;on&#8221; admin_label=&#8221;row&#8221; _builder_version=&#8221;3.25&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; max_width=&#8221;620px&#8221; custom_padding=&#8221;0px|||&#8221; make_fullwidth=&#8221;off&#8221; use_custom_width=&#8221;on&#8221; width_unit=&#8221;on&#8221; custom_width_px=&#8221;620px&#8221; _i=&#8221;0&#8243; _address=&#8221;1.0&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221; _i=&#8221;0&#8243; _address=&#8221;1.0.0&#8243;][et_pb_image src=&#8221;http:\/\/www.trinitydatasolutions.com\/wp-content\/uploads\/2019\/09\/Mark-Blog-Post-Author-Icon.png&#8221; show_bottom_space=&#8221;off&#8221; align=&#8221;center&#8221; align_tablet=&#8221;center&#8221; align_last_edited=&#8221;on|desktop&#8221; admin_label=&#8221;Image&#8221; _builder_version=&#8221;3.23&#8243; custom_margin=&#8221;-48px|||&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; animation=&#8221;off&#8221; sticky=&#8221;on&#8221; always_center_on_mobile=&#8221;on&#8221; _i=&#8221;0&#8243; _address=&#8221;1.0.0.0&#8243;][\/et_pb_image][et_pb_text admin_label=&#8221;Text&#8221; _builder_version=&#8221;3.28&#8243; text_font=&#8221;PT Sans||||&#8221; text_text_color=&#8221;#323232&#8243; text_font_size=&#8221;18&#8243; text_line_height=&#8221;1.4em&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; text_orientation=&#8221;center&#8221; module_alignment=&#8221;center&#8221; custom_margin=&#8221;14px||0px|&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; _i=&#8221;1&#8243; _address=&#8221;1.0.0.1&#8243;]<span style=\"color: #02b875;\"><strong>Mark Douglass<\/strong><\/span>, President, Trinity Data Solutions[\/et_pb_text][et_pb_text admin_label=&#8221;Text&#8221; _builder_version=&#8221;3.28&#8243; text_font=&#8221;PT Sans|on|||&#8221; text_text_color=&#8221;#363636&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; text_orientation=&#8221;center&#8221; module_alignment=&#8221;center&#8221; custom_margin=&#8221;0px|||&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; _i=&#8221;2&#8243; _address=&#8221;1.0.0.2&#8243;]01 September 2019[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row padding_mobile=&#8221;on&#8221; column_padding_mobile=&#8221;on&#8221; admin_label=&#8221;row&#8221; _builder_version=&#8221;3.28&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; max_width=&#8221;620px&#8221; custom_padding=&#8221;0px|||&#8221; make_fullwidth=&#8221;off&#8221; use_custom_width=&#8221;on&#8221; width_unit=&#8221;on&#8221; custom_width_px=&#8221;620px&#8221; _i=&#8221;1&#8243; _address=&#8221;1.1&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221; _i=&#8221;0&#8243; _address=&#8221;1.1.0&#8243;][et_pb_text admin_label=&#8221;Text&#8221; _builder_version=&#8221;3.28&#8243; text_font=&#8221;PT Serif||||&#8221; text_text_color=&#8221;#363636&#8243; text_font_size=&#8221;24&#8243; text_line_height=&#8221;1.4em&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; max_width=&#8221;620px&#8221; custom_margin=&#8221;40px||0px|||&#8221; custom_padding=&#8221;||0px|||&#8221; text_font_size_last_edited=&#8221;on|tablet&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; _i=&#8221;0&#8243; _address=&#8221;1.1.0.0&#8243;]In the software world, you hear the word &#8220;framework&#8221; all the time. Of course, it&#8217;s implicit connotative meaning is pretty straightforward but when you start to examine things a little closer, you&#8217;ll see that software frameworks are a set of tools that allow you to build an application. That&#8217;s it in the simplest form. When you are a software developer though, choosing the &#8220;right&#8221; framework is always a tricky disposition. A wrong choice can leave you with years of time invested only to find out that the framework you&#8217;ve based everything you&#8217;ve built on is no longer supported.\n\n&nbsp;[\/et_pb_text][et_pb_text admin_label=&#8221;Text&#8221; _builder_version=&#8221;3.28&#8243; text_font=&#8221;PT Serif||||&#8221; text_text_color=&#8221;#363636&#8243; text_font_size=&#8221;20&#8243; text_line_height=&#8221;1.5em&#8221; header_font=&#8221;Open Sans||||||||&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; max_width=&#8221;620px&#8221; custom_margin=&#8221;13px||40px|||&#8221; text_font_size_last_edited=&#8221;on|tablet&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; _i=&#8221;1&#8243; _address=&#8221;1.1.0.1&#8243;]<h2 role=\"textbox\" aria-multiline=\"true\" class=\"block-editor-rich-text__editable editor-rich-text__editable\" contenteditable=\"true\" data-is-placeholder-visible=\"false\" aria-label=\"Write heading\u2026\" aria-autocomplete=\"list\">Languages vs Frameworks<\/h2>\n&nbsp;\n\nDon&#8217;t be confused between a &#8220;language&#8221; and a framework &#8211; the two are independent of each other. You can program in a bunch of languages and some frameworks are specific to that language set however some frameworks are independent. I know, it&#8217;s confusing to me as well and I&#8217;ve been doing this since the early 90s![\/et_pb_text][et_pb_text admin_label=&#8221;Text&#8221; _builder_version=&#8221;3.28&#8243; text_font=&#8221;PT Serif||||&#8221; text_text_color=&#8221;#363636&#8243; text_font_size=&#8221;20&#8243; text_line_height=&#8221;1.5em&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; max_width=&#8221;620px&#8221; custom_margin=&#8221;38px||0px|||&#8221; text_font_size_last_edited=&#8221;on|tablet&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; _i=&#8221;2&#8243; _address=&#8221;1.1.0.2&#8243;]You pick your language (or languages as most developers should be able to do more than one anyway) and then you adapt. At TDS, we went through different phases of how we develop applications. Since we&#8217;ve mostly been focused on manufacturing and logistics clients and the length of time we&#8217;ve been with them is hovering around the 20 year mark, we&#8217;ve done things in different ways and morphed into where we are today.[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row padding_mobile=&#8221;on&#8221; column_padding_mobile=&#8221;on&#8221; admin_label=&#8221;row&#8221; _builder_version=&#8221;3.25&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; max_width=&#8221;620px&#8221; custom_padding=&#8221;0px|||&#8221; make_fullwidth=&#8221;off&#8221; use_custom_width=&#8221;on&#8221; width_unit=&#8221;on&#8221; custom_width_px=&#8221;620px&#8221; _i=&#8221;2&#8243; _address=&#8221;1.2&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221; _i=&#8221;0&#8243; _address=&#8221;1.2.0&#8243;][et_pb_text admin_label=&#8221;Text&#8221; _builder_version=&#8221;3.28&#8243; text_font=&#8221;PT Serif||||&#8221; text_text_color=&#8221;#363636&#8243; text_font_size=&#8221;20&#8243; text_line_height=&#8221;1.5em&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; max_width=&#8221;620px&#8221; custom_margin=&#8221;30px||0px|&#8221; text_font_size_last_edited=&#8221;on|tablet&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; _i=&#8221;0&#8243; _address=&#8221;1.2.0.0&#8243;]<h2 role=\"textbox\" aria-multiline=\"true\" class=\"block-editor-rich-text__editable editor-rich-text__editable\" contenteditable=\"true\" data-is-placeholder-visible=\"false\" aria-label=\"Write heading\u2026\" aria-autocomplete=\"list\">A Bit of History<\/h2>\n&nbsp;\n\nWe started out developing in Delphi (Object Pascal) and Microsoft SQL Server 6.0 building custom client\/server applications back in the 90s when I had my first company. The choice back in the EARLY 90s was Visual Basic or Borland&#8217;s Delphi product. After a month-long exhaustive side-by-side comparison for which, I had to learn both languages! I realized that Delphi was far superior to Visual Basic in performance and third-party libraries (there&#8217;s a new term &#8211; more on that later) that would allow me to build applications that my clients needed the quickest.\n\n&nbsp;\n\n<span>We developed a lot of applications and they were solid performers for many years. In fact, one of them is still running after 19 years (and counting)! My only regret (and yet saving grace) was that I never fully developed a &#8220;framework&#8221; of my own in which to deliver the applications within the Delphi product. We mostly copied\/pasted libraries and modified them as needed. A lot of that was due to the fast-paced changes that were occurring in the industry. The web was just starting to make it&#8217;s way to the forefront. You have to remember we&#8217;re talking late 90s! Some of you reading this might not have even been born yet.<\/span>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row padding_mobile=&#8221;on&#8221; column_padding_mobile=&#8221;on&#8221; admin_label=&#8221;row&#8221; _builder_version=&#8221;3.25&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; max_width=&#8221;620px&#8221; custom_padding=&#8221;17px|||&#8221; make_fullwidth=&#8221;off&#8221; use_custom_width=&#8221;on&#8221; width_unit=&#8221;on&#8221; custom_width_px=&#8221;620px&#8221; _i=&#8221;4&#8243; _address=&#8221;1.4&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221; _i=&#8221;0&#8243; _address=&#8221;1.4.0&#8243;][et_pb_text admin_label=&#8221;Text&#8221; _builder_version=&#8221;3.28&#8243; text_font=&#8221;PT Serif||||&#8221; text_text_color=&#8221;#363636&#8243; text_font_size=&#8221;20&#8243; text_line_height=&#8221;1.5em&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; max_width=&#8221;620px&#8221; custom_margin=&#8221;30px||0px|&#8221; custom_padding=&#8221;||0px|||&#8221; text_font_size_last_edited=&#8221;on|tablet&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; _i=&#8221;0&#8243; _address=&#8221;1.4.0.0&#8243;]<h2 role=\"textbox\" aria-multiline=\"true\" class=\"block-editor-rich-text__editable editor-rich-text__editable\" contenteditable=\"true\" data-is-placeholder-visible=\"false\" aria-label=\"Write heading\u2026\" aria-autocomplete=\"list\">Turn of the Century, Time for a New Development Platform<\/h2>\n<span data-preserver-spaces=\"true\"><\/span>\n\n<span data-preserver-spaces=\"true\">As we got out of the Y2K crisis (where we even had DOS applications running Foxpro and Clipper &#8211; yes, I am THAT old), we started to rethink how we can incorporate web technologies within what we were doing. There wasn&#8217;t a huge calling for it since all of the applications revolved around the manufacturing floor we were focused on integrating with industrial systems more so than worrying about web sites.<\/span>\n\n<span data-preserver-spaces=\"true\"><\/span>\n\n<span data-preserver-spaces=\"true\">With new versions of SQL Server starting to come out with more in-depth features and the&nbsp;<a target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/.NET_Framework_version_history\" class=\"_e75a791d-denali-editor-page-rtfLink\" rel=\"noopener noreferrer\">release of the Microsoft .NET Framework in 2002<\/a>, we started to rethink what Microsoft was trying to do. If you were ever part of the development community back in the 90s, you&#8217;ll remember all the frustrating things like&nbsp;<a target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/DLL_Hell\" class=\"_e75a791d-denali-editor-page-rtfLink\" rel=\"noopener noreferrer\">DLL Hell<\/a>&nbsp;and&nbsp;<a target=\"_blank\" href=\"https:\/\/www.techrepublic.com\/article\/get-it-done-understanding-the-windows-2000-blue-screen-of-death-part-1\/\" class=\"_e75a791d-denali-editor-page-rtfLink\" rel=\"noopener noreferrer\">Blue Screen&#8217;s of Death<\/a>&nbsp;(well that might still go on a little) and Delphi wasn&#8217;t impervious to any of things. In fact, with the pace that was being set forward by Microsoft, Delphi started to lose its market share within the developer community.<\/span>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row padding_mobile=&#8221;on&#8221; column_padding_mobile=&#8221;on&#8221; admin_label=&#8221;row&#8221; _builder_version=&#8221;3.25&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; max_width=&#8221;620px&#8221; custom_padding=&#8221;17px|||&#8221; make_fullwidth=&#8221;off&#8221; use_custom_width=&#8221;on&#8221; width_unit=&#8221;on&#8221; custom_width_px=&#8221;620px&#8221; _i=&#8221;5&#8243; _address=&#8221;1.5&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221; _i=&#8221;0&#8243; _address=&#8221;1.5.0&#8243;][et_pb_text admin_label=&#8221;Text&#8221; _builder_version=&#8221;3.28&#8243; text_font=&#8221;PT Serif||||&#8221; text_text_color=&#8221;#363636&#8243; text_font_size=&#8221;20&#8243; text_line_height=&#8221;1.5em&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; max_width=&#8221;620px&#8221; custom_margin=&#8221;30px||0px|&#8221; text_font_size_last_edited=&#8221;on|tablet&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; _i=&#8221;0&#8243; _address=&#8221;1.5.0.0&#8243;]<h2 role=\"textbox\" aria-multiline=\"true\" class=\"block-editor-rich-text__editable editor-rich-text__editable\" contenteditable=\"true\" data-is-placeholder-visible=\"false\" aria-label=\"Write heading\u2026\" aria-autocomplete=\"list\">Time for a Change?<\/h2>\n<span><\/span>\n\n<span>I originally chose Delphi because of the Object Pascal language. I felt like I was drawn to it&#8217;s structure and it just made sense to me. VB always frustrated me and seemed to confound me. I like structure and it also helped that the other developers that I hired all knew Delphi and worked with it but now, we started to look at alternatives when 2006 rolled around and version 2.0 came out.<\/span>\n\n<span>We were getting more requests to do some web-based things and there was a lull in work around this time. We actually had time to look at what was out there. We did an in-depth dive into C# and I took to it like a fish in the ocean. I loved the syntax structure (albeit backwards from Pascal in some manners) and absolutely loved the case sensitiveness of it. <\/span>\n\n<span>The best (and worst) part of it of course was ASP.NET. All of sudden, we could write reusable libraries that we could adapt to work between web and windows forms projects.<\/span>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row use_custom_gutter=&#8221;on&#8221; gutter_width=&#8221;2&#8243; padding_mobile=&#8221;on&#8221; column_padding_mobile=&#8221;on&#8221; custom_padding_last_edited=&#8221;on|tablet&#8221; admin_label=&#8221;Row&#8221; _builder_version=&#8221;3.25&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;27px|||||&#8221; custom_padding_tablet=&#8221;17px|||&#8221; make_fullwidth=&#8221;off&#8221; use_custom_width=&#8221;off&#8221; width_unit=&#8221;on&#8221; custom_width_px=&#8221;830px&#8221; _i=&#8221;6&#8243; _address=&#8221;1.6&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221; _i=&#8221;0&#8243; _address=&#8221;1.6.0&#8243;][et_pb_image src=&#8221;http:\/\/www.trinitydatasolutions.com\/wp-content\/uploads\/2019\/07\/044.jpg&#8221; show_bottom_space=&#8221;off&#8221; align_tablet=&#8221;center&#8221; align_last_edited=&#8221;on|desktop&#8221; admin_label=&#8221;Image&#8221; _builder_version=&#8221;3.23&#8243; animation_style=&#8221;fade&#8221; animation_duration=&#8221;500ms&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; animation=&#8221;fade_in&#8221; sticky=&#8221;on&#8221; always_center_on_mobile=&#8221;on&#8221; _i=&#8221;0&#8243; _address=&#8221;1.6.0.0&#8243;][\/et_pb_image][et_pb_image src=&#8221;http:\/\/www.trinitydatasolutions.com\/wp-content\/uploads\/2019\/09\/gabriel-sollmann-Y7d265_7i08-unsplash.jpg&#8221; _builder_version=&#8221;3.28&#8243; custom_margin=&#8221;|0px||||&#8221; _i=&#8221;1&#8243; _address=&#8221;1.6.0.1&#8243;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row padding_mobile=&#8221;on&#8221; column_padding_mobile=&#8221;on&#8221; admin_label=&#8221;row&#8221; _builder_version=&#8221;3.28&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; max_width=&#8221;620px&#8221; custom_padding=&#8221;17px|||&#8221; make_fullwidth=&#8221;off&#8221; use_custom_width=&#8221;on&#8221; width_unit=&#8221;on&#8221; custom_width_px=&#8221;620px&#8221; _i=&#8221;7&#8243; _address=&#8221;1.7&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221; _i=&#8221;0&#8243; _address=&#8221;1.7.0&#8243;][et_pb_text admin_label=&#8221;Text&#8221; _builder_version=&#8221;3.28&#8243; text_font=&#8221;PT Serif||||&#8221; text_text_color=&#8221;#363636&#8243; text_font_size=&#8221;20&#8243; text_line_height=&#8221;1.5em&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; max_width=&#8221;620px&#8221; custom_margin=&#8221;30px||-27px|||&#8221; text_font_size_last_edited=&#8221;on|tablet&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; _i=&#8221;0&#8243; _address=&#8221;1.7.0.0&#8243;]<h1><span data-preserver-spaces=\"true\">Libraries vs Frameworks<\/span><\/h1>\n<span data-preserver-spaces=\"true\"><\/span>\n\n<span data-preserver-spaces=\"true\">So there is an&nbsp;<\/span><a target=\"_blank\" href=\"https:\/\/www.geeksforgeeks.org\/software-framework-vs-library\/\" class=\"_e75a791d-denali-editor-page-rtfLink\" rel=\"noopener noreferrer\"><span data-preserver-spaces=\"true\">excellent geeky article about Libraries versus Frameworks<\/span><\/a><span data-preserver-spaces=\"true\">&nbsp;but in essence we, at first, were simply sharing libraries of functions across different applications. Simple things at first: grids, how to connect to a database or how to run a stored procedure.&nbsp;<\/span><span data-preserver-spaces=\"true\">That need to simplify and write-once did give birth to our Trinity Framework though.&nbsp;<\/span><span data-preserver-spaces=\"true\">We needed a way where we could spin up a shell, security and menu management without having to write a lick of code and by just attaching our own DLLs as a starting point.<\/span>\n\n<span data-preserver-spaces=\"true\">That need to simplify and write-once did give birth to our Trinity Framework though. We needed a way where we could spin up a shell, security and menu management without having to write a lick of code and by just attaching our own DLLs as a starting point.<\/span>\n\n<span>After MANY iterations (we&#8217;re talking over 7 years!) we finally managed to incorporate most of what we want to the point now where we can focus on delivering functionality and the details of the application versus copying\/rewriting things again and again. It&#8217;s a huge time saver for us and our clients.<\/span><span data-preserver-spaces=\"true\"><\/span>\n\n<span data-preserver-spaces=\"true\">The beauty of what we&#8217;ve done though allows us to focus on what the application needs to do because we already have 99% of the components we need to realize a function. Not having to write the same code or functions to do the same thing is key.<\/span>\n\n<span data-preserver-spaces=\"true\"><\/span>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row padding_mobile=&#8221;on&#8221; column_padding_mobile=&#8221;on&#8221; admin_label=&#8221;row&#8221; _builder_version=&#8221;3.25&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; max_width=&#8221;620px&#8221; custom_padding=&#8221;17px|||&#8221; make_fullwidth=&#8221;off&#8221; use_custom_width=&#8221;on&#8221; width_unit=&#8221;on&#8221; custom_width_px=&#8221;620px&#8221; _i=&#8221;8&#8243; _address=&#8221;1.8&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221; _i=&#8221;0&#8243; _address=&#8221;1.8.0&#8243;][et_pb_text admin_label=&#8221;Text&#8221; _builder_version=&#8221;3.28&#8243; text_font=&#8221;PT Serif||||&#8221; text_text_color=&#8221;#363636&#8243; text_font_size=&#8221;20&#8243; text_line_height=&#8221;1.5em&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; max_width=&#8221;620px&#8221; custom_margin=&#8221;30px||0px|&#8221; text_font_size_last_edited=&#8221;on|tablet&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; _i=&#8221;0&#8243; _address=&#8221;1.8.0.0&#8243;]<span data-preserver-spaces=\"true\"><\/span>\n<h1><span data-preserver-spaces=\"true\">Where Are We Heading?<\/span><\/h1>\n<em><span data-preserver-spaces=\"true\"><\/span><\/em>\n\n<em><span data-preserver-spaces=\"true\">&#8220;Plus ca change, plus c&#8217;est la meme chose&#8221;<\/span><\/em><span data-preserver-spaces=\"true\">&nbsp;(The more things change, the more they stay the same). It&#8217;s the one thing I&#8217;ve learned in my 30+ years in this industry. Change is inevitable and we must change and adapt to continue to build productive solutions for our customers. The change we made from adopting the .NET Framework was a solid choice and has allowed this business to grow.<\/span>\n\n<span data-preserver-spaces=\"true\">AI is something that I&#8217;m keenly interested in. Especially in the way that we can harness the power of machine learning and put it to work in the manufacturing world. The only way that we will able to move down that pathway is for an efficient and cost-effective way of integrating these sensors and disparate device data into our application collective. That&#8217;s where I see TDS&#8217;s next couple of years focus: Extending our framework to incorporate the data collection and integration so that we can look toward the next advent: Having the machine interpret the data that we&#8217;ve collected!<\/span>\n\n<span data-preserver-spaces=\"true\">The future (at least in the manufacturing world) is to be able to have the machine tell us that something is wrong (an unnoticeable change in LTS data that we couldn&#8217;t see from our dashboard, for example).<\/span>\n\n<span data-preserver-spaces=\"true\">Baby steps! Always baby steps.<\/span>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;3.28&#8243; background_image=&#8221;http:\/\/www.trinitydatasolutions.com\/wp-content\/uploads\/2019\/07\/business-coach-017.jpg&#8221; fb_built=&#8221;1&#8243; _i=&#8221;2&#8243; _address=&#8221;2&#8243;][et_pb_row _builder_version=&#8221;3.27.2&#8243; background_color=&#8221;rgba(0,0,0,0)&#8221; custom_margin=&#8221;|||&#8221; global_module=&#8221;483&#8243; saved_tabs=&#8221;all&#8221; _i=&#8221;0&#8243; _address=&#8221;2.0&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221; _i=&#8221;0&#8243; _address=&#8221;2.0.0&#8243;][et_pb_text admin_label=&#8221;CTA Section Subtitle&#8221; _builder_version=&#8221;3.27.4&#8243; text_font=&#8221;Roboto|on||on|&#8221; text_font_size=&#8221;24px&#8221; text_letter_spacing=&#8221;4px&#8221; header_font=&#8221;Open Sans||||||||&#8221; background_layout=&#8221;dark&#8221; module_alignment=&#8221;center&#8221; animation_style=&#8221;zoom&#8221; animation_intensity_zoom=&#8221;20%&#8221; _i=&#8221;0&#8243; _address=&#8221;2.0.0.0&#8243;]<p>Our Newsletter<\/p>[\/et_pb_text][et_pb_divider color=&#8221;#ffffff&#8221; divider_position=&#8221;center&#8221; divider_weight=&#8221;3px&#8221; disabled_on=&#8221;on|on|off%22&#8243; _builder_version=&#8221;3.26.2&#8243; max_width=&#8221;150px&#8221; module_alignment=&#8221;left&#8221; height=&#8221;false&#8221; animation_style=&#8221;zoom&#8221; animation_delay=&#8221;200ms&#8221; animation_intensity_zoom=&#8221;20%&#8221; locked=&#8221;off&#8221; _i=&#8221;1&#8243; _address=&#8221;2.0.0.1&#8243;][\/et_pb_divider][et_pb_signup mailchimp_list=&#8221;MailChimp|03dac884f0&#8243; name_field=&#8221;on&#8221; title=&#8221;Keep In Touch?&#8221; description=&#8221;<\/p>\n<p>Sign up for our newsletter to keep up with us. Find out what new projects we are working on, see our tech spotlights and more!<\/p>\n<p>&#8221; _builder_version=&#8221;3.27.2&#8243; header_font=&#8221;Roboto|700|||||||&#8221; header_font_size=&#8221;60px&#8221; body_font=&#8221;Open Sans||||||||&#8221; body_font_size=&#8221;16px&#8221; body_line_height=&#8221;1.8em&#8221; result_message_font=&#8221;Roboto||||||||&#8221; form_field_font=&#8221;Roboto||||||||&#8221; use_background_color=&#8221;off&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#004d6d&#8221; button_bg_color=&#8221;#bdf482&#8243; button_border_color=&#8221;#bdf482&#8243; button_border_radius=&#8221;30px&#8221; button_letter_spacing=&#8221;8px&#8221; button_font=&#8221;Open Sans|700||on|||||&#8221; button_icon=&#8221;%%3%%&#8221; button_icon_color=&#8221;#ffffff&#8221; animation_style=&#8221;fold&#8221; animation_direction=&#8221;top&#8221; animation_delay=&#8221;200ms&#8221; button_border_color_hover=&#8221;#ffffff&#8221; button_border_radius_hover=&#8221;0px&#8221; button_letter_spacing_hover=&#8221;4px&#8221; button_bg_color_hover=&#8221;rgba(0,0,0,0)&#8221; locked=&#8221;off&#8221; button_text_size__hover_enabled=&#8221;off&#8221; button_one_text_size__hover_enabled=&#8221;off&#8221; button_two_text_size__hover_enabled=&#8221;off&#8221; button_text_color__hover_enabled=&#8221;off&#8221; button_one_text_color__hover_enabled=&#8221;off&#8221; button_two_text_color__hover_enabled=&#8221;off&#8221; button_border_width__hover_enabled=&#8221;off&#8221; button_one_border_width__hover_enabled=&#8221;off&#8221; button_two_border_width__hover_enabled=&#8221;off&#8221; button_border_color__hover_enabled=&#8221;on&#8221; button_border_color__hover=&#8221;#ffffff&#8221; button_one_border_color__hover_enabled=&#8221;off&#8221; button_two_border_color__hover_enabled=&#8221;off&#8221; button_border_radius__hover_enabled=&#8221;on&#8221; button_border_radius__hover=&#8221;0px&#8221; button_one_border_radius__hover_enabled=&#8221;off&#8221; button_two_border_radius__hover_enabled=&#8221;off&#8221; button_letter_spacing__hover_enabled=&#8221;on&#8221; button_letter_spacing__hover=&#8221;4px&#8221; button_one_letter_spacing__hover_enabled=&#8221;off&#8221; button_two_letter_spacing__hover_enabled=&#8221;off&#8221; button_bg_color__hover_enabled=&#8221;on&#8221; button_bg_color__hover=&#8221;rgba(0,0,0,0)&#8221; button_one_bg_color__hover_enabled=&#8221;off&#8221; button_two_bg_color__hover_enabled=&#8221;off&#8221; _i=&#8221;2&#8243; _address=&#8221;2.0.0.2&#8243; button_bg_enable_color=&#8221;on&#8221;] There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don&#8217;t look even slightly believable. If you are going to use a passage of Lorem Ipsum. [\/et_pb_signup][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;Section&#8221; _builder_version=&#8221;3.22&#8243; background_color=&#8221;#222222&#8243; custom_padding=&#8221;0px|||&#8221; custom_padding_tablet=&#8221;0px|||&#8221; transparent_background=&#8221;off&#8221; padding_mobile=&#8221;on&#8221; make_fullwidth=&#8221;off&#8221; use_custom_width=&#8221;off&#8221; width_unit=&#8221;on&#8221; fb_built=&#8221;1&#8243; _i=&#8221;3&#8243; _address=&#8221;3&#8243;][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; use_custom_gutter=&#8221;on&#8221; gutter_width=&#8221;2&#8243; padding_mobile=&#8221;on&#8221; column_padding_mobile=&#8221;on&#8221; admin_label=&#8221;Row&#8221; module_class=&#8221; et_pb_row_fullwidth&#8221; _builder_version=&#8221;3.25&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; width=&#8221;94%&#8221; width_tablet=&#8221;80%&#8221; width_last_edited=&#8221;on|desktop&#8221; max_width=&#8221;94%&#8221; max_width_tablet=&#8221;80%&#8221; max_width_last_edited=&#8221;on|desktop&#8221; custom_padding=&#8221;40px|||&#8221; make_fullwidth=&#8221;on&#8221; use_custom_width=&#8221;off&#8221; width_unit=&#8221;on&#8221; _i=&#8221;0&#8243; _address=&#8221;3.0&#8243;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221; _i=&#8221;0&#8243; _address=&#8221;3.0.0&#8243;][et_pb_image src=&#8221;http:\/\/www.trinitydatasolutions.com\/wp-content\/uploads\/2019\/07\/063.jpg&#8221; url=&#8221;#&#8221; show_bottom_space=&#8221;off&#8221; align=&#8221;center&#8221; force_fullwidth=&#8221;on&#8221; align_tablet=&#8221;center&#8221; align_last_edited=&#8221;on|desktop&#8221; admin_label=&#8221;Image&#8221; _builder_version=&#8221;3.23&#8243; animation_style=&#8221;fade&#8221; animation_duration=&#8221;500ms&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; animation=&#8221;fade_in&#8221; sticky=&#8221;on&#8221; always_center_on_mobile=&#8221;on&#8221; _i=&#8221;0&#8243; _address=&#8221;3.0.0.0&#8243;][\/et_pb_image][et_pb_text admin_label=&#8221;Text&#8221; _builder_version=&#8221;3.27.4&#8243; text_font=&#8221;PT Sans|on|||&#8221; text_text_color=&#8221;#888888&#8243; text_font_size=&#8221;12&#8243; text_letter_spacing=&#8221;2px&#8221; text_line_height=&#8221;1.2em&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; text_orientation=&#8221;center&#8221; module_alignment=&#8221;center&#8221; custom_margin=&#8221;30px|||&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; _i=&#8221;1&#8243; _address=&#8221;3.0.0.1&#8243;]ADVERTISING[\/et_pb_text][et_pb_text admin_label=&#8221;Text&#8221; _builder_version=&#8221;3.27.4&#8243; text_font=&#8221;PT Sans||||&#8221; text_text_color=&#8221;#ffffff&#8221; text_font_size=&#8221;24&#8243; text_line_height=&#8221;1.2em&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; text_orientation=&#8221;center&#8221; module_alignment=&#8221;center&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; _i=&#8221;2&#8243; _address=&#8221;3.0.0.2&#8243;]<span style=\"color: #ffffff;\"><a style=\"color: #ffffff;\" href=\"#\">Nailing It On The Head With<\/a><\/span>\n<span style=\"color: #ffffff;\"><a style=\"color: #ffffff;\" href=\"#\"> Free Internet Advertising<\/a><\/span>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221; _i=&#8221;1&#8243; _address=&#8221;3.0.1&#8243;][et_pb_image src=&#8221;http:\/\/www.trinitydatasolutions.com\/wp-content\/uploads\/2019\/07\/073.jpg&#8221; url=&#8221;#&#8221; align=&#8221;center&#8221; force_fullwidth=&#8221;on&#8221; align_tablet=&#8221;center&#8221; align_last_edited=&#8221;on|desktop&#8221; admin_label=&#8221;Image&#8221; _builder_version=&#8221;3.23&#8243; animation_style=&#8221;fade&#8221; animation_duration=&#8221;500ms&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; animation=&#8221;fade_in&#8221; sticky=&#8221;off&#8221; always_center_on_mobile=&#8221;on&#8221; _i=&#8221;0&#8243; _address=&#8221;3.0.1.0&#8243;][\/et_pb_image][et_pb_text admin_label=&#8221;Text&#8221; _builder_version=&#8221;3.27.4&#8243; text_font=&#8221;PT Sans|on|||&#8221; text_text_color=&#8221;#888888&#8243; text_font_size=&#8221;12&#8243; text_letter_spacing=&#8221;2px&#8221; text_line_height=&#8221;1.2em&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; text_orientation=&#8221;center&#8221; module_alignment=&#8221;center&#8221; custom_margin=&#8221;30px|||&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; _i=&#8221;1&#8243; _address=&#8221;3.0.1.1&#8243;]MOTIVATION[\/et_pb_text][et_pb_text admin_label=&#8221;Text&#8221; _builder_version=&#8221;3.27.4&#8243; text_font=&#8221;PT Sans||||&#8221; text_text_color=&#8221;#ffffff&#8221; text_font_size=&#8221;24&#8243; text_line_height=&#8221;1.2em&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; text_orientation=&#8221;center&#8221; module_alignment=&#8221;center&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; _i=&#8221;2&#8243; _address=&#8221;3.0.1.2&#8243;]<span style=\"color: #ffffff;\"><a style=\"color: #ffffff;\" href=\"#\">Believing Is The Absence<\/a><\/span>\n<span style=\"color: #ffffff;\"><a style=\"color: #ffffff;\" href=\"#\"> Of Doubt<\/a><\/span>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221; _i=&#8221;2&#8243; _address=&#8221;3.0.2&#8243;][et_pb_image src=&#8221;http:\/\/www.trinitydatasolutions.com\/wp-content\/uploads\/2019\/07\/082.jpg&#8221; url=&#8221;#&#8221; align=&#8221;center&#8221; force_fullwidth=&#8221;on&#8221; align_tablet=&#8221;center&#8221; align_last_edited=&#8221;on|desktop&#8221; admin_label=&#8221;Image&#8221; _builder_version=&#8221;3.23&#8243; animation_style=&#8221;fade&#8221; animation_duration=&#8221;500ms&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; animation=&#8221;fade_in&#8221; sticky=&#8221;off&#8221; always_center_on_mobile=&#8221;on&#8221; _i=&#8221;0&#8243; _address=&#8221;3.0.2.0&#8243;][\/et_pb_image][et_pb_text admin_label=&#8221;Text&#8221; _builder_version=&#8221;3.27.4&#8243; text_font=&#8221;PT Sans|on|||&#8221; text_text_color=&#8221;#888888&#8243; text_font_size=&#8221;12&#8243; text_letter_spacing=&#8221;2px&#8221; text_line_height=&#8221;1.2em&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; text_orientation=&#8221;center&#8221; module_alignment=&#8221;center&#8221; custom_margin=&#8221;30px|||&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; _i=&#8221;1&#8243; _address=&#8221;3.0.2.1&#8243;]TRAVEL[\/et_pb_text][et_pb_text admin_label=&#8221;Text&#8221; _builder_version=&#8221;3.27.4&#8243; text_font=&#8221;PT Sans||||&#8221; text_text_color=&#8221;#ffffff&#8221; text_font_size=&#8221;24&#8243; text_line_height=&#8221;1.2em&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; text_orientation=&#8221;center&#8221; module_alignment=&#8221;center&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221; _i=&#8221;2&#8243; _address=&#8221;3.0.2.2&#8243;]<span style=\"color: #ffffff;\"><a style=\"color: #ffffff;\" href=\"#\">Big Savings On Gas<\/a><\/span>\n<span style=\"color: #ffffff;\"><a style=\"color: #ffffff;\" href=\"#\"> While You Travel<\/a><\/span>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]\n","protected":false},"excerpt":{"rendered":"<p>Founding <\/p>\n","protected":false},"author":1,"featured_media":442,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"[et_pb_section fb_built=\"1\" admin_label=\"section\" _builder_version=\"3.28\" background_color=\"#ffffff\" custom_padding=\"||0px|\" custom_padding_tablet=\"||0px|\" hover_enabled=\"0\" transparent_background=\"off\" padding_mobile=\"on\" make_fullwidth=\"off\" use_custom_width=\"off\" width_unit=\"on\" fb_built=\"1\" _i=\"0\" _address=\"0\" background_image=\"http:\/\/www.trinitydatasolutions.com\/wp-content\/uploads\/2019\/07\/samuel-zeller-9DXyfwO_A6I-unsplash.jpg\"][et_pb_row padding_mobile=\"on\" column_padding_mobile=\"on\" admin_label=\"row\" _builder_version=\"3.25\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" custom_padding=\"||0px|\" make_fullwidth=\"off\" use_custom_width=\"off\" width_unit=\"on\" _i=\"0\" _address=\"0.0\"][et_pb_column type=\"4_4\" _builder_version=\"3.25\" custom_padding=\"|||\" custom_padding__hover=\"|||\" _i=\"0\" _address=\"0.0.0\"][et_pb_divider show_divider=\"off\" disabled_on=\"on|on|off\" admin_label=\"Divider\" _builder_version=\"3.23.4\" height=\"110px\" hide_on_mobile=\"on\" _i=\"0\" _address=\"0.0.0.0\"][\/et_pb_divider][et_pb_text admin_label=\"Text\" _builder_version=\"3.28\" text_font=\"PT Sans|on|||\" text_text_color=\"#edffd1\" text_letter_spacing=\"2px\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" text_orientation=\"center\" module_alignment=\"center\" custom_margin=\"||0px|\" custom_padding=\"||0px|\" hover_enabled=\"0\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"1\" _address=\"0.0.0.1\"]\n\nTECHNOLOGY&nbsp;\n\n[\/et_pb_text][et_pb_text admin_label=\"Text\" _builder_version=\"3.28\" text_font=\"PT Sans||||\" text_text_color=\"#ffffff\" text_font_size=\"72\" text_line_height=\"1.1em\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" text_orientation=\"center\" max_width=\"660px\" module_alignment=\"center\" custom_margin=\"18px||80px|\" hover_enabled=\"0\" text_font_size_tablet=\"52\" text_font_size_last_edited=\"on|desktop\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"2\" _address=\"0.0.0.2\" header_text_color=\"#edffd1\"]\n\nWhat Exactly is a Framework?\n\n[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=\"1\" admin_label=\"Section\" _builder_version=\"3.22\" background_color=\"#f7f7f4\" custom_padding=\"0px|||\" custom_padding_tablet=\"0px|||\" transparent_background=\"off\" padding_mobile=\"on\" make_fullwidth=\"off\" use_custom_width=\"off\" width_unit=\"on\" fb_built=\"1\" _i=\"1\" _address=\"1\"][et_pb_row padding_mobile=\"on\" column_padding_mobile=\"on\" admin_label=\"row\" _builder_version=\"3.25\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" max_width=\"620px\" custom_padding=\"0px|||\" make_fullwidth=\"off\" use_custom_width=\"on\" width_unit=\"on\" custom_width_px=\"620px\" _i=\"0\" _address=\"1.0\"][et_pb_column type=\"4_4\" _builder_version=\"3.25\" custom_padding=\"|||\" custom_padding__hover=\"|||\" _i=\"0\" _address=\"1.0.0\"][et_pb_image src=\"http:\/\/www.trinitydatasolutions.com\/wp-content\/uploads\/2019\/09\/Mark-Blog-Post-Author-Icon.png\" show_bottom_space=\"off\" align=\"center\" align_tablet=\"center\" align_last_edited=\"on|desktop\" admin_label=\"Image\" _builder_version=\"3.23\" custom_margin=\"-48px|||\" hover_enabled=\"0\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" animation=\"off\" sticky=\"on\" always_center_on_mobile=\"on\" _i=\"0\" _address=\"1.0.0.0\"][\/et_pb_image][et_pb_text admin_label=\"Text\" _builder_version=\"3.28\" text_font=\"PT Sans||||\" text_text_color=\"#323232\" text_font_size=\"18\" text_line_height=\"1.4em\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" text_orientation=\"center\" module_alignment=\"center\" custom_margin=\"14px||0px|\" hover_enabled=\"0\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"1\" _address=\"1.0.0.1\"]\n\n<span style=\"color: #02b875;\"><strong>Mark Douglass<\/strong><\/span>, President, Trinity Data Solutions\n\n[\/et_pb_text][et_pb_text admin_label=\"Text\" _builder_version=\"3.28\" text_font=\"PT Sans|on|||\" text_text_color=\"#363636\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" text_orientation=\"center\" module_alignment=\"center\" custom_margin=\"0px|||\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"2\" _address=\"1.0.0.2\" hover_enabled=\"0\"]\n\n01 September 2019\n\n[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row padding_mobile=\"on\" column_padding_mobile=\"on\" admin_label=\"row\" _builder_version=\"3.28\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" max_width=\"620px\" custom_padding=\"0px|||\" hover_enabled=\"0\" make_fullwidth=\"off\" use_custom_width=\"on\" width_unit=\"on\" custom_width_px=\"620px\" _i=\"1\" _address=\"1.1\"][et_pb_column type=\"4_4\" _builder_version=\"3.25\" custom_padding=\"|||\" custom_padding__hover=\"|||\" _i=\"0\" _address=\"1.1.0\"][et_pb_text admin_label=\"Text\" _builder_version=\"3.28\" text_font=\"PT Serif||||\" text_text_color=\"#363636\" text_font_size=\"24\" text_line_height=\"1.4em\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" max_width=\"620px\" custom_margin=\"40px||0px|||\" hover_enabled=\"0\" text_font_size_last_edited=\"on|tablet\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"0\" _address=\"1.1.0.0\" custom_padding=\"||0px|||\"]\n\nIn the software world, you hear the word \"framework\" all the time. Of course, it's implicit connotative meaning is pretty straightforward but when you start to examine things a little closer, you'll see that software frameworks are a set of tools that allow you to build an application. That's it in the simplest form. When you are a software developer though, choosing the \"right\" framework is always a tricky disposition. A wrong choice can leave you with years of time invested only to find out that the framework you've based everything you've built on is no longer supported.\n\n&nbsp;\n\n[\/et_pb_text][et_pb_text admin_label=\"Text\" _builder_version=\"3.28\" text_font=\"PT Serif||||\" text_text_color=\"#363636\" text_font_size=\"20\" text_line_height=\"1.5em\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" max_width=\"620px\" custom_margin=\"13px||40px|||\" hover_enabled=\"0\" text_font_size_last_edited=\"on|tablet\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"1\" _address=\"1.1.0.1\" header_font=\"Open Sans||||||||\"]\n<h2 role=\"textbox\" aria-multiline=\"true\" class=\"block-editor-rich-text__editable editor-rich-text__editable\" contenteditable=\"true\" data-is-placeholder-visible=\"false\" aria-label=\"Write heading\u2026\" aria-autocomplete=\"list\">Languages vs Frameworks<\/h2>\n&nbsp;\n\nDon't be confused between a \"language\" and a framework - the two are independent of each other. You can program in a bunch of languages and some frameworks are specific to that language set however some frameworks are independent. I know, it's confusing to me as well and I've been doing this since the early 90s!\n\n[\/et_pb_text][et_pb_text admin_label=\"Text\" _builder_version=\"3.28\" text_font=\"PT Serif||||\" text_text_color=\"#363636\" text_font_size=\"20\" text_line_height=\"1.5em\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" max_width=\"620px\" custom_margin=\"38px||0px|||\" hover_enabled=\"0\" text_font_size_last_edited=\"on|tablet\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"1\" _address=\"1.1.0.1\"]\n\nYou pick your language (or languages as most developers should be able to do more than one anyway) and then you adapt. At TDS, we went through different phases of how we develop applications. Since we've mostly been focused on manufacturing and logistics clients and the length of time we've been with them is hovering around the 20 year mark, we've done things in different ways and morphed into where we are today.\n\n[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row padding_mobile=\"on\" column_padding_mobile=\"on\" admin_label=\"row\" _builder_version=\"3.25\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" max_width=\"620px\" custom_padding=\"0px|||\" make_fullwidth=\"off\" use_custom_width=\"on\" width_unit=\"on\" custom_width_px=\"620px\" _i=\"3\" _address=\"1.3\"][et_pb_column type=\"4_4\" _builder_version=\"3.25\" custom_padding=\"|||\" custom_padding__hover=\"|||\" _i=\"0\" _address=\"1.3.0\"][et_pb_text admin_label=\"Text\" _builder_version=\"3.28\" text_font=\"PT Serif||||\" text_text_color=\"#363636\" text_font_size=\"20\" text_line_height=\"1.5em\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" max_width=\"620px\" custom_margin=\"30px||0px|\" hover_enabled=\"0\" text_font_size_last_edited=\"on|tablet\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"0\" _address=\"1.5.0.0\"]\n<h2 role=\"textbox\" aria-multiline=\"true\" class=\"block-editor-rich-text__editable editor-rich-text__editable\" contenteditable=\"true\" data-is-placeholder-visible=\"false\" aria-label=\"Write heading\u2026\" aria-autocomplete=\"list\">A Bit of History<\/h2>\n&nbsp;\n\nWe started out developing in Delphi (Object Pascal) and Microsoft SQL Server 6.0 building custom client\/server applications back in the 90s when I had my first company. The choice back in the EARLY 90s was Visual Basic or Borland's Delphi product. After a month-long exhaustive side-by-side comparison for which, I had to learn both languages! I realized that Delphi was far superior to Visual Basic in performance and third-party libraries (there's a new term - more on that later) that would allow me to build applications that my clients needed the quickest.\n\n&nbsp;\n\n<span>We developed a lot of applications and they were solid performers for many years. In fact, one of them is still running after 19 years (and counting)! My only regret (and yet saving grace) was that I never fully developed a \"framework\" of my own in which to deliver the applications within the Delphi product. We mostly copied\/pasted libraries and modified them as needed. A lot of that was due to the fast-paced changes that were occurring in the industry. The web was just starting to make it's way to the forefront. You have to remember we're talking late 90s! Some of you reading this might not have even been born yet.<\/span>\n\n[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row use_custom_gutter=\"on\" gutter_width=\"2\" padding_mobile=\"on\" column_padding_mobile=\"on\" custom_padding_last_edited=\"on|tablet\" admin_label=\"Row\" _builder_version=\"3.25\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" custom_padding=\"50px|||\" custom_padding_tablet=\"17px|||\" make_fullwidth=\"off\" use_custom_width=\"off\" width_unit=\"on\" custom_width_px=\"830px\" _i=\"6\" _address=\"1.6\"][et_pb_column type=\"4_4\" _builder_version=\"3.25\" custom_padding=\"|||\" custom_padding__hover=\"|||\" _i=\"0\" _address=\"1.6.0\"][et_pb_image src=\"http:\/\/www.trinitydatasolutions.com\/wp-content\/uploads\/2019\/07\/044.jpg\" show_bottom_space=\"off\" align_tablet=\"center\" align_last_edited=\"on|desktop\" admin_label=\"Image\" _builder_version=\"3.23\" animation_style=\"fade\" animation_duration=\"500ms\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" animation=\"fade_in\" sticky=\"on\" always_center_on_mobile=\"on\" _i=\"0\" _address=\"1.6.0.0\"][\/et_pb_image][et_pb_image src=\"http:\/\/www.trinitydatasolutions.com\/wp-content\/uploads\/2019\/09\/markus-spiske-466ENaLuhLY-unsplash.jpg\" _builder_version=\"3.28\" hover_enabled=\"0\"][\/et_pb_image][et_pb_divider color=\"#aeaeac\" admin_label=\"Divider\" _builder_version=\"3.28\" custom_css_main_element=\"width:130px;\" hide_on_mobile=\"off\" _i=\"0\" _address=\"1.2.1.0\" hover_enabled=\"0\" custom_margin=\"|20px||||\"][\/et_pb_divider][et_pb_text admin_label=\"Text\" _builder_version=\"3.28\" text_font=\"PT Serif||on||\" text_text_color=\"#363636\" text_font_size=\"16\" text_line_height=\"1em\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" max_width=\"130px\" custom_margin=\"20px||0px|\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"1\" _address=\"1.2.1.1\" hover_enabled=\"0\"]\n\nI'm a standard Image Caption.\n\n[\/et_pb_text][et_pb_text admin_label=\"Text\" _builder_version=\"3.27.4\" text_font=\"PT Serif||on||\" text_text_color=\"#363636\" text_font_size=\"12\" text_line_height=\"1.2em\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" max_width=\"130px\" custom_margin=\"6px|||\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"2\" _address=\"1.2.1.2\"]Photograph by Lorem Ipsum via <span style=\"color: #02ab6b;\">Unsplash<\/span>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row padding_mobile=\"on\" column_padding_mobile=\"on\" admin_label=\"row\" _builder_version=\"3.25\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" max_width=\"620px\" custom_padding=\"17px|||\" make_fullwidth=\"off\" use_custom_width=\"on\" width_unit=\"on\" custom_width_px=\"620px\" _i=\"5\" _address=\"1.5\"][et_pb_column type=\"4_4\" _builder_version=\"3.25\" custom_padding=\"|||\" custom_padding__hover=\"|||\" _i=\"0\" _address=\"1.5.0\"][et_pb_text admin_label=\"Text\" _builder_version=\"3.28\" text_font=\"PT Serif||||\" text_text_color=\"#363636\" text_font_size=\"20\" text_line_height=\"1.5em\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" max_width=\"620px\" custom_margin=\"30px||0px|\" hover_enabled=\"0\" text_font_size_last_edited=\"on|tablet\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"0\" _address=\"1.10.0.0\" custom_padding=\"||0px|||\"]\n<h2 role=\"textbox\" aria-multiline=\"true\" class=\"block-editor-rich-text__editable editor-rich-text__editable\" contenteditable=\"true\" data-is-placeholder-visible=\"false\" aria-label=\"Write heading\u2026\" aria-autocomplete=\"list\">Turn of the Century, Time for a New Development Platform<\/h2>\n<span data-preserver-spaces=\"true\"><\/span>\n\n<span data-preserver-spaces=\"true\">As we got out of the Y2K crisis (where we even had DOS applications running Foxpro and Clipper - yes, I am THAT old), we started to rethink how we can incorporate web technologies within what we were doing. There wasn't a huge calling for it since all of the applications revolved around the manufacturing floor we were focused on integrating with industrial systems more so than worrying about web sites.<\/span>\n\n<span data-preserver-spaces=\"true\"><\/span>\n\n<span data-preserver-spaces=\"true\">With new versions of SQL Server starting to come out with more in-depth features and the&nbsp;<a target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/.NET_Framework_version_history\" class=\"_e75a791d-denali-editor-page-rtfLink\" rel=\"noopener noreferrer\">release of the Microsoft .NET Framework in 2002<\/a>, we started to rethink what Microsoft was trying to do. If you were ever part of the development community back in the 90s, you'll remember all the frustrating things like&nbsp;<a target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/DLL_Hell\" class=\"_e75a791d-denali-editor-page-rtfLink\" rel=\"noopener noreferrer\">DLL Hell<\/a>&nbsp;and&nbsp;<a target=\"_blank\" href=\"https:\/\/www.techrepublic.com\/article\/get-it-done-understanding-the-windows-2000-blue-screen-of-death-part-1\/\" class=\"_e75a791d-denali-editor-page-rtfLink\" rel=\"noopener noreferrer\">Blue Screen's of Death<\/a>&nbsp;(well that might still go on a little) and Delphi wasn't impervious to any of things. In fact, with the pace that was being set forward by Microsoft, Delphi started to lose its market share within the developer community.<\/span>\n\n[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row padding_mobile=\"on\" column_padding_mobile=\"on\" admin_label=\"row\" _builder_version=\"3.25\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" max_width=\"620px\" custom_padding=\"17px|||\" make_fullwidth=\"off\" use_custom_width=\"on\" width_unit=\"on\" custom_width_px=\"620px\" _i=\"7\" _address=\"1.7\"][et_pb_column type=\"4_4\" _builder_version=\"3.25\" custom_padding=\"|||\" custom_padding__hover=\"|||\" _i=\"0\" _address=\"1.7.0\"][et_pb_text admin_label=\"Text\" _builder_version=\"3.28\" text_font=\"PT Serif||||\" text_text_color=\"#363636\" text_font_size=\"20\" text_line_height=\"1.5em\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" max_width=\"620px\" custom_margin=\"30px||0px|\" hover_enabled=\"0\" text_font_size_last_edited=\"on|tablet\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"0\" _address=\"1.7.0.0\"]\n<h2 role=\"textbox\" aria-multiline=\"true\" class=\"block-editor-rich-text__editable editor-rich-text__editable\" contenteditable=\"true\" data-is-placeholder-visible=\"false\" aria-label=\"Write heading\u2026\" aria-autocomplete=\"list\">Time for a Change?<\/h2>\n<span><\/span>\n\n<span>I originally chose Delphi because of the Object Pascal language. I felt like I was drawn to it's structure and it just made sense to me. VB always frustrated me and seemed to confound me. I like structure and it also helped that the other developers that I hired all knew Delphi and worked with it but now, we started to look at alternatives when 2006 rolled around and version 2.0 came out.<\/span>\n\n<span>We were getting more requests to do some web-based things and there was a lull in work around this time. We actually had time to look at what was out there. We did an in-depth dive into C# and I took to it like a fish in the ocean. I loved the syntax structure (albeit backwards from Pascal in some manners) and absolutely loved the case sensitiveness of it. <\/span>\n\n<span>The best (and worst) part of it of course was ASP.NET. All of sudden, we could write reusable libraries that we could adapt to work between web and windows forms projects.<\/span>\n\n[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row use_custom_gutter=\"on\" gutter_width=\"2\" padding_mobile=\"on\" column_padding_mobile=\"on\" custom_padding_last_edited=\"on|tablet\" admin_label=\"Row\" _builder_version=\"3.25\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" custom_padding=\"27px|||||\" custom_padding_tablet=\"17px|||\" make_fullwidth=\"off\" use_custom_width=\"off\" width_unit=\"on\" custom_width_px=\"830px\" _i=\"6\" _address=\"1.6\"][et_pb_column type=\"4_4\" _builder_version=\"3.25\" custom_padding=\"|||\" custom_padding__hover=\"|||\" _i=\"0\" _address=\"1.6.0\"][et_pb_image src=\"http:\/\/www.trinitydatasolutions.com\/wp-content\/uploads\/2019\/07\/044.jpg\" show_bottom_space=\"off\" align_tablet=\"center\" align_last_edited=\"on|desktop\" admin_label=\"Image\" _builder_version=\"3.23\" animation_style=\"fade\" animation_duration=\"500ms\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" animation=\"fade_in\" sticky=\"on\" always_center_on_mobile=\"on\" _i=\"0\" _address=\"1.6.0.0\"][\/et_pb_image][et_pb_image src=\"http:\/\/www.trinitydatasolutions.com\/wp-content\/uploads\/2019\/09\/gabriel-sollmann-Y7d265_7i08-unsplash.jpg\" _builder_version=\"3.28\" hover_enabled=\"0\" custom_margin=\"|0px||||\"][\/et_pb_image][et_pb_text admin_label=\"Text\" _builder_version=\"3.27.4\" text_font=\"PT Serif||on||\" text_text_color=\"#363636\" text_font_size=\"16\" text_line_height=\"1em\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" custom_margin=\"20px||0px|\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"1\" _address=\"1.6.0.1\"]I'm a standard Image Caption.[\/et_pb_text][et_pb_text admin_label=\"Text\" _builder_version=\"3.27.4\" text_font=\"PT Serif||on||\" text_text_color=\"#363636\" text_font_size=\"12\" text_line_height=\"1.2em\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" custom_margin=\"6px|||\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"2\" _address=\"1.6.0.2\"]Photograph by Lorem Ipsum via <span style=\"color: #02ab6b;\">Unsplash<\/span>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row padding_mobile=\"on\" column_padding_mobile=\"on\" admin_label=\"row\" _builder_version=\"3.28\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" max_width=\"620px\" custom_padding=\"17px|||\" hover_enabled=\"0\" make_fullwidth=\"off\" use_custom_width=\"on\" width_unit=\"on\" custom_width_px=\"620px\" _i=\"10\" _address=\"1.10\"][et_pb_column type=\"4_4\" _builder_version=\"3.25\" custom_padding=\"|||\" custom_padding__hover=\"|||\" _i=\"0\" _address=\"1.10.0\"][et_pb_text admin_label=\"Text\" _builder_version=\"3.28\" text_font=\"PT Serif||||\" text_text_color=\"#363636\" text_font_size=\"20\" text_line_height=\"1.5em\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" max_width=\"620px\" custom_margin=\"30px||-27px|||\" hover_enabled=\"0\" text_font_size_last_edited=\"on|tablet\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"0\" _address=\"1.10.0.0\"]\n<h1><span data-preserver-spaces=\"true\">Libraries vs Frameworks<\/span><\/h1>\n<span data-preserver-spaces=\"true\"><\/span>\n\n<span data-preserver-spaces=\"true\">So there is an&nbsp;<\/span><a target=\"_blank\" href=\"https:\/\/www.geeksforgeeks.org\/software-framework-vs-library\/\" class=\"_e75a791d-denali-editor-page-rtfLink\" rel=\"noopener noreferrer\"><span data-preserver-spaces=\"true\">excellent geeky article about Libraries versus Frameworks<\/span><\/a><span data-preserver-spaces=\"true\">&nbsp;but in essence we, at first, were simply sharing libraries of functions across different applications. Simple things at first: grids, how to connect to a database or how to run a stored procedure.&nbsp;<\/span><span data-preserver-spaces=\"true\">That need to simplify and write-once did give birth to our Trinity Framework though.&nbsp;<\/span><span data-preserver-spaces=\"true\">We needed a way where we could spin up a shell, security and menu management without having to write a lick of code and by just attaching our own DLLs as a starting point.<\/span>\n\n<span data-preserver-spaces=\"true\">That need to simplify and write-once did give birth to our Trinity Framework though. We needed a way where we could spin up a shell, security and menu management without having to write a lick of code and by just attaching our own DLLs as a starting point.<\/span>\n\n<span>After MANY iterations (we're talking over 7 years!) we finally managed to incorporate most of what we want to the point now where we can focus on delivering functionality and the details of the application versus copying\/rewriting things again and again. It's a huge time saver for us and our clients.<\/span><span data-preserver-spaces=\"true\"><\/span>\n\n<span data-preserver-spaces=\"true\">The beauty of what we've done though allows us to focus on what the application needs to do because we already have 99% of the components we need to realize a function. Not having to write the same code or functions to do the same thing is key.<\/span>\n\n<span data-preserver-spaces=\"true\"><\/span>\n\n[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row padding_mobile=\"on\" column_padding_mobile=\"on\" admin_label=\"row\" _builder_version=\"3.25\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" max_width=\"620px\" custom_padding=\"17px|||\" make_fullwidth=\"off\" use_custom_width=\"on\" width_unit=\"on\" custom_width_px=\"620px\" _i=\"10\" _address=\"1.10\"][et_pb_column type=\"4_4\" _builder_version=\"3.25\" custom_padding=\"|||\" custom_padding__hover=\"|||\" _i=\"0\" _address=\"1.10.0\"][et_pb_text admin_label=\"Text\" _builder_version=\"3.28\" text_font=\"PT Serif||||\" text_text_color=\"#363636\" text_font_size=\"20\" text_line_height=\"1.5em\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" max_width=\"620px\" custom_margin=\"30px||0px|\" hover_enabled=\"0\" text_font_size_last_edited=\"on|tablet\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"0\" _address=\"1.10.0.0\"]\n\n<span data-preserver-spaces=\"true\"><\/span>\n<h1><span data-preserver-spaces=\"true\">Where Are We Heading?<\/span><\/h1>\n<em><span data-preserver-spaces=\"true\"><\/span><\/em>\n\n<em><span data-preserver-spaces=\"true\">\"Plus ca change, plus c'est la meme chose\"<\/span><\/em><span data-preserver-spaces=\"true\">&nbsp;(The more things change, the more they stay the same). It's the one thing I've learned in my 30+ years in this industry. Change is inevitable and we must change and adapt to continue to build productive solutions for our customers. The change we made from adopting the .NET Framework was a solid choice and has allowed this business to grow.<\/span>\n\n<span data-preserver-spaces=\"true\">AI is something that I'm keenly interested in. Especially in the way that we can harness the power of machine learning and put it to work in the manufacturing world. The only way that we will able to move down that pathway is for an efficient and cost-effective way of integrating these sensors and disparate device data into our application collective. That's where I see TDS's next couple of years focus: Extending our framework to incorporate the data collection and integration so that we can look toward the next advent: Having the machine interpret the data that we've collected!<\/span>\n\n<span data-preserver-spaces=\"true\">The future (at least in the manufacturing world) is to be able to have the machine tell us that something is wrong (an unnoticeable change in LTS data that we couldn't see from our dashboard, for example).<\/span>\n\n<span data-preserver-spaces=\"true\">Baby steps! Always baby steps.<\/span>\n\n[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=\"1\" _builder_version=\"3.28\" background_image=\"http:\/\/www.trinitydatasolutions.com\/wp-content\/uploads\/2019\/07\/business-coach-017.jpg\" hover_enabled=\"0\"][et_pb_row _builder_version=\"3.27.2\" background_color=\"rgba(0,0,0,0)\" custom_margin=\"|||\" saved_tabs=\"all\" _i=\"0\" _address=\"0\" global_module=\"483\"][et_pb_column type=\"4_4\" _builder_version=\"3.25\" custom_padding=\"|||\" custom_padding__hover=\"|||\" _i=\"0\" _address=\"0.0\"][et_pb_text admin_label=\"CTA Section Subtitle\" _builder_version=\"3.27.4\" text_font=\"Roboto|on||on|\" text_font_size=\"24px\" text_letter_spacing=\"4px\" header_font=\"Open Sans||||||||\" background_layout=\"dark\" module_alignment=\"center\" animation_style=\"zoom\" animation_intensity_zoom=\"20%\" _i=\"0\" _address=\"0.0.0\"]\n\nOur Newsletter\n\n[\/et_pb_text][et_pb_divider color=\"#ffffff\" divider_position=\"center\" divider_weight=\"3px\" disabled_on=\"on|on|off%22\" _builder_version=\"3.26.2\" max_width=\"150px\" module_alignment=\"left\" height=\"false\" animation_style=\"zoom\" animation_delay=\"200ms\" animation_intensity_zoom=\"20%\" locked=\"off\" _i=\"1\" _address=\"0.0.1\"][\/et_pb_divider][et_pb_signup mailchimp_list=\"MailChimp|03dac884f0\" name_field=\"on\" title=\"Keep In Touch?\" description=\"\n\nSign up for our newsletter to keep up with us. Find out what new projects we are working on, see our tech spotlights and more!\n\n\" _builder_version=\"3.27.2\" header_font=\"Roboto|700|||||||\" header_font_size=\"60px\" body_font=\"Open Sans||||||||\" body_font_size=\"16px\" body_line_height=\"1.8em\" result_message_font=\"Roboto||||||||\" form_field_font=\"Roboto||||||||\" use_background_color=\"off\" custom_button=\"on\" button_text_color=\"#004d6d\" button_bg_color=\"#bdf482\" button_border_color=\"#bdf482\" button_border_radius=\"30px\" button_letter_spacing=\"8px\" button_font=\"Open Sans|700||on|||||\" button_icon=\"%%3%%\" button_icon_color=\"#ffffff\" animation_style=\"fold\" animation_direction=\"top\" animation_delay=\"200ms\" button_border_color_hover=\"#ffffff\" button_border_radius_hover=\"0px\" button_letter_spacing_hover=\"4px\" button_bg_color_hover=\"rgba(0,0,0,0)\" locked=\"off\" button_text_size__hover_enabled=\"off\" button_one_text_size__hover_enabled=\"off\" button_two_text_size__hover_enabled=\"off\" button_text_color__hover_enabled=\"off\" button_one_text_color__hover_enabled=\"off\" button_two_text_color__hover_enabled=\"off\" button_border_width__hover_enabled=\"off\" button_one_border_width__hover_enabled=\"off\" button_two_border_width__hover_enabled=\"off\" button_border_color__hover_enabled=\"on\" button_border_color__hover=\"#ffffff\" button_one_border_color__hover_enabled=\"off\" button_two_border_color__hover_enabled=\"off\" button_border_radius__hover_enabled=\"on\" button_border_radius__hover=\"0px\" button_one_border_radius__hover_enabled=\"off\" button_two_border_radius__hover_enabled=\"off\" button_letter_spacing__hover_enabled=\"on\" button_letter_spacing__hover=\"4px\" button_one_letter_spacing__hover_enabled=\"off\" button_two_letter_spacing__hover_enabled=\"off\" button_bg_color__hover_enabled=\"on\" button_bg_color__hover=\"rgba(0,0,0,0)\" button_one_bg_color__hover_enabled=\"off\" button_two_bg_color__hover_enabled=\"off\" _i=\"2\" _address=\"0.0.2\" button_bg_enable_color=\"on\"] There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum. [\/et_pb_signup][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=\"1\" admin_label=\"Section\" _builder_version=\"3.22\" background_color=\"#222222\" custom_padding=\"0px|||\" custom_padding_tablet=\"0px|||\" transparent_background=\"off\" padding_mobile=\"on\" make_fullwidth=\"off\" use_custom_width=\"off\" width_unit=\"on\" fb_built=\"1\" _i=\"3\" _address=\"3\"][et_pb_row use_custom_gutter=\"on\" gutter_width=\"2\" padding_mobile=\"on\" column_padding_mobile=\"on\" admin_label=\"Row\" module_class=\" et_pb_row_fullwidth\" _builder_version=\"3.25\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" width=\"94%\" width_tablet=\"80%\" width_last_edited=\"on|desktop\" max_width=\"94%\" max_width_tablet=\"80%\" max_width_last_edited=\"on|desktop\" custom_padding=\"40px|||\" make_fullwidth=\"on\" use_custom_width=\"off\" width_unit=\"on\" _i=\"0\" _address=\"3.0\" column_structure=\"1_3,1_3,1_3\"][et_pb_column type=\"1_3\" _builder_version=\"3.25\" custom_padding=\"|||\" custom_padding__hover=\"|||\" _i=\"0\" _address=\"3.0.0\"][et_pb_image src=\"http:\/\/www.trinitydatasolutions.com\/wp-content\/uploads\/2019\/07\/063.jpg\" url=\"#\" show_bottom_space=\"off\" align=\"center\" force_fullwidth=\"on\" align_tablet=\"center\" align_last_edited=\"on|desktop\" admin_label=\"Image\" _builder_version=\"3.23\" animation_style=\"fade\" animation_duration=\"500ms\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" animation=\"fade_in\" sticky=\"on\" always_center_on_mobile=\"on\" _i=\"0\" _address=\"3.0.0.0\"][\/et_pb_image][et_pb_text admin_label=\"Text\" _builder_version=\"3.27.4\" text_font=\"PT Sans|on|||\" text_text_color=\"#888888\" text_font_size=\"12\" text_letter_spacing=\"2px\" text_line_height=\"1.2em\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" text_orientation=\"center\" module_alignment=\"center\" custom_margin=\"30px|||\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"1\" _address=\"3.0.0.1\"]ADVERTISING[\/et_pb_text][et_pb_text admin_label=\"Text\" _builder_version=\"3.27.4\" text_font=\"PT Sans||||\" text_text_color=\"#ffffff\" text_font_size=\"24\" text_line_height=\"1.2em\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" text_orientation=\"center\" module_alignment=\"center\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"2\" _address=\"3.0.0.2\"]<span style=\"color: #ffffff;\"><a style=\"color: #ffffff;\" href=\"#\">Nailing It On The Head With<\/a><\/span>\n<span style=\"color: #ffffff;\"><a style=\"color: #ffffff;\" href=\"#\"> Free Internet Advertising<\/a><\/span>[\/et_pb_text][\/et_pb_column][et_pb_column type=\"1_3\" _builder_version=\"3.25\" custom_padding=\"|||\" custom_padding__hover=\"|||\" _i=\"1\" _address=\"3.0.1\"][et_pb_image src=\"http:\/\/www.trinitydatasolutions.com\/wp-content\/uploads\/2019\/07\/073.jpg\" url=\"#\" align=\"center\" force_fullwidth=\"on\" align_tablet=\"center\" align_last_edited=\"on|desktop\" admin_label=\"Image\" _builder_version=\"3.23\" animation_style=\"fade\" animation_duration=\"500ms\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" animation=\"fade_in\" sticky=\"off\" always_center_on_mobile=\"on\" _i=\"0\" _address=\"3.0.1.0\"][\/et_pb_image][et_pb_text admin_label=\"Text\" _builder_version=\"3.27.4\" text_font=\"PT Sans|on|||\" text_text_color=\"#888888\" text_font_size=\"12\" text_letter_spacing=\"2px\" text_line_height=\"1.2em\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" text_orientation=\"center\" module_alignment=\"center\" custom_margin=\"30px|||\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"1\" _address=\"3.0.1.1\"]MOTIVATION[\/et_pb_text][et_pb_text admin_label=\"Text\" _builder_version=\"3.27.4\" text_font=\"PT Sans||||\" text_text_color=\"#ffffff\" text_font_size=\"24\" text_line_height=\"1.2em\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" text_orientation=\"center\" module_alignment=\"center\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"2\" _address=\"3.0.1.2\"]<span style=\"color: #ffffff;\"><a style=\"color: #ffffff;\" href=\"#\">Believing Is The Absence<\/a><\/span>\n<span style=\"color: #ffffff;\"><a style=\"color: #ffffff;\" href=\"#\"> Of Doubt<\/a><\/span>[\/et_pb_text][\/et_pb_column][et_pb_column type=\"1_3\" _builder_version=\"3.25\" custom_padding=\"|||\" custom_padding__hover=\"|||\" _i=\"2\" _address=\"3.0.2\"][et_pb_image src=\"http:\/\/www.trinitydatasolutions.com\/wp-content\/uploads\/2019\/07\/082.jpg\" url=\"#\" align=\"center\" force_fullwidth=\"on\" align_tablet=\"center\" align_last_edited=\"on|desktop\" admin_label=\"Image\" _builder_version=\"3.23\" animation_style=\"fade\" animation_duration=\"500ms\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" animation=\"fade_in\" sticky=\"off\" always_center_on_mobile=\"on\" _i=\"0\" _address=\"3.0.2.0\"][\/et_pb_image][et_pb_text admin_label=\"Text\" _builder_version=\"3.27.4\" text_font=\"PT Sans|on|||\" text_text_color=\"#888888\" text_font_size=\"12\" text_letter_spacing=\"2px\" text_line_height=\"1.2em\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" text_orientation=\"center\" module_alignment=\"center\" custom_margin=\"30px|||\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"1\" _address=\"3.0.2.1\"]TRAVEL[\/et_pb_text][et_pb_text admin_label=\"Text\" _builder_version=\"3.27.4\" text_font=\"PT Sans||||\" text_text_color=\"#ffffff\" text_font_size=\"24\" text_line_height=\"1.2em\" background_size=\"initial\" background_position=\"top_left\" background_repeat=\"repeat\" text_orientation=\"center\" module_alignment=\"center\" use_border_color=\"off\" border_color=\"#ffffff\" border_style=\"solid\" _i=\"2\" _address=\"3.0.2.2\"]<span style=\"color: #ffffff;\"><a style=\"color: #ffffff;\" href=\"#\">Big Savings On Gas<\/a><\/span>\n<span style=\"color: #ffffff;\"><a style=\"color: #ffffff;\" href=\"#\"> While You Travel<\/a><\/span>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]","footnotes":""},"categories":[15],"tags":[21,20,22,19],"class_list":["post-3676","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology","tag-development","tag-framework","tag-philosophy","tag-programming"],"_links":{"self":[{"href":"https:\/\/www.trinitydatasolutions.com\/index.php\/wp-json\/wp\/v2\/posts\/3676","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.trinitydatasolutions.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.trinitydatasolutions.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.trinitydatasolutions.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.trinitydatasolutions.com\/index.php\/wp-json\/wp\/v2\/comments?post=3676"}],"version-history":[{"count":16,"href":"https:\/\/www.trinitydatasolutions.com\/index.php\/wp-json\/wp\/v2\/posts\/3676\/revisions"}],"predecessor-version":[{"id":3829,"href":"https:\/\/www.trinitydatasolutions.com\/index.php\/wp-json\/wp\/v2\/posts\/3676\/revisions\/3829"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.trinitydatasolutions.com\/index.php\/wp-json\/wp\/v2\/media\/442"}],"wp:attachment":[{"href":"https:\/\/www.trinitydatasolutions.com\/index.php\/wp-json\/wp\/v2\/media?parent=3676"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.trinitydatasolutions.com\/index.php\/wp-json\/wp\/v2\/categories?post=3676"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.trinitydatasolutions.com\/index.php\/wp-json\/wp\/v2\/tags?post=3676"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}