How to Track Mysterious Bugs with Visual Studio

How to Track Mysterious Bugs with Visual Studio

Debugging is the process of finding and resolving defects or problems within the program that prevent correct operation of computer software or a system. Debugging tactics can involve interactive debugging, control flow analysis, unit testing, integration testing, log file analysis, monitoring at the application or system level, memory dumps, and profiling. Some bugs may be easy to track. I don't want to talk about those. Let's discuss the really mysterious ones. Like the saying goes, Theory is when one knows everything but nothing works; Practice is when everything works but nobody knows why. Sometimes Theory and Practice go hand in hand: nothing works and nobody knows why. In such cases, it's worth remembering about some effective techniques that often allow us to reach the root of the problem and to display its finer details. Over time, here are the 3 techniques that have been most useful when debugging with Visual Studio:...

Read more
A Practical Guide On Open Data From The World Bank

A Practical Guide On Open Data From The World Bank

If you have ever checked the weather online, used the navigation function of your smartphone to find an on-duty pharmacy, or calculated the road expenses of your municipality, then you have already used "Open" Public Data. But maybe you didn't know it... For a long time, it was difficult (or even impossible) to access this information from the public authorities. This concept was born from the belief that the huge amount of information systematically collected by public administrations should be accessible to all citizens. In the late 2000s, states and their various services began to grant access to these resources to a greater number of users. The first government open data policies were introduced in 2009. Currently, more than 250 national and local governments, nearly 50 developed/developing countries, and institutions such as the World Bank and the United Nations have launched initiatives to release the data, and these are growing every year. Data is considered "open" if everyone can use, reuse and redistribute it freely, free of charge, for any purpose and without restrictions. Many data sets are published on government websites, but most of them are only meant to be viewed in isolation, and are not reusable for other purposes. Open data must be reusable, that is, downloadable in an open, software-readable format, and users must be legally permitted to reuse it....

Read more

Limiting The Execution Of An Action To AJAX Requests Only

In ASP.NET MVC, we manipulate Views, among other things. Some of these Views represent full pages and some are just page parts. These parts or areas belonging to a view are called partial views, and they are also returned by controller actions. Since these partial views should only be used within a view, the ASP.NET MVC framework allows us to protect any call to these partial actions by decorating them with the ChildActionOnly attribute. This attribute makes sure that the action: - cannot be used as an entire view and the application developers will always run it using the HtmHelper.Action or HtmlHelper.RenderAction methods. - has a URL that will not be accessible via the address bar, if a user somehow becomes aware of the existence of this URL. However, as with any dynamic site, we will have AJAX requests that can also make requests for HTML content without having to load the page completely. This content also represents a part, and when we receive the response from the web server we have to embed this piece of HTML somewhere in the page. The AJAX request sent to the server will certainly invoke a controller action. This action, like those marked with the ChildActionOnly attribute, must have these constraints: - should only go through AJAX requests. - inaccessible via the browser address bar. But the ASP.NET MVC framework does not offer any attributes that allow us to apply these restrictions to an action, but it gives us the tools to create them....

Read more

ASP.NET MVC: Avoid Polluting The Model Of The View With Error Messages

I recently answered a question that came up on the StackOverflow website. The question was whether using the ViewBag dynamic property of the controller to expose the error message was a good practice, as the OP investigations suggested that it was necessary to expose properties from the model. Obviously it is highly recommended NOT to use the ViewBag property since it does not provide any Strong Typing. If you want to communicate with the view you should always involve a typed model. The suggested solution is therefore legitimate in that respect, however, it is not a good practice when it comes to model error handling in ASP.NET MVC. The solution for exposing error messages (as in the previous example, which does not use data annotation attributes) derives from the use of the AddModelError method, from the ModelStateDictionary class. We do not need to instantiate this class because a ModelState property containing an instance of this class already exists in the Controller. Therefore, the right solution is the following:...

Read more
10 Years of Programming

10 Years of Programming

I started programming when I was in high school. I learned a few lessons over the past decade, and I thought I would take a moment to gather my thoughts on these things. It took me about ten years and a lot of experimentation to figure out some of this....

Read more
The Xamarin Revolution

The Xamarin Revolution

Xamarin is a cross-platform development tool. It solves dilemmas many developers face when developing cross-platform apps: separate coding languages and UI paradigms. With Xamarin, you can use C# for iOS, Android, and Universal Windows apps. And with Xamarin Forms, interface design for all three platforms can be accomplished within its XAML-based framework. Here is some documentation I would recommend if you consider getting started with Xamarin....

Read more
Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

Monthly Archives

Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))