<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ASP web application &gt; Metasys Software Pvt Ltd.</title>
	<atom:link href="https://www.metasyssoftware.com/tag/asp-web-application/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.metasyssoftware.com</link>
	<description>Unique People, Unique Solutions</description>
	<lastBuildDate>Mon, 10 Jun 2024 08:45:18 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.metasyssoftware.com/wp-content/uploads/2023/10/metasys-svg-.png</url>
	<title>ASP web application &gt; Metasys Software Pvt Ltd.</title>
	<link>https://www.metasyssoftware.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>What is EWS?</title>
		<link>https://www.metasyssoftware.com/others/what-is-ews/</link>
					<comments>https://www.metasyssoftware.com/others/what-is-ews/#respond</comments>
		
		<dc:creator><![CDATA[meta_prasad]]></dc:creator>
		<pubDate>Mon, 06 Jul 2020 13:43:05 +0000</pubDate>
				<category><![CDATA[Others]]></category>
		<category><![CDATA[EWS]]></category>
		<category><![CDATA[DotNet application development]]></category>
		<category><![CDATA[Web app development services]]></category>
		<category><![CDATA[Offshore web app services]]></category>
		<category><![CDATA[DotNet run]]></category>
		<category><![CDATA[DotNet framework]]></category>
		<category><![CDATA[ASP web application]]></category>
		<guid isPermaLink="false">https://www.metasyssoftware.com/?p=3110</guid>

					<description><![CDATA[<p>Exchange Web Services is an Application Program Interface (API) by Microsoft that allows programmers to fetch Microsoft Exchange items including [&#8230;]</p>
The post <a href="https://www.metasyssoftware.com/others/what-is-ews/">What is EWS?</a> appeared first on <a href="https://www.metasyssoftware.com">Metasys Software Pvt Ltd.</a>.]]></description>
										<content:encoded><![CDATA[<p>Exchange Web Services is an Application Program Interface (API) by Microsoft that allows programmers to fetch Microsoft Exchange items including calendars, contacts and emails. It can be used to read the email box and retrieve emails along with all the metadata such as headers, body and attachments. This is useful when the same information needs to be extracted from Exchange items repeatedly. The example I’m using in this article is retrieval of order details from emails, and is based on a recent assignment for a client at MetaSys.</p>
<h2><strong>How does it help?</strong></h2>
<p>The client wanted the ability to read the email inbox, import the order to the system and then send the email with the order details generated to the sales representatives.</p>
<p>With regular mail reading API’s the process would have been as follows. First the email is read, secondly the order is imported, and finally a new function is called that sends a new email with new order details to the sales representative. In this case the details of the requester are saved and reused for sending the confirmation email.</p>
<p>Using the EWS managed API, a more efficient solution was developed. The email was directly forwarded from the email inbox, without the need to create a separate email for the order confirmation. The confirmation email is created directly from the received email object, as is the forwarded email to the sales representative. The following code sample shows how the forwarded email is created and sent:</p>
<p>ResponseMessage responseMessage = message.CreateForward();<br />
responseMessage.ToRecipients.Add(email.FromAddress);<br />
responseMessage.BodyPrefix = messageBodyPrefix;<br />
responseMessage.Send();</p>
<p>In the code snippet above, “message” is the object which contains all the details of the order email and we use it to create the new forward email without saving any details to the local system or variables.</p>
<p>Similarly, we can use reply functionality of the API to maintain the email conversation chain by using the following code:</p>
<p>bool replyToAll = true;<br />
ResponseMessage responseMessage = message.CreateReply(replyToAll);</p>
<p>string emailbody= &#8220;Please find the attachment below.&#8221;;<br />
responseMessage.BodyPrefix = emailbody;<br />
responseMessage.Send();</p>
<p>Setting the “replyToAll” variable to true specifies that mail will be forwarded to all the recipients who were present in the original conversation. The text contained in the variable “emailbody” will be on the top of the email body of the conversation.</p>
<h2><strong>Additional features of EWS managed API</strong></h2>
<p>EWS provides useful features for dealing with emails with invalid delivery email addresses. The postmaster bot may send a mail delivery failure email to the same inbox, which can cause issues with the importing of other orders. These issues can be resolved in EWS by checking the subject lines, and automatically deleting delivery failure emails, or moving them to a separate folder. These orders can then be separately corrected and resent without interfering with the remaining orders in the inbox.</p>
<p>The following code sample can be used to move all the email items from the inbox to the “DidNotDelivered” folder:</p>
<p>Folder rootfolder = Folder.Bind(service, WellKnownFolderName.MsgFolderRoot);<br />
rootfolder.Load();<br />
foreach (Folder folder in rootfolder.FindFolders(new FolderView(100)))<br />
{<br />
FindItemsResults findResults =<br />
service.FindItems(WellKnownFolderName.Inbox, new ItemView(10));<br />
// The if below checks if the folder “DidNotDelivered” is present in the email box<br />
if (folder.DisplayName == &#8220;DidNotDelivered&#8221;)<br />
{<br />
var fid = folder.Id;<br />
foreach (Item item in findResults.Items)<br />
{<br />
item.Load();<br />
item.Move(fid);<br />
}<br />
}<br />
}</p>
<p>This is how EWS helped us simplify the processing of emails with minimal lines of code.</p>
<p>We hope that this article gives you some useful ideas for dealing with Microsoft Exchange using EWS. If you are having issues, feel free to get in touch with us at https://www.metasyssoftware.com/dot-net</p>The post <a href="https://www.metasyssoftware.com/others/what-is-ews/">What is EWS?</a> appeared first on <a href="https://www.metasyssoftware.com">Metasys Software Pvt Ltd.</a>.]]></content:encoded>
					
					<wfw:commentRss>https://www.metasyssoftware.com/others/what-is-ews/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Improve Performance of Web Applications</title>
		<link>https://www.metasyssoftware.com/others/improve-performance-of-web-applications/</link>
					<comments>https://www.metasyssoftware.com/others/improve-performance-of-web-applications/#respond</comments>
		
		<dc:creator><![CDATA[meta_prasad]]></dc:creator>
		<pubDate>Fri, 05 Jun 2020 10:57:34 +0000</pubDate>
				<category><![CDATA[Others]]></category>
		<category><![CDATA[Web applications]]></category>
		<category><![CDATA[custom web app]]></category>
		<category><![CDATA[contact our web development experts.]]></category>
		<category><![CDATA[web development experts]]></category>
		<category><![CDATA[Offshore web development services]]></category>
		<category><![CDATA[offshore web development company]]></category>
		<category><![CDATA[web application development]]></category>
		<category><![CDATA[Offshore web developers]]></category>
		<category><![CDATA[New Relic]]></category>
		<category><![CDATA[ASP web application]]></category>
		<category><![CDATA[Web designing and application development]]></category>
		<category><![CDATA[ANTS]]></category>
		<guid isPermaLink="false">https://www.metasyssoftware.com/?p=3094</guid>

					<description><![CDATA[<p>We all know how frustrating it is to see the progress spinning wheel going on and on while navigating through [&#8230;]</p>
The post <a href="https://www.metasyssoftware.com/others/improve-performance-of-web-applications/">Improve Performance of Web Applications</a> appeared first on <a href="https://www.metasyssoftware.com">Metasys Software Pvt Ltd.</a>.]]></description>
										<content:encoded><![CDATA[<p>We all know how frustrating it is to see the progress spinning wheel going on and on while navigating through a web app. It’s due to these performance issues that users lose interest in a web application, which can hinder the success of the app. Improving performance is an important task for any app developer, and there are many commercial tools available that can be useful. In this article I will share my experience and opinions on two commercially available tools; ANTS Performance Profiler and New Relic.</p>
<h2>ANTS Profiler</h2>
<p>ANTS Profiler can be used on any .Net application, either web based or in Windows to identify slow processes. We have found that it is useful both at the development stage, and the QA stage. Using the tool involves starting up the ANTS Profiler, and navigating through the app to view the pages with slow performance. Once the profiling is complete, we can dive deeper into the processes that the profiler identifies as slow.</p>
<p>To give you an idea, here are some examples of performance issues we were able to identify and address:</p>
<ol>
<li>The first step we took when analyzing a slow app using the ANTS tool, was to check the database calls. The profiling showed that certain stored procedures were taking a lot of time. The problem was addressed by rearranging joins used in the stored procedures, and selecting only those columns necessary for the output. This significantly improved the rendering time for the page.</li>
<li>The profiling also showed that in a single page, there were multiple stored procedure calls which were increasing the database hits and slowing down the app. To overcome this problem, we combined multiple stored procedures into one, which improved the page performance.</li>
<li>It was further identified that whilst rendering the page, multiple JavaScript and CSS files were getting loaded, making rendering very slow. The ANTS Profiling helped identify the slowest web requests. This allowed us to use the bundling concept to group files together in order to reduce the number of web requests, thereby improving the speed of rendering.</li>
</ol>
<h2>New Relic</h2>
<p>New Relic is another commercial tool which can be used to analyze performance once an app has already been launched. It provides real-time data of user experience with the application in the production environment, which is extremely useful to optimise the process of improving application performance.</p>
<p>To give you an idea of how New Relic can be used, below are some insights we gained from New Relic when trying to improve a customized web application.</p>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-3425 size-full" src="https://www.metasyssoftware.com/wp-content/uploads/NewRelic.png" alt="New Relic" width="762" height="508" /></p>
<ol>
<li>The data showed us that as the number of users increases, the rendering time for the page increases as well. It was able to give us a lot of insight into how CPU and memory is used by the application.</li>
<li>The data also showed us which pages are most viewed, allowing us to focus on improving the performance of these pages. It also showed us on which pages errors were most frequently encountered, as well as the time taken for web requests and database calls on these pages. These were then fine-tuned to significantly minimize the frequency of errors.</li>
<li>The tool gives us analytic information about the most frequently used browsers and devices used to access the web application. This information helped us focus the application implementation in order to improve the user friendliness on those browsers and devices.</li>
</ol>
<p>Improving the app performance in terms of speed and user friendliness will improve the user experience and thereby significantly increase web traffic. Although working on application performance can be a pain, ignoring it is not advisable for any developer. The use of these tools can be very helpful at different stages: ANTS Profiler is most useful at the development environment and for QA, whereas New Relic is most useful in the production environment to analyse the user data.</p>
<p>MetaSys has extensive expertise in improving application performance, including the use of the different tools, some of which have been described in this article. Feel free to contact us for help with improving your application performance. For more info <a href="https://www.metasyssoftware.com/dot-net">https://www.metasyssoftware.com/dot-net</a></p>
<p>&nbsp;</p>The post <a href="https://www.metasyssoftware.com/others/improve-performance-of-web-applications/">Improve Performance of Web Applications</a> appeared first on <a href="https://www.metasyssoftware.com">Metasys Software Pvt Ltd.</a>.]]></content:encoded>
					
					<wfw:commentRss>https://www.metasyssoftware.com/others/improve-performance-of-web-applications/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How MetaSys handled performance Issues related to Entity Framework</title>
		<link>https://www.metasyssoftware.com/dot-net/how-metasys-handled-performance-issues-related-to-entity-framework/</link>
					<comments>https://www.metasyssoftware.com/dot-net/how-metasys-handled-performance-issues-related-to-entity-framework/#respond</comments>
		
		<dc:creator><![CDATA[meta_prasad]]></dc:creator>
		<pubDate>Fri, 08 May 2020 12:27:31 +0000</pubDate>
				<category><![CDATA[Dot Net]]></category>
		<category><![CDATA[Enterprise Application Integration Services]]></category>
		<category><![CDATA[Offshore DotNet development company]]></category>
		<category><![CDATA[Legacy app migration]]></category>
		<category><![CDATA[Enterprise app development]]></category>
		<category><![CDATA[web application development]]></category>
		<category><![CDATA[Dot Net application development]]></category>
		<category><![CDATA[Dot NET Software Services India]]></category>
		<category><![CDATA[DotNet framework]]></category>
		<category><![CDATA[ASP web application]]></category>
		<category><![CDATA[DotNet Development Company]]></category>
		<guid isPermaLink="false">https://www.metasyssoftware.com/?p=3060</guid>

					<description><![CDATA[<p>In building web applications for clients, two important factors we at MetaSys focus on are performance, and speed of development. [&#8230;]</p>
The post <a href="https://www.metasyssoftware.com/dot-net/how-metasys-handled-performance-issues-related-to-entity-framework/">How MetaSys handled performance Issues related to Entity Framework</a> appeared first on <a href="https://www.metasyssoftware.com">Metasys Software Pvt Ltd.</a>.]]></description>
										<content:encoded><![CDATA[<p>In building web applications for clients, two important factors we at MetaSys focus on are performance, and speed of development. Good performance is crucial for the success of any web application, as users expect pages and screens to load instantly. Users will quickly stop using slow programs in favour of other web or mobile applications. Development speed is also important, as clients currently expect rapid application development.</p>
<p>We have experienced difficulties in both these areas using the Entity Framework, and in this article, I will be describing the cause of the issues, and the solutions that we at MetaSys came up with. If you are having performance issues with Entity Framework, this article might provide some useful insight and suggestions.</p>
<h2><strong>Our issues with the  Entity Framework: </strong></h2>
<p>Let me quickly brief you about how we started using Entity Framework. We started application development of a .NET web application roughly 10 years ago. At the time, Entity Framework was a new concept introduced by Microsoft. Its purpose was to allow the developer to more easily write SQL queries including calculations, it also simplified CRUD operations and handled results into objects. We used Entity Framework for our web application, and during initial testing, everything was working very well.</p>
<p>The performance issues arose after the client started using the application, particularly as the amount of data in the database started growing. We used the Ants Profiler tool to identify the root cause of poor performance. It showed us that stored procedures were executed fast without any significant delay, but with the Entity Framework code, it was taking a long time to render data on a page.</p>
<p>Another issue was that the SQL database for the application had more than 300 tables. Updating the Entity model with a change in any of the tables would take a very long time. It was also difficult to merge changes of only one developer, or only one module, as it would update the entire Entity model. This made it a challenge to release the application module-wise.</p>
<h2><strong>MetaSys Approach :</strong></h2>
<p>To overcome performance issues, we first tried to change some of the settings of EDMX, and secondly updated the Entity Framework to the latest version. Neither made much difference to the performance. In the meanwhile, the applications database size and complexity kept on growing, as the application grew.</p>
<p>Eventually, we replaced the Entity with ADO.NET, and we immediately saw a significant improvement in performance. The difficulty we faced with the conversion was how to handle the ADO.NET result into objects. We resolved this using the open-source Dapper ORM. Dapper is a framework for mapping relational object models. Like Entity Framework, It eases the handling of data in objects and supports multiple data query results. This solution not only improved the page loading time, but as there was no need to update the entity model, the developer’s time also reduced significantly.</p>
<p>So far we have found that using ADO.Net with Dapper ORM solved all the problems we experienced with the Entity Framework.</p>
<p><strong>About Us:</strong></p>
<p>Our team of Dot Net developers have experience of building Dot Net solutions using Microsoft technologies for more than two decades using VB to latest .Net Core applications. For more info. <a href="https://www.metasyssoftware.com/dot-net">https://www.metasyssoftware.com/dot-net</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>The post <a href="https://www.metasyssoftware.com/dot-net/how-metasys-handled-performance-issues-related-to-entity-framework/">How MetaSys handled performance Issues related to Entity Framework</a> appeared first on <a href="https://www.metasyssoftware.com">Metasys Software Pvt Ltd.</a>.]]></content:encoded>
					
					<wfw:commentRss>https://www.metasyssoftware.com/dot-net/how-metasys-handled-performance-issues-related-to-entity-framework/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>InBody Integration for biometric and blood pressure data into a web application</title>
		<link>https://www.metasyssoftware.com/others/inbody-integration-for-biometric-and-blood-pressure-data-into-a-web-application/</link>
					<comments>https://www.metasyssoftware.com/others/inbody-integration-for-biometric-and-blood-pressure-data-into-a-web-application/#respond</comments>
		
		<dc:creator><![CDATA[meta_prasad]]></dc:creator>
		<pubDate>Fri, 24 Apr 2020 13:47:13 +0000</pubDate>
				<category><![CDATA[Others]]></category>
		<category><![CDATA[Dot Net application]]></category>
		<category><![CDATA[Enterprise Mobile Application Development]]></category>
		<category><![CDATA[Enterprise Application Integration Services]]></category>
		<category><![CDATA[Enterprise app development]]></category>
		<category><![CDATA[web application development]]></category>
		<category><![CDATA[Dot Net application development]]></category>
		<category><![CDATA[SQL SERVER]]></category>
		<category><![CDATA[ASP web application]]></category>
		<category><![CDATA[Inbody integration]]></category>
		<category><![CDATA[Dot Net Framework]]></category>
		<category><![CDATA[Web designing and application development]]></category>
		<guid isPermaLink="false">https://www.metasyssoftware.com/?p=3049</guid>

					<description><![CDATA[<p>People today are more health-conscious than ever before, and digital technology is playing an important role in this development. Thanks [&#8230;]</p>
The post <a href="https://www.metasyssoftware.com/others/inbody-integration-for-biometric-and-blood-pressure-data-into-a-web-application/">InBody Integration for biometric and blood pressure data into a web application</a> appeared first on <a href="https://www.metasyssoftware.com">Metasys Software Pvt Ltd.</a>.]]></description>
										<content:encoded><![CDATA[<p><span style="font-weight: 400;">People today are more health-conscious than ever before, and digital technology is playing an important role in this development. Thanks to modern technology, there are many tools and devices to measure and record physical characteristics that relate to personal health. Tracking exercise routines and nutrition has become a popular tool for individuals to keep up a healthy lifestyle. Many health-related online platforms, applications and tools are available for individuals, and integration of such tracking devices can improve their service. </span></p>
<p><span style="font-weight: 400;">This article details such an integration project. Our Dot Net application team helped a client integrate InBody technology into their application. </span></p>
<p><span style="font-weight: 400;">InBody devices offer detailed measurement of body composition balance, including key health factors such as protein, minerals, BMI and body fat percentage. Our project revolved around integrating the InBody 570 device with a </span><span style="font-weight: 400;">.Net application</span><span style="font-weight: 400;">. The solution we implemented involved the </span><span style="font-weight: 400;">.Net application</span><span style="font-weight: 400;"> listening to the serial ports attached to the device for the duration of the test. After receiving a data stream from the InBody device, relevant data is extracted using indices of specific data factors mentioned in the InBody 570 technical documentation. Key settings required by the .Net application include baud rate, parity, data bits, and stop bits. The InBody technical specification includes more details about the values of these settings.  Once the data stream is received, and the data factors are extracted, the data was saved in an SQL server database. The .Net web application reads this data from the SQL server database and displays it to the user. </span></p>
<p><b>Key Challenges</b></p>
<p><span style="font-weight: 400;">The idea is that the application can be used by the fitness facility subscribing to the application and having an InBody machine. The application runs on a laptop or desktop computer connected to the Inbody machine. However, one challenge was that there is no guarantee that the computer is always connected using the same port. If the computer had more than one port on which the device stream can be received, then we had to lock and keep listening to all available ports. Our solution to these issues was to program the app to lock and keep listening to all available and open ports of the laptop and as soon as we receive either data stream or exception, we unlock all ports locked by the .net application. It is important to note that only that process which has locked the serial port can unlock it, no other process can forcibly remove that lock. In the event that the process which locked the port gets terminated, one is left with only the option of system reboot in order to unlock that port.</span></p>
<p><span style="font-weight: 400;">Another issue is that the same app was required to integrate with another measurement device manufactured by InBody, the BPBIO 320. This device reads systolic blood pressure, diastolic blood pressure and pulse, and we modified the .Net app to work with both InBody devices. We used a condition-based code, which looks at application settings and accordingly saves the data in either the production or the staging environment. The BPBIO 320 requires a different baud rate to that of InBody 570, therefore we adapted the application so that the user enters the test type, and then the baud rate is automatically set up by the software. We also process information contained within the data stream that indicates status such as “Measurement started”, “Measurement interrupted due to use of the stop button”, and “Measurement interrupted due to error”.  These cases are handled in the application and clear information is passed on to the user.  </span></p>
<p><span style="font-weight: 400;">We used a PuTTY tool to simulate the device stream in the development environment, as the physical device was not always available. Device testing was performed after development was complete, and we made the necessary changes to the application before the launch.</span></p>
<p><span style="font-weight: 400;">We will be glad to help anyone interested in doing similar kinds of integrations in their software. For more info </span><a href="https://www.metasyssoftware.com/case-study-dotnet"><span style="font-weight: 400;">https://www.metasyssoftware.com/case-study-dotnet</span></a></p>The post <a href="https://www.metasyssoftware.com/others/inbody-integration-for-biometric-and-blood-pressure-data-into-a-web-application/">InBody Integration for biometric and blood pressure data into a web application</a> appeared first on <a href="https://www.metasyssoftware.com">Metasys Software Pvt Ltd.</a>.]]></content:encoded>
					
					<wfw:commentRss>https://www.metasyssoftware.com/others/inbody-integration-for-biometric-and-blood-pressure-data-into-a-web-application/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Using the NReco pdf writing tool</title>
		<link>https://www.metasyssoftware.com/dot-net/using-the-nreco-pdf-writing-tool/</link>
					<comments>https://www.metasyssoftware.com/dot-net/using-the-nreco-pdf-writing-tool/#respond</comments>
		
		<dc:creator><![CDATA[meta_prasad]]></dc:creator>
		<pubDate>Fri, 24 Apr 2020 11:48:33 +0000</pubDate>
				<category><![CDATA[Dot Net]]></category>
		<category><![CDATA[ASP.NETCore]]></category>
		<category><![CDATA[Dot Net application development]]></category>
		<category><![CDATA[Offshore custom software development solutions]]></category>
		<category><![CDATA[Dot NET Software Services India]]></category>
		<category><![CDATA[Offshore custom software development services]]></category>
		<category><![CDATA[DotNet framework]]></category>
		<category><![CDATA[DotNetCore 3.0 developers]]></category>
		<category><![CDATA[ASP web application]]></category>
		<category><![CDATA[NReco]]></category>
		<category><![CDATA[wkhtml]]></category>
		<category><![CDATA[.NetCore]]></category>
		<category><![CDATA[PDF writing tools]]></category>
		<category><![CDATA[DotNet run]]></category>
		<category><![CDATA[DotNet Core 3.0]]></category>
		<guid isPermaLink="false">https://www.metasyssoftware.com/?p=3045</guid>

					<description><![CDATA[<p>These days financial, marketing and e-commerce websites allow us to download reports and receipts in pdf form. The Pdf file [&#8230;]</p>
The post <a href="https://www.metasyssoftware.com/dot-net/using-the-nreco-pdf-writing-tool/">Using the NReco pdf writing tool</a> appeared first on <a href="https://www.metasyssoftware.com">Metasys Software Pvt Ltd.</a>.]]></description>
										<content:encoded><![CDATA[<p>These days financial, marketing and e-commerce websites allow us to download reports and receipts in pdf form. The Pdf file format is a convenient way of sharing information, as there is a high level of confidence that the user can open the document with the intended look and feel. This is even true for documents containing charts, images and text-based on dynamic data. There are many pdf writing tools available online, of which two commonly used ones are wkhtmltopdf and NReco. This blog article details the recent switch we made from wkhtmltopdf to NReco, and the numerous benefits of the switch.</p>
<p><strong>Our experience with wkhtmltopdf</strong></p>
<p>In the past, we generally used wkhtmltopdf to implement pdf functionality in our web applications. It was a practical choice, as it is an open-source tool with which we have extensive development experience already. The converter tool is given a destination file path and a URL of the report web page. Since the download button is contained within the generated report in web page form, the pdf conversion adds an unnecessary report generation step. To avoid this inefficiency, we wanted to explore different pdf converter options.</p>
<p><strong>Our experience with NReco</strong></p>
<p>We came across a library in a NuGet package called .Net Reusable Components (NReco), which contains a collection of reusable components for the .NET platform including a pdf conversion tool. The only input the tool requires is either a URL to the web page or the report contents as an HTML string. NReco is easier to implement, requiring only two to three lines of code. Even reports containing charts and images created using a third-party tool can be rendered to a pdf without additional coding. All CSS, fonts and images in HTML are supported by the NReco conversion tool.</p>
<p>The NReco tool is easy to install, and performs efficiently, taking much less time than wkhtmltopdf to generate a pdf. Although we currently only use NReco for pdf conversion, many other tools are available.</p>
<p>A major advantage of NReco, is that it supports both the .Net framework and .Net Core. Since we are looking to upgrade a number of our applications to .Net Core, it saves us considerable development time if we can use the existing code for pdf conversion.</p>
<p>To conclude, using NReco instead of wkhtmltopdf for pdf conversion has many benefits including easy implementation, performance, and compatibility with .Net Core.</p>
<p><strong>About us</strong></p>
<p>Our team of .Net developers have successfully delivered applications using ASP.Net Core, .Net &amp; ASP.Net framework, Visual Studio, Microsoft SQL Server, Team Foundation Server, Javascript and JQuery. For more info &#8211; <a href="https://www.metasyssoftware.com/dot-net">https://www.metasyssoftware.com/dot-net</a></p>The post <a href="https://www.metasyssoftware.com/dot-net/using-the-nreco-pdf-writing-tool/">Using the NReco pdf writing tool</a> appeared first on <a href="https://www.metasyssoftware.com">Metasys Software Pvt Ltd.</a>.]]></content:encoded>
					
					<wfw:commentRss>https://www.metasyssoftware.com/dot-net/using-the-nreco-pdf-writing-tool/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>A Case Study – Building a Dashboard using Google charts in ASP.NET</title>
		<link>https://www.metasyssoftware.com/dot-net/a-case-study-building-a-dashboard-using-google-charts-in-asp-net/</link>
					<comments>https://www.metasyssoftware.com/dot-net/a-case-study-building-a-dashboard-using-google-charts-in-asp-net/#respond</comments>
		
		<dc:creator><![CDATA[meta_prasad]]></dc:creator>
		<pubDate>Thu, 16 Apr 2020 08:18:07 +0000</pubDate>
				<category><![CDATA[Dot Net]]></category>
		<category><![CDATA[Dashbaord]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[ASP web application]]></category>
		<category><![CDATA[ASP Dot Net developer]]></category>
		<category><![CDATA[ASP.Net core]]></category>
		<category><![CDATA[DotNet Development Company]]></category>
		<category><![CDATA[outsourcing dot net services]]></category>
		<category><![CDATA[Offshore DotNet development company]]></category>
		<category><![CDATA[Database Consultants]]></category>
		<category><![CDATA[Google charts]]></category>
		<guid isPermaLink="false">https://www.metasyssoftware.com/?p=3027</guid>

					<description><![CDATA[<p>Tracking KPIs, metrics and any other relevant data is important for any business looking to improve their performance, and proper [&#8230;]</p>
The post <a href="https://www.metasyssoftware.com/dot-net/a-case-study-building-a-dashboard-using-google-charts-in-asp-net/">A Case Study – Building a Dashboard using Google charts in ASP.NET</a> appeared first on <a href="https://www.metasyssoftware.com">Metasys Software Pvt Ltd.</a>.]]></description>
										<content:encoded><![CDATA[<p>Tracking KPIs, metrics and any other relevant data is important for any business looking to improve their performance, and proper visualisation can be helpful for identifying trends and patterns. A useful information management tool is a dashboard, which can be used to provide a graphical summary of all relevant information. This article details a recent project, in which we successfully built a dashboard for a client using Google charts.</p>
<p><strong>Case study</strong></p>
<p>Our client wanted a way to efficiently track day to day reporting, check the status and progress of different tasks, and financial metrics like revenue, costs and profit-loss data. Previously, they had to access several different reports to analyse the overall business performance. We built a dashboard that allowed them to visualise the day to day business activities on a single screen, saving time and energy.</p>
<p>We decided to use Google Charts for a number of reasons:</p>
<ul>
<li>Google Charts are a good tool for visualization as the graphics are highly interactive.</li>
<li>There is a large gallery of chart types that allow for a lot of customisation for representing different kinds of data.</li>
<li>It is compatible with different browsers.</li>
</ul>
<p><strong>Technology and Implementation</strong></p>
<p>For the implementation of the dashboard we used jQuery and ASP.net. These technologies are easy to use, and allow for easy rendering of the page. Furthermore, Google Charts have an inbuilt library in jQuery.</p>
<p><strong>Implementation steps of Google chart in ASP.NET</strong></p>
<p>Before the implementation, all the Google Chart Libraries and the visualization API need to be loaded. The following procedure was used to include a chart in ASP.net:</p>
<ol>
<li>Create an html div to hold the chart as per our requirement.</li>
<li>Ajax call for loading data in the chart</li>
<li>Call the Visualization API before assigning it to the chart and set the chart options like legends and axis titles</li>
<li>Assign the div id to the chart</li>
<li>The call to the chart depends on the chart type (barchart, donut chart etc.).</li>
<li>Call the draw method of the Google chart and set the chart option.</li>
</ol>
<p><strong>Chart examples</strong></p>
<p>Donut Chart:</p>
<p><img decoding="async" class="alignnone wp-image-3028 size-full" title="donut chart" src="https://www.metasyssoftware.com/wp-content/uploads/donut-chart-.png" alt="donut chart" width="862" height="531" /></p>
<p>&nbsp;</p>
<p>Stack Chart:</p>
<p><img decoding="async" class="alignnone wp-image-3029 size-full" title="stack chart" src="https://www.metasyssoftware.com/wp-content/uploads/stack-chart.png" alt="stack chart" width="603" height="526" /></p>
<p><strong>Matching client requirements</strong></p>
<p>Our main challenge was to modify the chart to meet the clients needs.  For example, the client specified that the revenue chart was to be displayed in a rectangular format without a legend, or axes. We identified the “Timeline chart” as the most appropriate chart option amongst the templates although it still required customization. We modified the inbuilt generated SVG code from JavaScript by specifying the position and width and by hiding the x- and y-axes to match the client requirements.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3039 size-full" title="NG &amp; MNG data" src="https://www.metasyssoftware.com/wp-content/uploads/NG-MNG-data.jpg" alt="NG &amp; MNG data" width="627" height="50" /></p>
<p>If you are interested in a similar implementation of data visualisation, feel free to contact us. Our team has extensive experience in handling diverse custom ASP.NET application projects. <a href="https://www.metasyssoftware.com/contact">https://www.metasyssoftware.com/contact</a></p>The post <a href="https://www.metasyssoftware.com/dot-net/a-case-study-building-a-dashboard-using-google-charts-in-asp-net/">A Case Study – Building a Dashboard using Google charts in ASP.NET</a> appeared first on <a href="https://www.metasyssoftware.com">Metasys Software Pvt Ltd.</a>.]]></content:encoded>
					
					<wfw:commentRss>https://www.metasyssoftware.com/dot-net/a-case-study-building-a-dashboard-using-google-charts-in-asp-net/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Converting an MVC web APP to .Net Core Web App</title>
		<link>https://www.metasyssoftware.com/dot-net/converting-an-mvc-web-app-to-net-core-web-app/</link>
					<comments>https://www.metasyssoftware.com/dot-net/converting-an-mvc-web-app-to-net-core-web-app/#respond</comments>
		
		<dc:creator><![CDATA[meta_prasad]]></dc:creator>
		<pubDate>Mon, 13 Apr 2020 07:56:19 +0000</pubDate>
				<category><![CDATA[Dot Net]]></category>
		<category><![CDATA[Dot NET Software Services India]]></category>
		<category><![CDATA[DotNet framework]]></category>
		<category><![CDATA[DotNetCore 3.0 developers]]></category>
		<category><![CDATA[Dot Net application development DotNet Core 3.0]]></category>
		<category><![CDATA[ASP web application]]></category>
		<category><![CDATA[ASP Dot Net developer]]></category>
		<category><![CDATA[Web application development company]]></category>
		<category><![CDATA[ASP.Net Development Company in India]]></category>
		<category><![CDATA[DotNet run]]></category>
		<guid isPermaLink="false">https://www.metasyssoftware.com/?p=2996</guid>

					<description><![CDATA[<p>History Like many others, we have been working on MVC 5 based web applications since 2013. With Microsoft planning significant [&#8230;]</p>
The post <a href="https://www.metasyssoftware.com/dot-net/converting-an-mvc-web-app-to-net-core-web-app/">Converting an MVC web APP to .Net Core Web App</a> appeared first on <a href="https://www.metasyssoftware.com">Metasys Software Pvt Ltd.</a>.]]></description>
										<content:encoded><![CDATA[<p><strong>History</strong></p>
<p>Like many others, we have been working on MVC 5 based web applications since 2013. With Microsoft planning significant investment into the open-source development platform .Net core, we saw the advantage of migrating our current applications to the new platform sooner rather than later.<br />
The first version of .Net Core 1.0 was released by Microsoft in 2014, followed by several versions, most recently .Net 3.1.1 in January 2020. At the time that we started the migration in 2019, we found .Net 2.2 to be a stable version with a well-developed community advanced enough to answer our queries. The web application that we decided to convert to .Net Core was developed in 2017 on the .Net 4.5.1 MVC platform.</p>
<p><strong>Initial considerations</strong><br />
Evaluating the conversion risk is an essential first step before convincing the client to invest in the new technology. Several factors need to be considered, including the project timeline, the scale of the project and the available resources. Using a team that has worked with the technology for at least a year or two is the best option for reducing risk in such a conversion project. A great option is using interns as an additional resource, as the project provides them with the excitement of learning something new.</p>
<p><strong>HOW to start?</strong><br />
The first step is to check the old application with the tool called NET Portability Analyzer Tool. This tool analyzes assemblies and provides a detailed report on the .Net APIs that are missing for the applications or libraries to be portable on .Net Core. It is not a tool which will automatically convert the .NET MVC app to a .NET Core, but it is a useful initial guide towards identifying the portable and non-portable items.<br />
The tool details are available on the Microsoft website:<br />
https://docs.microsoft.com/en-us/dotnet/standard/analyzers/portability-analyzer<br />
The tool can be downloaded using the link: https://marketplace.visualstudio.com/items?itemName=ConnieYau.NETPortabilityAnalyzer</p>
<p>The screenshots below show some of the tool outputs:<br />
<strong>Portability Summary</strong></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-2998 size-full" title="Portability summary" src="https://www.metasyssoftware.com/wp-content/uploads/Portability-summary-image-1.jpg" alt="Portability summary" width="975" height="254" /></p>
<p><strong>Details</strong></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-2999 size-full" title="Details image" src="https://www.metasyssoftware.com/wp-content/uploads/details-image-2.jpg" alt="Details image " width="975" height="206" /></p>
<p><strong>Missing Assemblies</strong></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3000 size-full" title="Missing assemblies" src="https://www.metasyssoftware.com/wp-content/uploads/Missing-assemblies-3.jpg" alt="Missing assemblies " width="975" height="328" /></p>
<p><strong>Creating the new project</strong><br />
It is not useful to open the entire MVC project as a .Net Core project immediately in Visual Studio (VS) 2017, as it will result in a huge list of errors that are difficult to address one by one. A better approach is to create an empty project and copy a few models, controllers, views or corresponding files at a time into the newly created .Net Core project in the VS 2017 environment. After each addition, build the project, analyze and fix the errors.<br />
What were my next steps? Let me give you some technical bullets here.<br />
One of the important steps is to move the connection strings settings from Web.Config to JSON settings in the file named as AppSettings.JSON .<br />
It is necessary to add a middle layer file for the session and call it in the StartUp.cs file. so that all the session objects set on the Global. asax file that do not exist on the .Net Core project will go into the middle layer file and register as a service in StartUp.cs. The Session dependency is included by adding AddSession into ConfigureServices of StartUp.cs<br />
Convert all of your class libraries created separately to .Net standard Class Libraries wherever required by creating a .NET Standard Project and add the references wherever required for the new .NET Core Web App project you have created.<br />
All static files like Images, icons, CSS, JS, email templates need to be copied into WWWRoot. The file locations have to be changed across the project wherever they are referenced.<br />
The Route.config file should be replaced by adding the MapRoute in the StartUp.cs file.<br />
We can create Set and Get extension functions Like SetObject and GetObject for handling session operations as shown below</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3001 size-full" title="set object and get object" src="https://www.metasyssoftware.com/wp-content/uploads/set-object-and-get-object-image-4.png" alt="set object and get object" width="823" height="277" /></p>
<p>We have two parts in our project Web App and Web API so we have to add the DI (Dependency Injection) for calling WebAPIClient and HostingEnvironment (IWebAPIClient webapiclient, IHostingEnvironment env)</p>
<p><strong>What can be done on SSL redirection?</strong><br />
We have to add following setting in AppSettings.json file</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3002 size-full" title="image" src="https://www.metasyssoftware.com/wp-content/uploads/app-setting-image-5.jpg" alt="image" width="334" height="63" /></p>
<p>Also we have to add following code in Startup.cs</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3003 size-full" title="startup cs" src="https://www.metasyssoftware.com/wp-content/uploads/startup-cs-6.jpg" alt="startup cs" width="463" height="111" /></p>
<p>Third party Dlls<br />
Every project has some third party Dlls used in the project for a specific purpose. For our application, the third party Dlls like EPPlus, ICSharpCode.SharpZipLib library worked on the .NET Core project without any issues. However, it is possible that certain third party tool kits are not compatible with .NET Core. Some can be downloaded from NuGet or by contacting a third party vendor.<br />
There may be instances where third party assemblies used in the project do not work and cannot be bought from third party vendors. In this case, I would recommend finding a solution that omits the tool altogether. It pays to think of this early whilst updating any web app that might be migrated in the future. This way incompatible third party Dlls can be avoided in favor of compatible tools, in order to save work at the migration stage. One such example is Nreco PDF to Image renderer, which has a version that is compatible with .Net Core available from a third party vendor.</p>
<p>The technical points in this article refer to architectural changes, I will cover the common conversion issues and deployment in the next article so stay tuned…</p>
<p>For more details regarding the kind of ASP web application projects which we handle https://www.metasyssoftware.com/case-study-dotnet</p>The post <a href="https://www.metasyssoftware.com/dot-net/converting-an-mvc-web-app-to-net-core-web-app/">Converting an MVC web APP to .Net Core Web App</a> appeared first on <a href="https://www.metasyssoftware.com">Metasys Software Pvt Ltd.</a>.]]></content:encoded>
					
					<wfw:commentRss>https://www.metasyssoftware.com/dot-net/converting-an-mvc-web-app-to-net-core-web-app/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
