Developer Help: There’s Open Source and then there’s Snippets

Open source has its issues as I have posted about.  On the flip side there are the true code jockeys. I love these guys and gals who fix real issues and then are kind enough to post real code with real documentation.  Code Projects  is a real source of this type of full solutions with documentation. Then there is Stack overflow – every developer lives on Stack overflow.  If you are a developer and not using these resources then you are working too hard!

Finally I have found sources of code that really fit my needs.  There is this guy Rick Stahl (http://www.west-wind.com) who writes code and documentation that anybody can understand.  I have followed Rick for years.  In my estimation he has to be one of the most prolific developers out there.  I have no idea how he is able to create code and documentation at such an incredible rate.  I envy you, Rick.  Thank you for helping we the less talented look great!

Larry

Advertisements

jQuery UI – blank

As is the case with a lot of open source – complete working samples that actually demonstrate the code are few and far between.  The jQuery UI is no exception.  It is just about unusable because it lacks any serious documentation.  I try to use it in projects to save time and money.  The truth is, I save neither time nor money and take on a load of stress.  Open source, as I have said so many times is *not* free.  It has a high cost.

Almost all contracts where I partner with a larger company include language that prohibit open source libraries and code.  There are good reasons for this.

  • Lack of support
  • Lack of documentation
  • Cannot verify compliance with applicable laws
  • No one to hold accountable
  • Can’t meet legal indemnification clauses
  • License issues

I am sure there are other issues.  It is a shame that so much effort is put into an open-source effort only to have it rendered practically unusable because the developer doesn’t make credible documentation and samples.  I’m guilty too.  That is why I don’t publish much in the way of open source.  So if you are a developer and want to create open source code, do everybody a favor and document or don’t publish!  By the way this is my opinion and I don’t care about yours.

Microsoft .NET Core 2.0 and .NET Framework the Future

Well I have predicted the demise of the now very old .NET Framework model for several years.  However its demise is not total.  It is true that .NET Framework as we have known it for so many years is at end of life – Long Live .NET Core!

If you care and read about such things and you are interested it cloud computing and you are a Microsoft developer then .NET matters.  So I will get straight to the point.  If you are running a Windows OS in the future you will have a version of .NET Framework automatically installed.  The reason is simple, Microsoft has used it as part of the Window 10 and Windows 2016 Server OS’s.  It is baked in. It is part of the OS, meaning it is not “installed” as it once was.

So what is the deal with .NET Core 2.0?  Simply, .NET Core 2.0 Standard is a “standard”.  Starting with .NET 4.7.1 Framework the full .NET Core 2.0 Standard is implemented.  The key work is implemented. .NET Core 2.o Standard is not an actual implementation its is the standard by which companies including Microsoft can build on.  .NET Core 2.0 Standard is an open standard.

All these standards and implementations mean something.  I as a developer want to create code that is valuable to my customer and earn a living.  With .NET Core 2.0 Standard, I can develop code to deploy on a Windows 10/2016 and know that all the necessary libraries will be present.  If I am running on another OS (eg Linux) and I develop on .NET Core 2.0 Standard, I know that all the necessary libraries for that OS will be deployed to that environment.

This is very good.  From a business owner’s perspective, I should have a “requirement” in my statement of work that requires developers to adhere to .NET Core 2.0 (or higher) Standard.  This will assure that my project can be run on any supported environment, cloud, local, or whatever is dreamed up next.

Happy developing!

Visual Studio Code – Clearly a New Direction

I use Visual Studio Code for simple things – because its fast!  I am a die-hard full version Visual Studio IDE user, VS Code seemed to be just another “text” code editor – nothing more.

I obviously had not given it a real opportunity.  This week I have had to jump back into client-side web development; the full gambit: CSS, JQuery, Bootstrap, HTML, JavaScript.  I really don’t have any passion for this type of coding.  I prefer deep framework/platform development where we “hardcore” programmers like to dig into problems that nobody else wants.

I was covered in “client code-rust” not having touched this type of coding in several years.  I still don’t like it.  HOWEVER.  Visual Studio Code made the re-introduction to web code development actually pleasant.  I figured out that you must install extensions for pretty much anything you want to do beyond text editing.  To be honest that is about all I did until the “fun” started.  Orchestrating all the moving parts (libs) is no trivial exercise.  Things have changed quite a bit in the last several years on the client-side of the code world.

Once I figured out the Visual Studio Code debugging environment things began to move more smoothly and the pace picked up.  It is really a fairly serious tool and it seems to be improving constantly.  There are lots of extensions out there for VS Code sure to make your development process easier.

I will be using it more to be sure.  I recommend that you give it a chance too.

Reaction to Microsoft’s Inspire from a Gold Microsoft Partner

Intact is focused on Microsoft Cloud services.

inspire2017

It has been a week since returning from the Inspire 2017 conference.  My staff had several days to digest the input and to have informal office discussions before our company planning meeting.  We have also gathered input from other partners.

To cap it off here is my take-away:

  1. Microsoft is a different company; in a different world with a different vision.
  2. If you are not on par with Microsoft corporately, align your company vision with Microsoft’s or be well positioned with multiple companies in this space.
  3. Be prepared to invest in new people, new products, and new thinking.
  4. Make new “friends” inside Microsoft. Cultivate strong partner relationships with Microsoft.
  5. Microsoft has determined that “partner sellers” is the future which I think means developing very strong partner-to-partner alliances.

Our strategy is simple, be indistinguishable from Microsoft to customers. We are an extension of Microsoft, integrating our “PowerLine on Azure” product suite into every opening we can in the new Microsoft 365.

To customers there is an impact because of the, new Microsoft.  There must be adjustments on the part of customers.  The customer is like Intact or “in the same boat” as the saying goes.  Our realization is the world of technology changed allowing the iPhone to come into existence.  The arrival of the iPhone “event” is commonly pointed to as the pivotal moment when the “consumer” became aware of the “cloud”.  There is no going back!  Nor does anyone really want to.

I heard the most important statement (advice) a business owner could possibly hear from an employee this week, “Hire college students.  They have no knowledge of the past.”  The conversation sparking this statement came from a business analysis 20 years my junior having 20 years’ experience.  She understood people holding jobs/positions will not admit their talent is no longer necessary.  These entrenched/experienced workers will thus, “fight you and your new Code-Robotics.”

Intact is aggressively marketing Microsoft 365, while understanding that we must allow the old to pass-away with dignity and grace.  We understand that technology change is a process not an event.  We must assist customers through the death process of their trusted and beloved old systems.

At Intact we know that the future belongs to the children and we must help them achieve their place in this world while we assist those who hold it now to let go.  Life-spans of technology products is more like that of your pet than a building, just a few years.  We made the decision with conviction, in 2014 to follow the Microsoft re-invention and are already very well aligned and are improving alignment daily.

Inspire didn’t really launch anything new or demonstrate any new technology breakthoughs.  As large events go it was almost “ho-hum” – almost.  Microsoft Inspire 2017 will likely be the event where your company itself starts the process of dying or catches the real message of inspiration; become new.

logoGoldMPN-single

DevOps and Why You Need a Managed Code Team

Cloud Computing is complex.

I have focused on cloud computing since 2007, nearly 10 years.  I write a lot of code myself for Azure Cloud and I also pay the bills giving me a real perspective.  Whoever told you or intimated that cloud computing would make your life easier as a developer, ISV, systems integrator, failed to tell you the truth.

My company Intact, is dedicated to your success. Cloud is not easy.  Read on to learn more…

If you want or expect to have it easy in a cloud world then you need to use “Software as a Service” (SaaS) apps where somebody else owns, maintains, and supports your IT needs.

If you are an IT Pro, developer, or IT manager that has mission critical applications that you support for your customers and you are already “saturated” at the team level then expect a long day when shifting to cloud.

EDIT: Azure has more than 50 individual services and growing.  There are at least 5 different ways to configure each of the majority of those.  That means that there are more than 5 million combinations to configure Azure.

Cloud over the past ten years has expanded exponentially in its service offerings.  The number of different items to contend with in porting workloads, developing new services, and maintaining control simply overwhelms whole teams.  I wrote several years ago, “No jobs would be lost due to cloud.  The jobs would change and the responsibility would change but it will still require people with new skills to run cloud applications.”

My friend (let’s call him Joe), is an IT Pro and manager who wants to learn cloud computing for his team.  I admire Joe for his desire to make the transition.  Joe’s problem is the team skills deficit in general.  Joe desires to learn cloud and implement it as he would have past projects.  My company and my team are immersed 100% in Azure Cloud.  We don’t do AWS or any other cloud for a very simple reason.  Being an expert means focusing on one thing.  Intact is focused on business applications for Azure Cloud – nothing else.  Believe me when I tell you, there are too many moving parts to cloud to think that you can “tinker” with it.  Obsolesces is measured in months not years.  You must have a continuous integration mindset about your applications.

DevOps – development and operations.  In raw form this means that the developers are responsible for the operation.  In my experience very few teams are configured for this type of computing model.  Currently responsibilities are spread across many different teams: developers, testers, security, administration, release management, maintenance, network, systems and so forth.  I have been in the hundreds of meeting where all the team leads discuss the weekly and monthly issues list.  The structure of organizations is wrong for cloud services.  You still need all of those skills but the “who” is responsible and delivering is completely different.

Intact helps teams through automation reach cloud application maturity in DevOps by supplying the missing skills.

Should you Develop in Access 2016

Should you develop or reengineer your old Access or FoxPro desktop applications in Access 2016?

NO, has been my answer for the past 10 years for any Access development. Read on for a more through explanation and considerations. Microsoft does not include Access 2016 in any of its Office 365 business packages. HINT!


Access 2016 continues into the age of cloud as an add-on purchase application in Office 365.  But Access 2016 is not the Access that most users think it is.  On the Microsoft site this statement is made:

“Access 2016 has all the functionality and features you’re used to with some added enhancements and the best new features from Office 2016.
Note: For Access 2016, no existing features or functionality from previous versions were deprecated in this release.” https://support.office.com/en-us/article/What-s-new-in-Access-2016-76454345-f85d-47af-ace1-98a456cb3496

This statement is completely true. BUT… as the late Paul Harvey would famously say, “now the rest of the story.”

The very short answer is that prior to Access 2013 to which the statement refers Access has been systematically stripped of functionality.  There have been “new features” added, true.  When Microsoft removed the ability for later versions (2007 >) to open older database structures they introduced “new features” to replace the functions. (see this article: https://en.wikipedia.org/wiki/Microsoft_Access )

So should you develop a new application or reengineer an old one in Access 2016?  The answer is a solid maybe.

I might be oversimplifying some but this should give you some sense of how to approach the problem.

  1. Who is going to be doing the development?
    • Business users
    • Professional developers
  2. Will the resulting project be a critical business application?
  3. Will the database be on a managed SQL Server?
  4. Do you or your organization have any database reporting tools?
  5. Who is responsible for the application maintenance and updates?
    • Business users
    • Professional developers

Generally, if any of the above is answered “Yes” or a developer is expected to be involved then Access is not the way to go.

For line of business applications Access requires the same amount of development effort that any other professional development would require.  Access now requires a per-user subscription and it requires a SQL-Server database subscription or on-premises license.  Yes, SQL-Express license is free.  If you are a professional developer, there are other tools that are very effective for line of business solutions.

Why change if what you have works?
There may be no reason particularly if you upgraded your systems over the years and your current implementation is in Office 2013 and your data is already on a SQL-Server.

As you read this remember Access was developed for Windows desktop computers.  It depended on Windows and plethora of Windows drivers installed on a specific computer to work.  It was not a server application.  In the workplace it was very limited by design to run in a desktop with limited memory and disk-space.

Most Access database implementations are Windows “desktop” applications.  Over the 25-year history of Access it slowly morphed from a database engine with an application frontend for desktop to now just a fancy web site development tool that hooks to a SQL Server.

Up through Access 2007 you could create a database separate from your Access Application.  That was considered a great feature.  Application developers commonly would develop for Windows computers applications in programming languages such as Visual Basic, C/C++, Delphi, and many others.  These applications could use Windows installed drivers to connect to an Access database engine.  In many cases a copy of Access was not required to use the Access database.  During these years many companies sold third-party “controls” made for Windows desktop computers.  Access allows these to also be used in an Access desktop application.  There is a major problem with controls in modern applications, they mostly don’t work anymore.

Microsoft has discontinued many drivers because they do not meet modern security standards and many were targeting Windows desktop clients that are no longer supported such as Windows XP, Windows 7 (at end of life), Windows 8.

If you are moving to Windows 10 then you are very likely to have issues with Access applications or applications that used the Access database engine.  Consider moving to a different platform that is better suited for line of business.

If you have a small application that is not critical to your business, you should seriously consider a cloud software as a service (SaaS).  You get high reliability and professional software maintenance that you don’t have to worry about.

Reporting is the one use of Access that might make sense but only in a limited sense.  The reason is simple; Microsoft is making its Office 365 apps programmable.  Word and Excel are clearly the cornerstones of the Office 365 product line.  Both now have very advanced development API capability that integrates with all Microsoft products.  Access will continue to be part of the Office 365 product line for years to come but its use is quickly becoming a niche market.  The original purpose for which it was created in now a thing of the past, the desktop database.

Summary
I would only recommend Access as a solution for trivial applications, training, or for a very specific needs case.  The number of variations introduced over the years makes understanding what you really have in Access very difficult.  So much of Access was dependent on the specific version of Windows and its installed drivers it is very difficult to predict if it will work in new modern environments.


Below are links to Microsoft documentation to substantiate my assessment.
https://support.microsoft.com/en-us/lifecycle/search?sort=PN&alpha=Access&Filter=FilterNO
https://support.office.com/en-us/article/Discontinued-features-and-modified-functionality-in-Access-2013-BC006FC3-5B48-499E-8C7D-9A2DFEF68E2F
https://support.office.com/en-us/article/Discontinued-features-and-modified-functionality-in-Access-2010-9714e5e4-4bbc-490f-97b6-29a7730381cb
https://blogs.office.com/2010/01/09/access-2010-deprecated-features-and-components/#lLFfIjs5WqsQYiaz.97
https://msdn.microsoft.com/en-us/library/bb203849%28v=office.12%29.aspx?f=255&MSPPError=-2147217396
https://msdn.microsoft.com/en-us/library/office/dn602608(v=office.14).aspx
https://msdn.microsoft.com/en-us/library/ms810810.aspx
https://support.microsoft.com/en-us/kb/957570
https://support.microsoft.com/en-us/kb/231943