Skip to main content


Showing posts from 2020

Debugging .Net Components called from Python, being run from a Batch Script, executed by the Windows Task Scheduler (Part 2)

In  Part 1  We identified the problem i was recently asked to investigate and looked at getting some output from the batch script being run by the Windows Task Scheduler. As this was a production environment, there was little that could be modified and remote debugging wasn't an option. In this part 2 post, we will continue to fault find touching on the Python and .Net components i mentioned previously and get to the point where the problem is fully identified and subsequently fixed without any changes made to the production code. Having started to receive output, the next step was to make some sense of it. The first thing i did was wrap the area of interest in the python script with a try catch 1) some generic exception try: except: print "Exception: %s" % (sys.exc_info()[0]) Exception: Query Error This was at least a start in that it looked database related at this point The next task was to identify the type of exception being thrown

Visual Studio 2017 RC installation

A quick look at the Visual Studio 2017 RC installation and first impressions on the look and feel of the new IDE My first impressions are really good. The web install genuinely took around 7 minutes and I was up and launching a new Asp.Net Core boilerplate application in a further 2 minutes, allowing for first time customisation and profile configure. That’s zero to hero in under ten minutes which is finally a wait time I can work with and will no doubt encourage non Microsoft Developers to just give it a try. I decided to go for the community edition for simplicity. The new setup experience The installer has been written from the ground up and it certainly feels nicer than the typical Microsoft Installer experience of not so long ago. I really like the select what you need approach and add later, which has always been possible but is a cleaner approach where you are selecting your intent rather than a host of individual features typical of a custom install.

Switching between DevOps Azure Artifacts and local Project references during development and debugging

Stumbled on a nice extension today for VS in the marketplace which allows simplified switching of references between NuGet package feeds and local references. If like me, you have multiple feeds for your packages via DevOps Artifacts, the Nuget Gallery, MyGet Feeds and personal feeds, it can sometimes be a challenge to switch between references to debug or extend some functionality. If you would like some hands on expertise for your business feel free to reach via my company  assemblysoft   or checkout some other musings via my and azure blog here At Assemblysoft we specialise in  Custom Software Development  tailored to your requirements. We have experience creating Booking solutions, as we did for HappyCamperVan Hire. You can read more  here . We can onboard and add value to your business rapidly. We are an experienced Full-stack development team able to provide specific technical expertise or manage your project requirements end to end.  We

.Net Delegates

Delegates, Anonymous Delegates, Lambdas,  This article (part1) forms part of a mini series which will  and Generics What is a Delegate? You may be wondering why another article on delegates. If you are already comfortable using them, maybe you are done here, or maybe you have the job of mentoring other developers in your team and have found it tricky to explain in the real world, or maybe you have sat down with a team member and they still don't really get them. On my travels i frequently meet developers who failed to really grasp delegates earlier on and thus struggle with many other topics which build on a solid understanding of what delegates are. For example:  Lambda Expressions , Reading and Writing queries targeted at  LINQ to Entities ,  Events  and  Generics  to name a few. If we search MSDN the definition we find is as follows A  delegate  is a reference type that can be used to encapsulate a named or an anonymous method. Delegates are similar to function

Debugging Python and Iron Python using Visual Studio

Now Python is a first class citizen since the release of Visual Studio 2017 and can be configured directly from the Installation IDE, below are a few settings worth bookmarking for your next python integration project. Debugging Python One of the first things you are going to want to do is step through your code when using Visual Studio, particularly as the language is dynamic and inspection of local and global scope soon becomes necessary. One thing to note is that if you start from a native python project, this is all wired up for you but if you are using .Net to call python modules or want to support an older python version, such as 2.7, you will soon see that breakpoints are not being hit due to symbols not being loaded.   Enable Just My Code To distinguish user code from non-user code in .net, Just My Code looks at two things: PDB (Program Database) files, and Optimization Program Database A .pdb file, otherwise known as a symbol file, maps the identifiers

How to identify which version of the .Net Framework you have installed

A recent legacy application port, to containerize, as a docker image, running as an Azure Web App, AKA  Web App for Containers , required a custom install of .Net 4.6.1. As part of testing an upgrade from an unsupported .Net Framework version 4 The following is a useful way to determine the version of the 4 framework installed. Instead of creating a new hive under the NDP, a modification is performed to update the version, which on first glance is not obvious. The first thing i encountered was a 500 error message on the site, with no application error log entries as it had not made it that far in the pipeline. was an initially confusing error message in the event viewer detailed below: Launch the registry editor by typing  regedit  in a  Run  box. On the left-hand side, navigate to  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full If the  Full  subkey is not present, t