Thursday 16 March 2023

How to get code from a published ASP.Net build where we don't have source code?


If you have ever lost or misplaced your source code for an ASP.Net web application, you might wonder if there is a way to recover it from the published build on your server. The good news is that it is possible, but only with some challenges and limitations. In this blog post, I will explain how to get code from a published ASP.Net build using some tools and techniques.


What is a published ASP.Net build?

A published ASP.Net build results from compiling and packaging your web application into a set of files that can be deployed to a web server. Depending on the type of project you are using (WebForms or MVC), the structure and content of these files may vary.



--> For WebForms projects, a published build typically consists of the following:
- **.aspx** files: These web pages contain HTML markup and server-side controls. They are usually not compiled and can be edited directly.
- **bin** folder: This folder contains one or more **.dll** files that are the compiled code-behind classes for your web pages and other components. These files are binary and cannot be edited directly.
- **web.config** file: This file contains configuration settings for your web application, such as connection strings, app settings, etc.
- Other optional files and folders: These may include images, scripts, stylesheets, etc.



--> For MVC projects, a published build typically consists of the following:
- **Views** folder: This folder contains **.cshtml** or **.vbhtml** files that are the Razor views for your web pages. They are usually not compiled and can be edited directly.
- **bin** folder: This folder contains one or more **.dll** files that are your web application's compiled controllers, models, helpers, and other components. These files are binary and cannot be edited directly.
- **web.config** file: This file contains configuration settings for your web application, such as connection strings, app settings, etc.
- Other optional files and folders: These may include images, scripts, stylesheets, etc.
 

How to get code from .dll files?

