Skip to main content

Posts

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 A call was being mad…
Recent posts
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.









It then picked up my profile s…

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

.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 EntitiesEvents 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 pointers in C++; however…
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 CodeTo distinguish user code from non-user code in .net, Just My Code looks at two things: PDB (Program Database) files, and Optimization Program DatabaseA .pdb file, otherwise known as a symbol …

.Net 4 Framework Identification and Troubleshooting

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:
https://stackoverflow.com/questions/31253747/method-not-found-0-system-array-empty




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\FullIf the Full subkey is not present, then you do not have the .NE…

A(I) Picture paints a thousand words...

During a recent review of a client's Azure application and part of a Digital Transformation requirement the lights came on for us all after a simple whiteboarding session. Often when technical concepts are being explained, it is difficult to visualise the primary building blocks and interactions of a system at a high level.




After just a few minutes at the whiteboard we were able to quickly confirm our understanding of the existing solution and effectively contribute to a plan of next steps to support the transformation process going forward and detail some business and technical requirements.


Another tool that can really help to take white board sketches to a new level is Sketch2Code which transforms a hand-written user interface design into valid working wire-frame. It is a web based app that captures the whiteboard image and converts it to a usable HTML prototype.




The benefits of this type of approach are great because each and every stakeholder is able to add real value in a …