<?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>DotNet application development &gt; Metasys Software Pvt Ltd.</title>
	<atom:link href="https://www.metasyssoftware.com/tag/dotnet-application-development/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.metasyssoftware.com</link>
	<description>Unique People, Unique Solutions</description>
	<lastBuildDate>Wed, 30 Apr 2025 10:30:25 +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>DotNet application development &gt; Metasys Software Pvt Ltd.</title>
	<link>https://www.metasyssoftware.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>What, Why, and How of Microservices?</title>
		<link>https://www.metasyssoftware.com/dot-net/microservices/</link>
		
		<dc:creator><![CDATA[meta_prasad]]></dc:creator>
		<pubDate>Fri, 09 Apr 2021 08:20:04 +0000</pubDate>
				<category><![CDATA[Dot Net]]></category>
		<category><![CDATA[DotNet run]]></category>
		<category><![CDATA[DotNet framework]]></category>
		<category><![CDATA[DotNet application development]]></category>
		<category><![CDATA[Microservices. ASP.Net]]></category>
		<category><![CDATA[ASP.Net developers]]></category>
		<category><![CDATA[DotNet programmer]]></category>
		<category><![CDATA[Dot Net application development company]]></category>
		<category><![CDATA[Dot Net application developers]]></category>
		<guid isPermaLink="false">https://www.metasyssoftware.com/?p=3533</guid>

					<description><![CDATA[<p>What are Microservices? Historically applications were Monolithic applications where the architecture was a unified and closely coupled integrated unit. Microservices, [&#8230;]</p>
The post <a href="https://www.metasyssoftware.com/dot-net/microservices/">What, Why, and How of Microservices?</a> appeared first on <a href="https://www.metasyssoftware.com">Metasys Software Pvt Ltd.</a>.]]></description>
										<content:encoded><![CDATA[<h1><strong>What are Microservices?</strong></h1>
<p>Historically applications were Monolithic applications where the architecture was a unified and closely coupled integrated unit. Microservices, on the contrary, are smaller independent unified business modules. Each module in Microservices performs its own unique business functionality, at times with dedicated databases.</p>
<p><img fetchpriority="high" decoding="async" class="aligncenter wp-image-3534 size-full" title="Monolith and Microservices" src="https://www.metasyssoftware.com/wp-content/uploads/Monolith-and-Microservices.jpg" alt="Monolith and Microservices" width="750" height="390" /></p>
<p>As shown in the above image, the architecture of Microservices consists of independent smaller units, which are interconnected and managed with the help of API Gateway.</p>
<h2><strong>Why opt for Microservices instead of Monolithic Applications?</strong></h2>
<p>A Monolithic application is a big container with a collection of different smaller independent parts combined and coupled tightly together, which creates varied inseparable disadvantages.</p>
<p>Here are a few disadvantages of Monolithic services.</p>
<p style="text-align: left;">• Inflexible – Monolithic applications cannot be built using different technologies.<br />
• Unreliable – One bug or issue in the application may result in the shutdown of the entire system.<br />
• Not Scalable – The tightly coupled nature of a Monolithic application does not scale easily, as workloads cannot be easily distributed across multiple nodes or hardware.<br />
• Hinders continuous deployment – Continuous delivery and deployment in short cycles of time is difficult due to the monolithic nature of the application<br />
• Longer development timelines – The development of Monolithic applications requires lengthy timelines since every feature demands rebuilding of the entire application.<br />
• Complex applications –Incorporating changes in complex monolithic applications become expensive and a maintenance nightmare.</p>
<p>As mentioned earlier, a microservices application is a collection of small independent services designed for different business purposes. In Microservices, each individual service is self-contained. Communication with each self-contained unit is managed by an API Gateway. There are various API Gateways available, and the client can communicate with different business functions of Microservices via the API Gateway.</p>
<h2><strong>Features of Microservices</strong></h2>
<p>• Decoupled Components – Decoupled services in Microservices architecture enables the entire application to be built, modified, and scaled up quickly with ease.<br />
• Componentization –As each service is an independent component, they can be easily individually replaced and upgraded.</p>
<p>• Undivided business capability –Each Microservice is effortless and focuses on a single business capability</p>
<p>• Autonomy – Developers and teams can work with minimal dependencies, thus increasing development speed and turnaround time.<br />
• Continuous delivery – Allows frequent releases of features by systematic automation of application creation, testing, and approval.<br />
• Responsibility – Microservices treat applications as products and not projects, ensuring the responsibility is in-built.<br />
• Decentralized governance – With no fixed or standardized tool or any technology patterns, developers have the freedom to choose tools based on the requirements to accomplish the job within stipulated timelines.<br />
• Agility – New features can be added easily and quickly developed. A Microservices architecture supports agile development.</p>
<h2><strong>Advantages of Microservices</strong></h2>
<p>• Independent development – all services are independent of their business purposes and usage.<br />
• Independent deployment –The architecture of Microservices allows services to be individually deployed.<br />
• Isolation of fault – the system continues to function even if one service or a part of the application ceases to work.<br />
• Mixed technologies stack – it is not mandatory to use only one of the platforms for development. We can use multiple platforms and built Microservices architecture as per the need of the application.<br />
• Individual scaling – scale different individual components and deploy them individually without affecting other components.</p>
<h2><strong>Best Practices to Design Microservices</strong></h2>
<p>• Separate data store for each Microservices<br />
• Maintain the level of code maturity<br />
• Separate build for each Microservice<br />
• Deploy services into containers<br />
• Treat server as stateless</p>
<h2><strong>Disadvantages of Microservices</strong></h2>
<p>• Huge number of services makes application management tough to track<br />
• The developer will require to solve issues pertaining to Network latency and load balancing</p>
<h2><strong>How to create Microservices and API Gateway interface?</strong></h2>
<p>Note: This is for those who are familiar with <a href="https://www.metasyssoftware.com/dot-net-development/">ASP.Net</a> project concepts.</p>
<p>In this demo, we&#8217;ll cover the following points,</p>
<p>1. Create two Microservices<br />
2. Create an API Gateway<br />
3. For creating the demo project VS2019 or VS Code, .Net Core 3.1 SDK needs to be installed on the machine</p>
<h2><strong>Steps to Create a Microservices Demo Project</strong></h2>
<p><strong>Step 1</strong><br />
• Create two .Net Core web API template project for different purposes<br />
• First, UserService project for user data purpose<br />
• Second, ProductService project for product data purpose<br />
• Create UserController in UserService project and ProductController in ProductService<br />
• Add simple action into the controller that returns the string for testing purpose<br />
• If required, connect API project with the database</p>
<p><img decoding="async" class="aligncenter wp-image-3535 size-full" title="Simplemicroservice" src="https://www.metasyssoftware.com/wp-content/uploads/Simplemicroservice.png" alt="Simplemicroservice" width="333" height="491" /></p>
<p><strong>Step 2 &#8211; </strong>Test the above web API project with the help of postman individually</p>
<h3><strong>1.) Product Service Output</strong></h3>
<p><img decoding="async" class="aligncenter wp-image-3536 size-full" title="Product service output" src="https://www.metasyssoftware.com/wp-content/uploads/Product-service-output.png" alt="Product service output" width="755" height="343" /></p>
<h3><strong>2.) User Service Output</strong></h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-3537 size-full" title="User service output" src="https://www.metasyssoftware.com/wp-content/uploads/User-service-output.png" alt="User service output" width="725" height="448" /></p>
<p>&nbsp;</p>
<p><strong>Step 3 &#8211; </strong>Create .net core web empty template project for API Gateway with the desired name. In this instance, we chose ‘APIGateway’</p>
<p><strong>Step 4 &#8211; </strong>Include the dependency of ocelot API Gateway from NuGet package manager</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-3538 size-full" title="Ocelot" src="https://www.metasyssoftware.com/wp-content/uploads/Ocelot.png" alt="Ocelot" width="578" height="166" /></p>
<p style="text-align: left;"><strong>Step 5 –</strong><br />
• Create a JSON file to configure API Gateway for web API and assign a name. In this instance, it is ‘ocelot.json’<br />
• Include the following code text to the JSON file for configuring the API Gateway. In this demo project, API Gateway is used for routing purpose. API Gateway serves different purposes such as:<br />
o Routing<br />
o Caching<br />
o Logging<br />
o Authentication<br />
o Authorization<br />
o Load balancing<br />
o Service Discovery</p>
<p><img loading="lazy" decoding="async" class=" wp-image-3539 aligncenter" src="https://www.metasyssoftware.com/wp-content/uploads/Ocelot.JSON.png" alt="Ocelot.JSON" width="947" height="453" /></p>
<p style="text-align: center;">Note: In the above image, detail of ocelot.JSON are in the comments</p>
<p style="text-align: left;">Some details of ocelot.JSON are considered while configuring API Gateway from the ocelot package.</p>
<p>• The request forwarded to URL set byDownstreamPathTemplate, DownstreamHostAndPorts and DownstreamScheme<br />
• Ocelot will use the UpstreamPathTemplate URL to identify where the DownstreamPathTemplate request is to be used.<br />
• Ocelot uses UpstreamHttpMethod to make a difference between multiple requests with the same URLs but with different HTTP verbs. We can set a specific list of HTTP Methods or set a blank to allow any of them.</p>
<p><strong>Step 6 &#8211;</strong> Configure the JSON file for application configuration as shown below in Program.cs file</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-3540 size-full" title="Program.cs file" src="https://www.metasyssoftware.com/wp-content/uploads/Program.cs-file.png" alt="Program.cs file" width="1059" height="529" /></p>
<p><strong>Step 7 –</strong> Set Ocelot middleware ASP.Net project as shown below in Startup.cs file</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-3541 size-full" title="Startup.cs file" src="https://www.metasyssoftware.com/wp-content/uploads/Startup.cs-file.png" alt="Startup.cs file" width="1056" height="510" /></p>
<p><strong>Step 8 –</strong> Run the application to test the working condition of API Gateway. Before running, make sure all projects are marked as startup projects. To handle request from the API Gateway application UserService and ProductService must be running.</p>
<p>Note: If you are testing project through VS2019, the following steps will help you mark all projects as the startup project.</p>
<p><strong>Step 9 &#8211;</strong> Right-click on the main solution and click on the property, alter the settings as shown below</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-3542 size-full" title="Simplemicroservice image 2" src="https://www.metasyssoftware.com/wp-content/uploads/Simplemicroservice-image-2.png" alt="Simplemicroservice image 2" width="1115" height="548" /><br />
<strong>Step 10 &#8211;</strong> Below screen shows the final output. When you run the project, all three startup projects will be running, at times, on different ports. We need to check if Customer and User service received a call from the API Gateway project, as shown below.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-3543" title="API Gateway project" src="https://www.metasyssoftware.com/wp-content/uploads/API-Gateway-project.png" alt="API Gateway project" width="1098" height="585" /></p>
<p>&nbsp;</p>
<p>Hope this article has helped you understand the know-how of Microservices. If you have any questions, please feel free to drop them in our comments section. Happy to Help!<br />
Happy Coding!</p>The post <a href="https://www.metasyssoftware.com/dot-net/microservices/">What, Why, and How of Microservices?</a> appeared first on <a href="https://www.metasyssoftware.com">Metasys Software Pvt Ltd.</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Exporting JSON data from your ASP .Net Web API to a Microsoft Excel Spreadsheet using Macro Programming</title>
		<link>https://www.metasyssoftware.com/dot-net/exporting-json-data-from-asp-net-web-api/</link>
					<comments>https://www.metasyssoftware.com/dot-net/exporting-json-data-from-asp-net-web-api/#respond</comments>
		
		<dc:creator><![CDATA[meta_prasad]]></dc:creator>
		<pubDate>Fri, 20 Nov 2020 12:29:21 +0000</pubDate>
				<category><![CDATA[Dot Net]]></category>
		<category><![CDATA[dot net programmer]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[DotNet application development]]></category>
		<category><![CDATA[Web API]]></category>
		<category><![CDATA[dot net developer]]></category>
		<category><![CDATA[dot net development company]]></category>
		<guid isPermaLink="false">http://stage.metasyssoftware.com/?p=3438</guid>

					<description><![CDATA[<p>Exporting your data to an excel spread sheet is a very common requirement, but what if this data is coming [&#8230;]</p>
The post <a href="https://www.metasyssoftware.com/dot-net/exporting-json-data-from-asp-net-web-api/">Exporting JSON data from your ASP .Net Web API to a Microsoft Excel Spreadsheet using Macro Programming</a> appeared first on <a href="https://www.metasyssoftware.com">Metasys Software Pvt Ltd.</a>.]]></description>
										<content:encoded><![CDATA[<p>Exporting your data to an excel spread sheet is a very common requirement, but what if this data is coming from a  database as a Web API  service . This is possible using Macro Programming.</p>
<p>In this article, I would like to give a  brief overview of how to export your data from the ASP .net Web API controller to your Excel Spread Sheet on a specific look up field using a live example.</p>
<p>Example:  We had a sport lookup field which populated the data from a second tab sheet where there was Master data.</p>
<p>Sports lookup field on Excel tab sheet 1</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3439 size-full" src="https://www.metasyssoftware.com/wp-content/uploads/Sportlookupfield-1.png" alt="Sport Look Up Field" width="266" height="248" /><br />
We had a web application developed in MVC and a Web API. The web application had a feature where the end-users could download an excel file template with columns of static data on one sheet and master data present on the second sheet using data validations (Feature of Excel). As the data fields increased we had to keep updating this excel template with the static data for selection so that the end users could use the template with the latest data. As this was quite a tedious process, we decided to write a program in macro. The macro program was supposed to get the latest data from the database and populate the excel file with the same fields whenever you opened it.</p>
<p>Master values for the Sports look-up field from the second tab sheet.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3224 size-full" title="Mastervalues 2" src="https://www.metasyssoftware.com/wp-content/uploads/Mastervalues-2.png" alt="Mastervalues 2" width="122" height="464" /></p>
<p>On the Web API side, we had the controller Method Get() returning a JSON object with all the data in it. You can name it as GetSportsData(). On the macro program side, we consumed the service from the API with the below code.</p>
<p>Here is the following code snippet which we wrote for macro programming. The programming langauge which was used here is VB;</p>
<p>Dim requestObject As Object</p>
<p>Dim URL As String</p>
<p>Dim boolAsync As Boolean</p>
<p>Dim strResponse As String</p>
<p>Set requestObject = CreateObject(&#8220;MSXML2.XMLHTTP&#8221;)</p>
<p>URL = http://mylittleblog.com/api/GetSportsData &lt;&gt;</p>
<p>boolAsync = True</p>
<p>With requestObject</p>
<p>.Open &#8220;GET&#8221;, URL, boolAsync</p>
<p>.SetRequestHeader &#8220;Content-Type&#8221;, &#8220;application/json&#8221;</p>
<p>.Send</p>
<p>While requestObject.readyState &lt;&gt; 4</p>
<p>DoEvents</p>
<p>Wend</p>
<p>strResponse = .ResponseText</p>
<p>End With</p>
<p>The variable &#8216;strResponse‘ contains the JSON object and the data from this JSON object can be used in the sheet and formatted into rows and columns.</p>
<p>The readyState property holds the status of the XMLHttpRequest which you can find in any AJAX Server reponses.</p>
<p>readyState</p>
<p>The various status of the XMLHttpRequest.</p>
<p>0: request not initialized<br />
1: server connection established<br />
2: request received<br />
3: processing request<br />
4: request finished and response is ready</p>
<p>Points to consider:</p>
<p>You must make sure that while executing the macro program, the WEB API service must be running or else we will not get the latest data from the API.<br />
If you are not able to hit the WEB API endpoint, then you can write the code to populate the data from the master tab sheet as it may happen that the user may not be connected to the internet.</p>
<p>This way, one can find a solution to connect to the WEB API world from the Microsoft Excel sheet. We at MetaSys Software have been building such customized solutions using Microsoft technologies for clients across different industry verticals. For more info. https://www.metasyssoftware.com/dot-net</p>The post <a href="https://www.metasyssoftware.com/dot-net/exporting-json-data-from-asp-net-web-api/">Exporting JSON data from your ASP .Net Web API to a Microsoft Excel Spreadsheet using Macro Programming</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/exporting-json-data-from-asp-net-web-api/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<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[DotNet framework]]></category>
		<category><![CDATA[ASP web application]]></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>
		<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>
	</channel>
</rss>