The main challenge in getting code from a published ASP.Net build is to extract the source code from the .dll files in the bin folder. These files contain intermediate language (IL) code that can be executed by the .Net runtime but cannot be easily read by humans.
To get code from .dll files, we need to use a tool called a decompiler. A decompiler program can reverse-engineer IL code into high-level source code in C#, VB.NET or other languages.
There are many decompilers available online, some of them are free, and some of them are paid. Some examples of popular decompilers are:
- [ILSpy](https://github.com/icsharpcode/ILSpy): A free open-source decompiler with a graphical user interface (GUI) and command-line options.
- [dotPeek](https://www.jetbrains.com/decompiler/): A free decompiler by JetBrains with a GUI and integration with Visual Studio.
- [dnSpy](https://github.com/dnSpy/dnSpy): A free open-source decompiler with advanced features such as debugging and editing IL code.

To use any of these tools, you need to open the .dll file(s) in their GUI or command-line interface and browse through their namespaces, classes, methods, properties, etc., until you find the piece of code you are looking. You can copy the source code into a text editor or save it as a new file. However, there are some limitations and caveats when using decompilers:
- The source code may differ from the original one because some information may be lost during compilation (such as comments, variable names, formatting, etc.).
- The source code may only compile with errors because some dependencies (such as references, libraries, frameworks, etc.) may be missing or incompatible.
- The source code may not run correctly because some logic or functionality may be altered or broken during compilation or decompilation (such as encryption, obfuscation, optimization, etc.).


Wednesday 1 March 2023

Why someone will need Power BI ?

 

Microsoft Power BI: Data Visualisation.


In today's fast-paced business environment, data has become the most valuable asset for companies of all sizes. However, managing and making sense of extensive data takes time and effort. It is where business intelligence (BI) tools come into play. BI tools help companies to visualise and analyse their data, enabling them to make informed decisions based on data-driven insights. One such powerful BI tool is Power BI, a business analytics solution from Microsoft.

 

 

What is Power BI?

Power BI is a cloud-based business intelligence and data visualisation tool that helps organisations gather, analyse, and visualise their data. It is a part of the Microsoft Power Platform, including Power Apps and Power Automate. Power BI connects to various data sources, including Excel, SQL Server, SharePoint, and cloud-based sources like Azure SQL Database, Salesforce, and Dynamics 365. It allows users to create interactive reports, dashboards, and data visualisations that can be shared across the organisation or with external stakeholders.

 

Key Features of Power BI

Power BI offers a range of features, making it a comprehensive business intelligence solution for companies. Here are some of the key features of Power BI:

  1. Data connectivity: Power BI can connect to a wide range of data sources, including cloud-based sources like Azure, Salesforce, and Dynamics 365, as well as on-premises data sources like SQL Server and SharePoint.
  2. Data modelling: Power BI offers a powerful data modelling engine that allows users to create relationships between different data sources, create calculated columns and measures, and perform complex data transformations.
  3. Data visualisation: Power BI offers a range of visualisations, including charts, graphs, maps, and gauges, that allow users to create compelling data visualisations.
  4. Collaboration: Power BI allows users to share their reports and dashboards with colleagues or external stakeholders, making collaboration easier.
  5. AI-powered insights: Power BI uses artificial intelligence and machine learning algorithms to identify trends, outliers, and anomalies in the data, allowing users to gain insights quickly.

 

Benefits of Power BI for Companies

Here are some of the critical benefits of Power BI for companies:

  1. Centralised data management: Power BI allows companies to centralise their data management, making accessing and analysing data across the organisation easier.
  2. Real-time data insights: Power BI allows companies to gain real-time insights into their business operations, enabling them to make quick and informed decisions.
  3. Enhanced collaboration: Power BI makes collaboration more accessible by allowing users to share reports and dashboards with colleagues and external stakeholders.
  4. Cost-effective: Power BI is a cost-effective solution, eliminating the need for expensive hardware and software.
  5. Scalable: Power BI is a scalable solution, allowing companies to start small and grow as their data needs increase.


In conclusion, Power BI is a powerful business intelligence solution that enables companies to gain insights from their data quickly and easily. Power BI offers a comprehensive solution for companies of all sizes with its data connectivity, modelling, data visualisation, collaboration, and AI-powered insights features. Power BI can help companies make informed decisions and stay ahead of the competition by centralising data management and providing real-time data insights.

Tuesday 28 February 2023

Emerging Technologies available for Website Design and Development (2023)

Website development and design have become integral parts of businesses and organizations, with a robust online presence being the key to success in today's digital age. With the constantly evolving technological landscape, staying up-to-date with the latest technologies used for website development and design is essential. In this review, we will explore the top technologies currently being used for website development and design.
 

 

HTML5: HTML5 is the latest version of HTML and provides a set of markup elements that allow developers to create more dynamic and interactive web pages. It also provides better support for multimedia content, making it easier to include videos, audio, and graphics on web pages. 

 

CSS3: CSS3 is the latest version of CSS and provides a more robust and flexible way to style web pages. It includes new features like animations, transitions, and responsive design, making creating modern, visually appealing websites easier. 

 

JavaScript: JavaScript is a programming language widely used to create dynamic and interactive web pages. It can add functionality to web pages, create animations, and build web applications. 

 

.NET Core: .NET Core is an open-source, cross-platform framework developed by Microsoft for building web applications. It is a high-performance and scalable framework that allows developers to build modern, cloud-based applications. .NET Core supports many programming languages, including C#, F#, and Visual Basic. One of the significant benefits of using .NET Core is its support for containerization, which enables developers to create and deploy applications in containers, improving deployment flexibility and application scalability.

 

ReactJS: ReactJS is a popular JavaScript library used for building user interfaces. It allows developers to create reusable UI components and manage the state of an application more efficiently. 

 

AngularJS: AngularJS is another popular JavaScript framework used for building web applications. It provides comprehensive features for building complex and dynamic web applications, including dependency injection, data binding, and directives. 

 

Node.js: Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. It allows developers to build server-side applications using JavaScript, which makes it easier to create scalable, high-performance web applications. 

 

Vue.js: Vue.js is a JavaScript framework that has recently gained popularity due to its simplicity and ease of use. It is a lightweight framework that offers features such as two-way data binding and directives, making it easy to build interactive and dynamic user interfaces. Vue.js is also known for its excellent documentation, making it easy for developers to start.

 

Bootstrap: Bootstrap is a popular CSS framework that provides a set of pre-designed templates and components that make it easier to create responsive web pages. It also includes JavaScript plugins for adding functionality to web pages.

 

.NET MVC: .NET MVC is a web application framework developed by Microsoft that follows the Model-View-Controller (MVC) architectural pattern. It is built on top of the .NET framework and is used to build web applications with a clean separation of concerns between the application's logic and presentation layers. NET MVC offers several advantages, including improved web application testability, maintainability, and scalability. It also allows developers to use their preferred front-end frameworks and libraries for building user interfaces.

 

These technologies offer various capabilities and features for building modern and interactive websites. The choice of which technology to use depends on the project's specific needs, the development team's experience, and other factors such as performance, scalability, and security requirements. The top technologies used for website development and design are constantly evolving, and staying up-to-date with the latest trends is essential for businesses and developers. .NET Core and .NET MVC are powerful frameworks that offer significant advantages for building modern web applications Developers should carefully consider the unique needs of their projects and select the appropriate technology stack to ensure the success of their web development projects.

How to get code from a published ASP.Net build where we don't have source code?

If you have ever lost or misplaced your source code for an ASP.Net web application, you might wonder if there is a way to recover it from th...