tag:blogger.com,1999:blog-18478739004655614672024-03-21T07:09:03.384-07:00Anurag Ruhela's BlogSomethings that I found Interesting and the usual rantAnurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.comBlogger34125tag:blogger.com,1999:blog-1847873900465561467.post-28233792735823569972020-04-23T01:25:00.000-07:002020-04-23T01:25:42.139-07:00Override ToString in Csharp<div dir="ltr" style="text-align: left;" trbidi="on">
First question that comes to mind is why should I do that. My answer is “for fun”. ;)<br />
The code is pretty simple to write. Here is a sample.<br />
<br />
<script src="https://gist.github.com/ruhelaanurag/d302722589a7c2eed9f13428e8e3a920.js"></script>
There are two return statements. One return name and salary, while the other returns json string.<br />
<br />
It is mostly recommended to override ToString for debugging purposes.<br />
<br />
I was able to find a good stackoverflow <a href="https://stackoverflow.com/a/10278430" target="_blank">answer</a> written in 2012, talks about why we should do that.<br />
<br />
There is an important note on msdn article on <a href="https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/how-to-override-the-tostring-method" target="_blank">how to override ToString</a> which is as below.<br />
<br />
"<span style="font-family: Verdana, sans-serif;">When you decide what information to provide through this method, consider whether your class or struct will ever be used by untrusted code. Be careful to ensure that you do not provide any information that could be exploited by malicious code.</span>"<br />
<br />
You can find the complete program <a href="https://github.com/ruhelaanurag/BasicPrograms/blob/master/OverrideToString.cs" target="_blank">here</a>.<br />
<br />
<br />
<br />
<br />
<br /></div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com1tag:blogger.com,1999:blog-1847873900465561467.post-62560990963171949332020-04-11T22:42:00.000-07:002020-04-11T22:44:29.823-07:00Using yield return in CSharp<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
I was not very sure on the use of yield return in C#, until I read completely about it in very simple manner. I will try my best to share all I learned in as simple words I can.<br />
<br />
I know it’s a very old thing and many people online use it, but I believe there, still, are many developers like me who are avoiding it because all the books and articles explain it in very few words at very high level view.<br />
<br />
So, let us just start with a simple premise, we need a function to return list of numbers from a very large sequence. An example can be to return the list of first 100 even numbers, assume that later on in the program we are processing our list of 100 even numbers. In your case it can be to pull the record of customers from database on certain condition.<br />
<br />
<script src="https://gist.github.com/ruhelaanurag/f224d92b10ea99c26017273cc486fa81.js"></script> Well there are many efficient ways to write the same program, I intentionally chose this, as this post is about keeping it simple.<br />
<br />
If you keep the input as 100, there is no major memory allocation, but if the input is changed to 1million or more, the memory allocated for execution of the program increases drastically. Same can be checked using diagnostic tools in visual studio.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNXxTzqKr1MCpwLwZVChTUEhLQ7doq8Ax8GBE5aWDRhTdM4Co4vjHRDRIUz72ysmzfp3y8qEJ1rPcXYZkmEd43qtwkUy3JdM3e3auybQGAkCfqioZVNF253oG3gO1nq7oEdqu2VKGsiTM/s1600/MemoryAllocation.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="359" data-original-width="741" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNXxTzqKr1MCpwLwZVChTUEhLQ7doq8Ax8GBE5aWDRhTdM4Co4vjHRDRIUz72ysmzfp3y8qEJ1rPcXYZkmEd43qtwkUy3JdM3e3auybQGAkCfqioZVNF253oG3gO1nq7oEdqu2VKGsiTM/s1600/MemoryAllocation.png" /></a></div>
<br />
We live in the world where memory cost is always ignored against CPU, but that should not be our reason to fill the stack when we can do better.<br />
<br />
yield return is a solution. I wrote the same program as above, the only difference is the return type. Instead of returning the List we are here returning IEnumberable.<br />
<br />
<script src="https://gist.github.com/ruhelaanurag/87e7f4a5b7f0c1debe7ea25f644351b4.js"></script>
Don’t even think of counting the elements in the sequence. This is IEnumerable, not IQueryable. <a href="https://docs.microsoft.com/en-us/dotnet/api/system.collections.ienumerable?view=netframework-4.8" target="_blank">IEnumberable<T></a> exist in System.Collections.Generic.<br />
<a href="https://docs.microsoft.com/en-us/dotnet/api/system.linq?view=netframework-4.8" target="_blank">IQueryable</a> exists in System.Linq. <a href="https://www.anuragruhela.net/2017/04/iqueryable-vs-ienumerable-comparison.html" target="_blank">This article</a> talks about the difference in detail.<br />
You can find the complete program on <a href="https://gist.github.com/ruhelaanurag/9afcb93a49e75577a1839d11138722bb" target="_blank">github</a>.<br />
<br />
I hope this was easy. Please share your thoughts in the comments below.</div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com1tag:blogger.com,1999:blog-1847873900465561467.post-49708363692118074232019-10-30T08:21:00.000-07:002019-11-01T22:36:41.788-07:00Debugging Azure functions locally<div dir="ltr" style="text-align: left;" trbidi="on">
Actually the title of this post should be "Debugging your serverless apps locally".<br />
I found a utility while working on Azure functions which helps you debug the function locally(if you have the source code, obviously). It is called <a href="https://ngrok.com/" target="_blank">ngrok</a>. They have a pretty awesome website and very simple <a href="https://ngrok.com/docs" target="_blank">docs</a>.<br />
<br />
<br />
Steps to proceed are as below.<br />
<ol style="text-align: left;">
<li>Make sure your Azure function is up and running in your machine and you are able to hit the breakpoint from your local.</li>
<li>Signup on the ngrok website. </li>
<li>Download the ngrok utility(its an exe file). double click to execute. It opens a command prompt. </li>
<li>Connect to your account. <a href="https://dashboard.ngrok.com/get-started" target="_blank">Upon login</a> to ngrok website you will get an auth token which you have to use to connect to your account. command to execute "<i>ngrok authtoken <your_token_here></i>". This step will create a .yml file in your users directory.</li>
<li>Create a tunnel. Use command "<i>ngrok http 7071</i>". 7071 is the port you
want to expose. I used it because its the default port for Azure
function apps.</li>
<li>Use the url provided by the ngrok utility to hit the breakpoint on your function from the internet. </li>
</ol>
<ol style="text-align: left;">
</ol>
I hope this was easy. Please share your thoughts in the comments below.<br />
<ol style="text-align: left;">
</ol>
</div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com0tag:blogger.com,1999:blog-1847873900465561467.post-37227206377604608752019-10-23T08:31:00.002-07:002019-10-23T08:32:30.120-07:00Getting started with Azure Event Grid<div dir="ltr" style="text-align: left;" trbidi="on">
<div>
As a human being, every new thing scares us. Same was the case with me when I tried started working on Azure Event Grid. No article I was able to find that works out steps by step. The learning curve looked steep almost vertical ;)<br />
Well in this post I try to reduce those efforts for you. I will try to list out the details required to get you started with <a href="https://docs.microsoft.com/en-us/azure/event-grid?WT.mc_id=ruhelaanurag" target="_blank">Event Grid</a>.<br />
<br />
Below image is taken from Microsoft Event Grid documentation website. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2ZbM-a9TBnqtYyE1A_2jRHPSsCAp9nNx8L2Uguby3Ty9mc4iNx_FFMxbVoTLcY_ueh4wl_tLbykqBzlGNSZx2t0ebs3agVZmYqkFnWoMcnnOQfXXPEpI4gZ4oxn4Cwx5Utm-GtnEgkm4/s1600/EventGrid.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="888" data-original-width="1600" height="353" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2ZbM-a9TBnqtYyE1A_2jRHPSsCAp9nNx8L2Uguby3Ty9mc4iNx_FFMxbVoTLcY_ueh4wl_tLbykqBzlGNSZx2t0ebs3agVZmYqkFnWoMcnnOQfXXPEpI4gZ4oxn4Cwx5Utm-GtnEgkm4/s640/EventGrid.png" width="640" /></a></div>
<br />
<br />
<br />
Azure Event Grid as its mentioned everywhere, its a way to publish/subscribe your events in an easy way. If your subscriber is down It tries in a <a href="https://en.wikipedia.org/wiki/Exponential_backoff?WT_mc.id=ruhelaanurag" target="_blank">Exponential back-off</a> way to deliver the message for 24 hours.<br />
<br />
First thing you should know is '<a href="https://docs.microsoft.com/en-us/azure/event-grid/concepts#topics" target="_blank">Topic</a>'. What is a topic?<br />
Topic is an endpoint where the source sends the event. To respond to certain types of events, subscribers decide which topics to subscribe to. <br />
<br />
<br />
Event Grid provides below-mentioned event sources: (Topics are already available, you can subscribe to them easily)<br />
<ul style="text-align: left;">
<li>Azure Subscriptions</li>
<li>Container Registry</li>
<li>Custom Topics</li>
<li>Event Hubs</li>
<li>IoT Hub</li>
<li>Media Services</li>
<li>Resource Groups (management operations)</li>
<li>Service Bus</li>
<li>Storage Blob</li>
<li>Azure Maps</li>
</ul>
</div>
<br />
<br />
Below mentioned Event Handlers are supported: (You can receive the events using any of the below mechanism)<br />
<ul>
<li>Azure Automation</li>
<li>Azure Functions</li>
<li>Event Hubs</li>
<li>Hybrid Connections</li>
<li>Logic Apps</li>
<li>Microsoft Flow</li>
<li>Queue Storage</li>
<li>Service Bus (Preview)</li>
<li>WebHooks</li>
</ul>
<div>
<br />
The good thing is that you can publish an event of your own using a schema (<a href="https://docs.microsoft.com/en-us/azure/event-grid/post-to-custom-topic?WT.mc_id=ruhelaanurag" target="_blank">Custom topic</a>).
what it means in real world terms is you call an api with the data in
specified format and it will work as event generated and event grid will
push it to all the subscribers of that event.<br />
<br />
There are three types of schema available.<br />
<ul style="text-align: left;">
<li><a href="https://docs.microsoft.com/en-us/azure/event-grid/cloudevents-schema#cloudevent-schema?WT.mc_id=ruhelaanurag" target="_blank">Cloud Event Schema</a></li>
<li><a href="https://docs.microsoft.com/en-us/azure/event-grid/post-to-custom-topic#event-data?WT.mc_id=ruhelaanurag" target="_blank">Custom Event Schema</a></li>
<li><a href="https://docs.microsoft.com/en-us/azure/event-grid/event-schema#event-schema?WT.mc_id=ruhelaanurag" target="_blank">Event Grid Schema</a> </li>
</ul>
In case of inbuilt event providers you can even apply filters to the event, so you will get the event you wish to.<br />
<br />
Retry policies can be configured. You can also expire the event after certain time.<br />
<br />
Please share your thoughts in the comments below. </div>
</div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com1tag:blogger.com,1999:blog-1847873900465561467.post-38190714208613996502019-10-08T12:30:00.000-07:002019-10-23T08:32:18.671-07:00Azure functions, A server less compute<div dir="ltr" style="text-align: left;" trbidi="on">
First thing I thought about was "What does it mean when someone says its serverless?" <br />
<br />
Well I have found my answer serverless doesn't mean it will not run on server first of all. 😉 It means that you don't have to worry about the server resources and other stuff. You just pay for the time your function is executing. If your function executes for 20 seconds per day well then you mostly will pay for that. You can explore more about the pricing using the links given at the end of this post.<br />
<br />
How to get started? Usually that is the most difficult thing to do.<br />
<br />
Create a function is as simple as working on a console app. Open Visual Studio. Create new project of Azure functions type and you are done. :)<br />
<br />
Make sure you select:<br />
<ol style="text-align: left;">
<li>Http Trigger</li>
<li>Authorization: Anonymous</li>
<li>Function Runtime (2.x)</li>
<li>Storage Account (<a href="https://docs.microsoft.com/en-us/azure/storage/common/storage-use-emulator?WT.mc_id=ruhelaanurag" target="_blank">Storage Emulator</a>) <a href="https://go.microsoft.com/fwlink/?linkid=717179&clcid=0x409?WT.mc_id=ruhelaanurag" target="_blank">standalone installer</a></li>
</ol>
<br />
You are ready to go. Press F5 to run your solution, you can see a command window firing up (which has lot of <a href="https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-node#node-version?WT.mc_id=ruhelaanurag" target="_blank">node.js</a> work behind the scenes). Wait till it gives you the URL which mostly is <a href="http://localhost:7071/api/function1">http://localhost:7071/api/function1</a>if you have not done any changes in the default out of the box app.<br />
<br />
<br />
There is a pretty comprehensive <a href="https://docs.microsoft.com/en-gb/azure/azure-functions/functions-create-your-first-function-visual-studio?WT.mc_id=ruhelaanurag" target="_blank">documentation</a> available.<br />
<br />
<a href="https://azure.microsoft.com/en-us/pricing/details/functions?WT.mc_id=ruhelaanurag" target="_blank">Azure Functions pricing</a><br />
<br />
Please share your thoughts in the comments below.</div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com0tag:blogger.com,1999:blog-1847873900465561467.post-72170088136525059202019-10-02T00:29:00.002-07:002019-10-23T08:34:13.950-07:00Connect to your broadband using win32 api using RasDial<div dir="ltr" style="text-align: left;" trbidi="on">
So yesterday my router stopped working and new one will come in mail by today. Its one day that I was like without internet (not actually). I tried putting LAN directly to my laptop and connect to broadband. It worked like charm, but the only problem I am facing now is connecting and disconnecting the connection. So, as a person who knows how to <a href="https://www.google.com/search?q=ruhelaanurag" target="_blank">Google</a> I tried finding a command to connect to internet by dialing up my broadband (<a href="https://en.wikipedia.org/wiki/Point-to-Point_Protocol_over_Ethernet?WT.mc_id=ruhelaanurag" target="_blank">PPPoE connection</a>) and make it as a <a href="https://en.wikipedia.org/wiki/Batch_file?WT.mc_id=ruhelaanurag" target="_blank">batch</a>, just double click and it should work.<br />
<br />
I found a command line utility called RasDial which is (RemoteAccessService). If you have already a network connection setup in your computer. you can directly open command prompt and type <span style="background-color: white;">rasdial /? which gives you all the option to connect. If you have not done the setup yet you can <a href="https://www.digitalcitizen.life/how-setup-and-use-pppoe-internet-connections-windows-10?WT.mc_id=ruhelaanurag" target="_blank">check this link</a> and do it.</span><br />
<span style="background-color: white;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZTxpB443DALGU-cy4JyYuPdwTosvrG6FAE9SxsdhbQw8R1qVsCcPaKcAL4hnP6o_PnJoyd1RbzPVz3_Np7cwFzJ6fKnpuL41h3Jb62fOfHvlZzINIfpF50A-ESyzfbaMfMM4BYXOpj6g/s1600/rasdial_help.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="217" data-original-width="581" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZTxpB443DALGU-cy4JyYuPdwTosvrG6FAE9SxsdhbQw8R1qVsCcPaKcAL4hnP6o_PnJoyd1RbzPVz3_Np7cwFzJ6fKnpuL41h3Jb62fOfHvlZzINIfpF50A-ESyzfbaMfMM4BYXOpj6g/s1600/rasdial_help.PNG" /></a></div>
<span style="background-color: white;"><br /></span>
<span style="background-color: white;">Usage:</span><br />
<ol style="text-align: left;">
<li><span style="background-color: white;">Connection: rasdial <YourConnectionName></span></li>
<li><span style="background-color: white;">Status: rasdial</span></li>
<li><span style="background-color: white;">Disconnection: rasdial <YourConnectionName> /disconnect </span></li>
</ol>
<span style="background-color: white;">Pretty simple and straight forward. </span><span style="background-color: white;">Please share what you think about it in the comments below.</span></div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com1tag:blogger.com,1999:blog-1847873900465561467.post-87093686747509487322019-09-10T08:27:00.001-07:002019-09-10T08:27:48.915-07:00New to KQL? No problem its just like SQL<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
Well KQL is a query language used to query on Kusto, which is covered in the post <a href="https://www.anuragruhela.net/2019/09/getting-started-with-kusto.html?WT.mc_id=ruhelaanurag" target="_blank">Getting started with Kusto</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkQkD9kV5fmkq8W0wyOh2pAdYYq0l8C1R1zQKYpO5_Oqn3rv5sSaGSGRlfalwrbL8AEXmRVwYdhPCHF8WYrkzyYiOz5t9WLonRp8HfZHvayoU4tQonR9GW_RaHF4aw0Bp0VY1yd3uAwg4/s1600/KustoHierarchy.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="138" data-original-width="167" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkQkD9kV5fmkq8W0wyOh2pAdYYq0l8C1R1zQKYpO5_Oqn3rv5sSaGSGRlfalwrbL8AEXmRVwYdhPCHF8WYrkzyYiOz5t9WLonRp8HfZHvayoU4tQonR9GW_RaHF4aw0Bp0VY1yd3uAwg4/s1600/KustoHierarchy.PNG" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
One Cluster can have multiple Databases and one Database can have multiple Tables. Before going forward let us assume we have a cluster named 'cluster1' and it has database with name 'database1' and database has tables with names 'table1', 'table2', 'table3','table4', 'table5'.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
A
kusto query usually comprises of multiple operators and table or cluster name.
Unlike SQL table name is not the first thing to be written in KQL. Below is
a sample kusto equivalent of <i><u>select top 5* from table1</u></i>.</div>
<div style="text-align: justify;">
<i><u>table1 | top 5</u></i></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Since we are going to query on a big data source lets just add count or where clause to all our queries.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
List of 5 basic operators to get started:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
1. <b>Project</b>: To select the list of columns to show from the table.</div>
<div style="text-align: justify;">
example: <u><i>table2 | project col1, col2 | take 10</i></u>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
2. <b>Count</b>: To count the number of rows.</div>
<div style="text-align: justify;">
example: <u><i>table1 | count</i></u>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
3. <b>Where</b>: It is similar to where clause in SQL server. In KQL we use double equal, unlike SQL, for conditional check.</div>
<div style="text-align: justify;">
example: <u><i>table2 | where col1 = = 'anyvalue'</i></u>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
4. <b>Take</b>: It picks the number or rows mentioned. It takes rows in no specific order. It is suggested to sort the rows before using take. <b>Limit</b> can also be used for the same purpose.</div>
<div style="text-align: justify;">
example: <i><u>table1 | take 5</u></i>. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
5. <b>Sort (asc/desc)</b>: It is used for sorting the data in ascending or descending order, just like SQL.</div>
<div style="text-align: justify;">
example: <u><i>table3 | take 5 col1 asc</i></u> or <u><i>table3 | top 5 col1 desc</i></u>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
You can check out all the available operators/functions/entities at the <a href="https://docs.microsoft.com/en-us/azure/kusto/query/" target="_blank">Microsoft docs website.</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Please share your thoughts in the comments below.</div>
</div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com0tag:blogger.com,1999:blog-1847873900465561467.post-53947788814820799142019-09-02T06:11:00.000-07:002019-09-02T06:11:26.946-07:00Getting started with Kusto<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-size: small;"><b>What is kusto?</b></span><br />
<br />
Well that looks like a difficult question to answer and its not answered clearly (atleast I was not able to find any answer for it). There are many versions of it.Some says its a tool, some says its a query language, <a href="https://docs.microsoft.com/en-us/azure/kusto/concepts?WT.mc_id=ruhelaanurag" target="_blank">docs says</a> its a service. Lets, go with the docs version. Its a service to query over Big Data. <br />
<blockquote class="tr_bq">
<span class="TextRun Highlight SCXO104222999 BCX2" data-contrast="none" lang="EN-US" style="background-color: white; color: black; font-family: Segoe UI, Segoe UI_MSFontService, sans-serif; font-size: 12pt; font-style: normal; font-weight: normal; line-height: 19px;"><span class="NormalTextRun SCXO104222999 BCX2" style="background-color: inherit;">"It
is based on relational database management systems, supporting entities
such as databases, tables, and columns, as well as providing complex
analytics query operators (such as calculated columns, searching and
filtering or rows, group by-aggregates, joins)."</span></span> </blockquote>
<br />
<br />
<span style="font-size: small;"><b>What is KQL?</b></span><br />
<span style="font-size: small;"><b> </b></span><br />
KQL is acronym for Kusto Query Language, which can be used to query Azure Application Insight data. There is an open data source available online to query, it can be located at <a href="https://portal.loganalytics.io/demo" target="_blank">LogAnlytics</a>. <br />
<br />
<br />
<br />
<b>How to Query?</b><br />
<br />
Well to query you first need to learn the basics of KQL but dont worry if you already have worked with SQL or know about T/SQL, its easy to use. The syntax is little similar but there are few new keywords which might need to learn. New way of querying, it feels like mixture of SQL and Powershell to me. All the keywords are separated with Pipes '|' and output from the first query is input to the next one.<br />
<blockquote class="tr_bq">
<div class="OutlineElement Ltr SCXO249923368 BCX2" style="direction: ltr; margin-left: 0px;">
<div class="Paragraph SCXO249923368 BCX2" lang="EN-US" style="background-color: transparent; color: windowtext; font-style: normal; font-weight: normal; text-align: left; vertical-align: baseline;">
<span class="TextRun Highlight SCXO249923368 BCX2" data-contrast="none" lang="EN-US" style="background-color: white; color: black; font-family: Segoe UI, Segoe UI_MSFontService, sans-serif; font-size: 12pt; font-style: normal; font-weight: normal; line-height: 19px;"><span class="NormalTextRun SCXO249923368 BCX2" style="background-color: inherit;">"A
Kusto query is a read-only request to process Kusto data and return the
results of this processing, without modifying the Kusto data or
metadata. Kusto queries can use the </span></span><a class="Hyperlink SCXO249923368 BCX2" href="https://docs.microsoft.com/en-us/azure/kusto/api/tds/t-sql" rel="noreferrer" target="_blank"><span class="TextRun Highlight Underlined SCXO249923368 BCX2" data-contrast="auto" lang="EN-US" style="background-color: white; font-family: Segoe UI, Segoe UI_MSFontService, sans-serif; font-size: 12pt; font-style: normal; font-weight: normal; line-height: 19px; text-decoration: underline;"><span class="NormalTextRun SCXO249923368 BCX2" style="background-color: inherit;">SQL language</span></span></a><span class="TextRun Highlight SCXO249923368 BCX2" data-contrast="none" lang="EN-US" style="background-color: white; color: black; font-family: Segoe UI, Segoe UI_MSFontService, sans-serif; font-size: 12pt; font-style: normal; font-weight: normal; line-height: 19px;"><span class="NormalTextRun SCXO249923368 BCX2" style="background-color: inherit;">, or the </span></span><a class="Hyperlink SCXO249923368 BCX2" href="https://docs.microsoft.com/en-us/azure/kusto/query/index" rel="noreferrer" target="_blank"><span class="TextRun Highlight Underlined SCXO249923368 BCX2" data-contrast="auto" lang="EN-US" style="background-color: white; font-family: Segoe UI, Segoe UI_MSFontService, sans-serif; font-size: 12pt; font-style: normal; font-weight: normal; line-height: 19px; text-decoration: underline;"><span class="NormalTextRun SCXO249923368 BCX2" style="background-color: inherit;">Kusto query language</span></span></a><span class="TextRun Highlight SCXO249923368 BCX2" data-contrast="none" lang="EN-US" style="background-color: white; color: black; font-family: Segoe UI, Segoe UI_MSFontService, sans-serif; font-size: 12pt; font-style: normal; font-weight: normal; line-height: 19px;"><span class="NormalTextRun SCXO249923368 BCX2" style="background-color: inherit;">.</span></span><span class="EOP SCXO249923368 BCX2" style="font-family: Segoe UI, Segoe UI_MSFontService, sans-serif; font-size: 12pt; line-height: 19px;">"</span></div>
</div>
</blockquote>
<b>Where to write Query?</b><br />
<br />
The next part is where can you write the query? Well kusto provides many ways/channels to query the data. All of them are mentioned below. Please select the one that suits your requirement. 😊<br />
As I have mentioned in the article before about LogAnalytics. You can use a web UI to query or you can download <a href="https://docs.microsoft.com/en-us/azure/kusto/tools/kusto-explorer?WT.mc_id=ruhelaanurag" target="_blank">Query Explorer</a>. Well you can query over the application insight of your azure subscription also.<br />
<br />
There are client libraries available in few languages, There is also an option to connect via <a href="https://docs.microsoft.com/en-us/azure/kusto/api/rest?WT.mc_id=ruhelaanurag" target="_blank">Rest API</a>, Client SDK's and KustoExplorer is an available native tool. <br /><br /> <a href="https://docs.microsoft.com/en-us/azure/kusto/api/netfx/about-the-sdk?WT.mc_id=ruhelaanurag" target="_blank">.NET SDK</a> <br /> <a href="https://docs.microsoft.com/en-us/azure/kusto/api/python/kusto-python-client-library?WT.mc_id=ruhelaanurag" target="_blank">Python SDK</a> <br /> <a href="https://docs.microsoft.com/en-us/azure/kusto/api/java/kusto-java-client-library?WT.mc_id=ruhelaanurag" target="_blank">Java SDK</a> <br /> <a href="https://docs.microsoft.com/en-us/azure/kusto/api/node/kusto-node-client-library?WT.mc_id=ruhelaanurag" target="_blank">Node SDK</a> <br /> <a href="https://docs.microsoft.com/en-us/azure/kusto/api/powershell/powershell?WT.mc_id=ruhelaanurag" target="_blank">PowerShell</a> <br /> <a href="https://docs.microsoft.com/en-us/azure/kusto/api/r/kusto-r-client-library?WT.mc_id=ruhelaanurag" target="_blank">R</a> <br />
<br />
The content for Kusto can be found under names of Azure Data Explorer, Azure Log Analytics etc.<br />
Please share your thoughts in the comments below.</div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com0tag:blogger.com,1999:blog-1847873900465561467.post-65631505575512137692019-05-01T12:36:00.000-07:002019-05-01T12:36:18.575-07:00Microsoft is using Kestrel in Production for the new ASP.NET website<div dir="ltr" style="text-align: left;" trbidi="on">
I could not help but noticed asp.net is now redirecting to a <a href="https://dotnet.microsoft.com/apps/aspnet" target="_blank">new website</a> which is a <a href="https://en.wikipedia.org/wiki/Subdomain" target="_blank">sub-domain</a> of <a href="http://microsoft.com/">Microsoft.com</a>, so I got interested to check how many redirects actually happens when I type asp.net in browser. This is what I found out.<br />
<br />
So as its shown in the image below there are 3 redirects post which the new website opens up.<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmo50qIGxU_eNBEm3VKIEWZxfmx5ZrvlaPy1tlAt5qJKkLQq_rcbSlXHI7vguMkM_y6_D5I5ttI7mN0ApjJs4v89PamZJioaDQLHvu8x0lYCw1QwLMPo4GUGj70SGjvZHucSNyo5gqDSg/s1600/final_Redirects.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-left: 1em;"></a></div>
<div>
<br />
<div>
<img border="0" data-original-height="677" data-original-width="700" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmo50qIGxU_eNBEm3VKIEWZxfmx5ZrvlaPy1tlAt5qJKkLQq_rcbSlXHI7vguMkM_y6_D5I5ttI7mN0ApjJs4v89PamZJioaDQLHvu8x0lYCw1QwLMPo4GUGj70SGjvZHucSNyo5gqDSg/s1600/final_Redirects.png" width="725" /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
</div>
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmo50qIGxU_eNBEm3VKIEWZxfmx5ZrvlaPy1tlAt5qJKkLQq_rcbSlXHI7vguMkM_y6_D5I5ttI7mN0ApjJs4v89PamZJioaDQLHvu8x0lYCw1QwLMPo4GUGj70SGjvZHucSNyo5gqDSg/s1600/final_Redirects.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-left: 1em;"><br /></a></div>
<br />
<ol>
<li>http://asp.net</li>
<li><div style="text-align: left;">
https://asp.net</div>
</li>
<li><div style="text-align: left;">
https://www.asp.net</div>
</li>
</ol>
<div style="text-align: left;">
<br /></div>
<div>
All of these are <a href="https://en.wikipedia.org/wiki/HTTP_301" target="_blank">301/Moved Permanently</a>.</div>
<div>
<br /></div>
<div>
Another interesting thing I noticed is the server used is not IIS which was used before. Its Kestrel this time. Its the same server which <a href="https://twitter.com/davidfowl" target="_blank">David Folwer</a> (who is also an awesome speaker) and <a href="https://twitter.com/DamianEdwards" target="_blank">Damian Edwards</a> (used to pairs up nicely with <a href="https://twitter.com/shanselman" target="_blank">Scott Hanselman</a> on standup) mentioned a lot of time during <a href="https://live.asp.net/" target="_blank">ASP.NET community stand up</a>.</div>
<div>
<br /></div>
<div>
The server is developed by the Asp.net team for .net core I believe and the new website runs on same.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRfjeraojJylT1uEnxjZLHKqzqJOGzCVmJfWIM-cCg1GyZyjlLDgndcSCT73MWVJ4Ac4jqG9JOdF67OnXcMzIcbfVRH68VcVT_JTWSH25uaYOch0XQK5fRniV5cQA1BnfE3rierLeEC2w/s1600/final_kestrel.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="665" data-original-width="1365" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRfjeraojJylT1uEnxjZLHKqzqJOGzCVmJfWIM-cCg1GyZyjlLDgndcSCT73MWVJ4Ac4jqG9JOdF67OnXcMzIcbfVRH68VcVT_JTWSH25uaYOch0XQK5fRniV5cQA1BnfE3rierLeEC2w/s1600/final_kestrel.png" width="725" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
</div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com0tag:blogger.com,1999:blog-1847873900465561467.post-37615539424947685862019-05-01T09:17:00.001-07:002019-05-01T09:17:47.767-07:00Serialization.<div dir="ltr" style="text-align: left;" trbidi="on">
Serialization.<br />
<br />
It used to be a very important concept but looks like everything is taken care of nowadays by the framework. Still, I feel the need to mention the same as I found a lack of resources/ blog to guide about the process. what it means, how to do it etc.<br />
<br />
what is serialization?<br />
<br />
As per <a href="https://en.wikipedia.org/wiki/Serialization" target="_blank">Wikipedia</a>,<br />
<br />
<blockquote class="tr_bq">
<b style="background-color: white; color: #222222; font-family: sans-serif; font-size: 14px;">serialization</b><span style="background-color: white; color: #222222; font-family: sans-serif; font-size: 14px;"> (or serialisation) is the process of translating </span><a href="https://en.wikipedia.org/wiki/Data_structure" style="background: none rgb(255, 255, 255); color: #0b0080; font-family: sans-serif; font-size: 14px; text-decoration-line: none;" title="Data structure">data structures</a><span style="background-color: white; color: #222222; font-family: sans-serif; font-size: 14px;"> or </span><a href="https://en.wikipedia.org/wiki/Object_(computer_science)" style="background: none rgb(255, 255, 255); color: #0b0080; font-family: sans-serif; font-size: 14px; text-decoration-line: none;" title="Object (computer science)">object</a><span style="background-color: white; color: #222222; font-family: sans-serif; font-size: 14px;"> state into a format that can be stored.</span></blockquote>
<br />
Serialization we do in usually is to convert our code to JSON/XML or converting JSON/XML code back to object. There is an awesome library available for handling JSON which is <a href="https://www.newtonsoft.com/json" target="_blank">Json.Net</a>. It is written by a guy named <a href="https://twitter.com/JamesNK" target="_blank">James Newton King</a> who is from New Zealand and currently working at Microsoft on asp.net team.<br />
<br />
I have planned a few post on same topic, out of which all deals with either converting your XML to the object of your choice or the object to the XML.<br />
<br />
<a href="https://en.wikipedia.org/wiki/C_Sharp_(programming_language)" target="_blank">C#</a> provides extensive support to <a href="https://docs.microsoft.com/en-us/dotnet/api/system.xml?view=netframework-4.7.2" target="_blank">XML</a>, under the namespce System.Xml. More about the namespace can be explored at <a href="https://apisof.net/catalog/System.Xml" target="_blank">apisof.net</a>. </div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com0tag:blogger.com,1999:blog-1847873900465561467.post-73734104667336599362019-04-24T11:29:00.000-07:002019-05-01T09:04:02.362-07:00Build Habits which you want to continue as Lifestyle!<div dir="ltr" style="text-align: left;" trbidi="on">
Today if you check any <a href="https://en.wikipedia.org/wiki/List_of_social_networking_websites" target="_blank">social networking site</a> (<a href="http://www.facebook.com/" target="_blank">Facebook</a>, <a href="http://www.instagram.com/" target="_blank">Instagram</a>, etc.) there are tons of accounts which pretend to be something which they are not, and most of us gets fooled by their appearance and want to start doing some thing these people are doing for example starting a morning routine. A morning routing is a thing which a person do once after he wakes up and that time of the morning usually qualifies as the 'Self time' because there is no disturbance at that time of any kind, If you manage to wake up at 5AM then there are good chances that your neighbourhood will be asleep and you can work on something which is important to you and you like to get finished. There are lots of such videos out there which make you follow such routines and habits but the only thing is they don't last longer. The problem I see with this approach is 'Anything which doesn't comes from within you, will not be able to mould you'.<br />
<br />
The Habits as I mentioned in the title, should be chosen wisely. Simply picking up a habit that doesn't even align with your work schedule or the goal which you have is not going to help you in any manner. you should think twice or even few more times if you feel its required before picking any habit as they have a negative impact on you when you don't follow through.<br />
<br />
The habit should be chosen with all the awareness that you want to really change that aspect of your life to something better. There is a nice book by Author named <a href="https://charlesduhigg.com/" target="_blank">Charles Duhigg</a> Book is "<a href="https://www.amazon.com/Power-Habit-What-Life-Business/dp/081298160X/" target="_blank">The Power of Habit</a>". If you really feel you have to changes something I suggest you to read that book.<br />
<br />
Any habit worked upon seriously for a long duration throughout lifetime becomes a lifestyle. A few examples are:<br />
<ul>
<li>A habit of brushing your teeth at night daily in a long run is a lifestyle you live by.</li>
<li>Waking up early to spend some time peacefully with your self is a lifestyle.</li>
<li>Reading daily before going to bed is a good habit or a lifestyle if pursued for long time.</li>
<li>Eating healthy food is a good habit but a proud lifestyle when you say I have not eaten any shit food in last 5 years.</li>
<li>Walking 10k steps everyday.</li>
<li>Going to gym 4-5-6 days a week is a habit and a lifestyle to follow. </li>
<li>Writing a Journal.</li>
</ul>
<div>
what kind of <strike>habit</strike> lifestyle do you care to build?</div>
</div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com0tag:blogger.com,1999:blog-1847873900465561467.post-92028597082658962842019-04-02T11:15:00.000-07:002019-05-01T09:03:47.201-07:00Scheduling meetings like a Pro!<div dir="ltr" style="text-align: left;" trbidi="on">
It is a Sunday evening and a meeting reminder pops up on your mobile screen. It's damn annoying, but I have seen people doing it all the time. They schedule a recurring meeting without considering your weekend and that makes me go crazy. It's my day off, that meeting reminder popping on my mobile screen is the last thing I want to see.<br />
<br />
This post is dedicated to those dummies who have certainly got promoted because of their hair greying but don't for sure know how to schedule a meeting.<br />
<br />
<blockquote class="tr_bq">
<span style="font-size: large;">For Office 365.</span></blockquote>
<br />
click 'New' on top left corner -> Calendar Event.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTE1J_fAClnl3yQcVnH932gsF5gQrP9E_iuSnzELBsDRfDPONSe6M0YNTAd5wcYHZUC2KAAumKHzpOdG-X9KKbXnXxkyTnfa9ovh1bi6Vr-M_ZMBnHawDNie7gcwDdXLNTx4Qswi0Mr3c/s1600/CalendarEvent.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="225" data-original-width="671" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTE1J_fAClnl3yQcVnH932gsF5gQrP9E_iuSnzELBsDRfDPONSe6M0YNTAd5wcYHZUC2KAAumKHzpOdG-X9KKbXnXxkyTnfa9ovh1bi6Vr-M_ZMBnHawDNie7gcwDdXLNTx4Qswi0Mr3c/s1600/CalendarEvent.png" /></a></div>
<br />
<br />
<br />
2. Fill in all the details you need. (Location, Title etc)<br />
<div>
The title should be meaningful, something like 'Let's meet' doesn't make any sense if you are sending that invite to 5-10-20 people in your organisation. It has to make sense. Remember to cross-check your spelling because it is going to be there in the calendar for some time. You don't want to be wrong in that.<br />
while adding people make sure you want them as an optional attendee or required one. Scheduling assistant can help you in determining whether the person you are inviting is available at that time.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgWCdud2TU0AAhYb2OFznlbryrJ2MIOFxuC2v2BXnia3pC_c8Kyf-tCQfWtpFst1_VdbOvg9cawF9lMEmXAcDkMTZYgyhq3QgXgM9KhKJ0FWVj7EytwbjtLNLreW1HN1_N5wIaNFhs0Oc/s1600/Optional.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="232" data-original-width="675" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgWCdud2TU0AAhYb2OFznlbryrJ2MIOFxuC2v2BXnia3pC_c8Kyf-tCQfWtpFst1_VdbOvg9cawF9lMEmXAcDkMTZYgyhq3QgXgM9KhKJ0FWVj7EytwbjtLNLreW1HN1_N5wIaNFhs0Oc/s1600/Optional.png" width="675" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQe2F8oevGHFtr3UXPxDQ3u2uOi2uA8USqYBEJDiFOHL3RSZD8mt2Rewh0C3l0J-TpqSv_03wtmKJiZnwNbpyoZfjJEM8Mk_UHroYKB-V-TLvXBTRfotHgee88SjA43ndg7DJ4pPg_5Wc/s1600/assistant2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="201" data-original-width="687" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQe2F8oevGHFtr3UXPxDQ3u2uOi2uA8USqYBEJDiFOHL3RSZD8mt2Rewh0C3l0J-TpqSv_03wtmKJiZnwNbpyoZfjJEM8Mk_UHroYKB-V-TLvXBTRfotHgee88SjA43ndg7DJ4pPg_5Wc/s1600/assistant2.png" /></a></div>
<br />
<br />
<br />
<br />
<br />
Now the most important thing, making a meeting recurring without disturbing people at their weekend.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXRKVdC9jPsAFtTFD2l0jUmXKdbc4mN1iUZs6WusT8J39b3CCyxv0__XRoTywE5fIA9t3XksafBl_RjNcJ_dD5HcV8GptM5R1XyNIkLkT_1hRNRoZsvOiIXsA30zOuLTnLHpEWTU2DbnI/s1600/Repeat.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="487" data-original-width="670" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXRKVdC9jPsAFtTFD2l0jUmXKdbc4mN1iUZs6WusT8J39b3CCyxv0__XRoTywE5fIA9t3XksafBl_RjNcJ_dD5HcV8GptM5R1XyNIkLkT_1hRNRoZsvOiIXsA30zOuLTnLHpEWTU2DbnI/s1600/Repeat.png" /></a></div>
<br />
<br />
<br />
You can select 'Every workday' or select 'Other' from the dropdown if you want the meeting to occur on a specific day.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoWpDxZN1fs0pDGCGeDuWGGTykkAjJML0lTZWasQlUM7s2jZbEieqpcpFyjKOuhgtJ4zXYUgH88VgKirSbHwULUKa8yiRKiUBvNGMoWWTKox907LAizJxEvGotBJdNHMK9zQeOBStNZno/s1600/selectDays.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="417" data-original-width="731" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoWpDxZN1fs0pDGCGeDuWGGTykkAjJML0lTZWasQlUM7s2jZbEieqpcpFyjKOuhgtJ4zXYUgH88VgKirSbHwULUKa8yiRKiUBvNGMoWWTKox907LAizJxEvGotBJdNHMK9zQeOBStNZno/s1600/selectDays.png" /></a></div>
<br />
<br />
<br />
<br />
<blockquote class="tr_bq">
<span style="font-size: large;">For MS Outlook.</span></blockquote>
<br />
Goto Home -> Meeting. (Opens a popup dialogue)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOLYkM-TAoNRFzacvXrFRG3a7wZWtxxN95nSTgdz9dxpi5vwZdlrDcRyev9vsRJZ5nSo3k3W1h5bR-8uI0VJP7E18HkMYSvZItbPkj5AnEb1r5EfeaAxE9j9A65Lk1EBvY90QE5LkDp_M/s1600/step1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="246" data-original-width="675" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOLYkM-TAoNRFzacvXrFRG3a7wZWtxxN95nSTgdz9dxpi5vwZdlrDcRyev9vsRJZ5nSo3k3W1h5bR-8uI0VJP7E18HkMYSvZItbPkj5AnEb1r5EfeaAxE9j9A65Lk1EBvY90QE5LkDp_M/s1600/step1.png" width="675" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2cQWn4rVsdJgB6v4Zue-SoBzfQDX0rPTr4sZXHtXOXg-VERujsxBtUAd33aK9mS9Hk7XEkLwDqkmXjc6TIDA7gMtqwV4pxuA_LoHVkkVkpv8KN6viqDcPWAC_Pd-2QrDTom2-4CZLDDI/s1600/step2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="338" data-original-width="675" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2cQWn4rVsdJgB6v4Zue-SoBzfQDX0rPTr4sZXHtXOXg-VERujsxBtUAd33aK9mS9Hk7XEkLwDqkmXjc6TIDA7gMtqwV4pxuA_LoHVkkVkpv8KN6viqDcPWAC_Pd-2QrDTom2-4CZLDDI/s1600/step2.png" width="675" /></a></div>
<br />
Clicking on Appointment in the Meeting popup will open one more popup to help you schedule the appointment.<br />
<br />
Recurring appointment - Daily.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9YZeaxH0G9223nlv1sDGJWd1KBWd6eIyCQlx-49gusI4PUJ7LdrIhX6f6IXz-2xrHGO1u2la2PXZbZE_9DNHoyOFXPvSERfqLEnEW7HDSoXJzzhH7V9XNSzvPN3YTPOXHOxFxjuNWIzU/s1600/Recurrance_Daily.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="504" data-original-width="704" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9YZeaxH0G9223nlv1sDGJWd1KBWd6eIyCQlx-49gusI4PUJ7LdrIhX6f6IXz-2xrHGO1u2la2PXZbZE_9DNHoyOFXPvSERfqLEnEW7HDSoXJzzhH7V9XNSzvPN3YTPOXHOxFxjuNWIzU/s1600/Recurrance_Daily.png" /></a></div>
<br />
<br />
Recurring Appointment - Weekly. It provides you with the option to select your weekdays.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyKuBVq_PF-I8Mx8kk_JbjDcyeTx7GEPJAOqVQgaH94skX0t2IDnVjIYZ3aVyyGYXaO0lkOjviduZIiLY0dTPLy9q04LJEvQRxmsc4EeFHIXHMee-IudTUY_oycqWbgVfzSN_UTvky8IQ/s1600/Recurrance_Weekly.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="502" data-original-width="697" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyKuBVq_PF-I8Mx8kk_JbjDcyeTx7GEPJAOqVQgaH94skX0t2IDnVjIYZ3aVyyGYXaO0lkOjviduZIiLY0dTPLy9q04LJEvQRxmsc4EeFHIXHMee-IudTUY_oycqWbgVfzSN_UTvky8IQ/s1600/Recurrance_Weekly.png" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Which Software/Application/Platform do you use to schedule meetings?</div>
</div>
</div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com0tag:blogger.com,1999:blog-1847873900465561467.post-87976803606577042452018-07-05T11:28:00.000-07:002018-07-05T11:41:48.906-07:00.NET Standard: What it is and how to use<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="OutlineElement Ltr SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: white; clear: both; cursor: text; direction: ltr; margin: 0px; overflow: visible; padding: 0px; position: relative; user-select: text;">
<div class="Paragraph SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
</div>
<div class="Paragraph SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br />
<span class="TextRun SCXO141899094" lang="EN-US" style="background-color: transparent; font-family: "verdana" , sans-serif; line-height: 18px; margin: 0px; padding: 0px;" xml:lang="EN-US"><b><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;">What really is dot net </span><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;">standard?</span></b><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;"> </span></span><span class="EOP SCXO141899094" style="background-color: transparent; font-family: "verdana" , sans-serif; line-height: 18px; margin: 0px; padding: 0px;"> </span></div>
</div>
<div class="OutlineElement Ltr SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: white; clear: both; cursor: text; direction: ltr; font-size: 12px; margin: 0px; overflow: visible; padding: 0px; position: relative; user-select: text;">
<div class="Paragraph SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="font-family: "verdana" , sans-serif;"><span class="TextRun SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; color: windowtext; font-size: 11pt; font-variant-ligatures: none !important; line-height: 18px; margin: 0px; padding: 0px; user-select: text;" xml:lang="EN-US"><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;"><br /></span></span></span></div>
<div class="Paragraph SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="font-family: "verdana" , sans-serif;"><span class="TextRun SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; color: windowtext; font-size: 11pt; font-variant-ligatures: none !important; line-height: 18px; margin: 0px; padding: 0px; user-select: text;" xml:lang="EN-US"><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;">Let me try to put it in simple words. We used to use different BCL's for different frameworks and remembering it is a tough job. So Microsoft once again has come up with a solution to help developers to put a little less load on </span><span class="SpellingError SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; background-image: url("data:image/gif; background-position: left bottom; background-repeat: repeat-x; border-bottom: 1px solid transparent; margin: 0px; padding: 0px; user-select: text;">on</span><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;"> the brain to remember the </span><span class="SpellingError SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; background-image: url("data:image/gif; background-position: left bottom; background-repeat: repeat-x; border-bottom: 1px solid transparent; margin: 0px; padding: 0px; user-select: text;">API's</span><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;">. They have replaced all the BCL's with </span><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;">a common one which they are calling as </span><span class="SpellingError SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; background-image: url("data:image/gif; background-position: left bottom; background-repeat: repeat-x; border-bottom: 1px solid transparent; margin: 0px; padding: 0px; user-select: text;">.net</span><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;"> Standard.</span></span><span class="EOP SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; font-size: 11pt; line-height: 18px; margin: 0px; padding: 0px; user-select: text;"> </span></span></div>
</div>
<div class="OutlineElement Ltr SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: white; clear: both; cursor: text; direction: ltr; font-size: 12px; margin: 0px; overflow: visible; padding: 0px; position: relative; user-select: text;">
<div class="Paragraph SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="font-family: "verdana" , sans-serif;"><span class="EOP SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; font-size: 11pt; line-height: 18px; margin: 0px; padding: 0px; user-select: text;"><br /></span></span></div>
<div class="Paragraph SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span class="TextRun SCXO141899094" lang="EN-US" style="font-family: "verdana" , sans-serif; font-size: 10.5pt; line-height: 17px; margin: 0px; padding: 0px;" xml:lang="EN-US"><span class="SpellingError SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; background-image: url("data:image/gif; background-position: left bottom; background-repeat: repeat-x; border-bottom: 1px solid transparent; margin: 0px; padding: 0px; user-select: text;">.Net</span><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;"> Standard 2.0 has around 32,000 API's. You can download the list from <a href="https://drive.google.com/open?id=1AzflS3EPuz4Ini9GsAkG7CU6P1AkFJec" target="_blank">here</a> or you can check it here at <a href="https://github.com/dotnet/standard/blob/master/docs/versions/netstandard2.0_ref.md?raw=true" target="_blank">GitHub</a>.</span></span></div>
<div class="Paragraph SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
</div>
<div class="OutlineElement Ltr SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: white; clear: both; cursor: text; direction: ltr; font-size: 12px; margin: 0px; overflow: visible; padding: 0px; position: relative; user-select: text;">
<div class="Paragraph SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="font-family: "verdana" , sans-serif;"><span class="TextRun SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; font-size: 10.5pt; font-variant-ligatures: none !important; line-height: 17px; margin: 0px; padding: 0px; user-select: text;" xml:lang="EN-US"><span class="SpellingError SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; background-image: url("data:image/gif; background-position: left bottom; background-repeat: repeat-x; border-bottom: 1px solid transparent; margin: 0px; padding: 0px; user-select: text;">.Net</span><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;"> Standard<b> </b></span></span><span class="TextRun SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; font-size: 10.5pt; font-variant-ligatures: none !important; line-height: 17px; margin: 0px; padding: 0px; user-select: text;" xml:lang="EN-US">replaces Portable Class Libraries (PCLs) as the tool for building .NET libraries that work everywhere</span><span class="EOP SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; font-size: 10.5pt; line-height: 17px; margin: 0px; padding: 0px; user-select: text;"> </span></span></div>
</div>
<div class="OutlineElement Ltr SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: white; clear: both; cursor: text; direction: ltr; font-size: 12px; margin: 0px; overflow: visible; padding: 0px; position: relative; user-select: text;">
<div class="Paragraph SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.blogger.com/blogger.g?blogID=1847873900465561467" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.blogger.com/blogger.g?blogID=1847873900465561467" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<a href="https://www.blogger.com/blogger.g?blogID=1847873900465561467" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=1847873900465561467" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><br /></div>
</div>
<div class="OutlineElement Ltr SCXO141899094" style="background-color: white; clear: both; cursor: text; direction: ltr; margin: 0px; overflow: visible; padding: 0px; position: relative;">
<div class="Paragraph SCXO141899094" lang="EN-US" style="background-color: transparent; font-size: 12px; padding: 0px; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="Paragraph SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span class="TextRun SCXO141899094" lang="EN-US" style="background-color: transparent; color: #454545; font-family: "verdana" , sans-serif; font-weight: bold; line-height: 17px; margin: 0px; padding: 0px;" xml:lang="EN-US">How to use it?</span><span class="EOP SCXO141899094" style="background-color: transparent; font-family: "verdana" , sans-serif; font-size: 10.5pt; line-height: 17px; margin: 0px; padding: 0px;"> </span></div>
</div>
<div class="OutlineElement Ltr SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: white; clear: both; cursor: text; direction: ltr; font-size: 12px; margin: 0px; overflow: visible; padding: 0px; position: relative; user-select: text;">
<div class="Paragraph SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<a href="https://www.blogger.com/blogger.g?blogID=1847873900465561467" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=1847873900465561467" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><span style="font-family: "verdana" , sans-serif;"><span class="EOP SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; font-size: 10.5pt; line-height: 17px; margin: 0px; padding: 0px; user-select: text;"><br /></span></span></div>
</div>
<div class="OutlineElement Ltr SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: white; clear: both; cursor: text; direction: ltr; font-size: 12px; margin: 0px; overflow: visible; padding: 0px; position: relative; user-select: text;">
<div class="Paragraph SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="font-family: "verdana" , sans-serif;"><span class="TextRun SCXO141899094" lang="EN-US" style="color: #454545; font-size: 10.5pt; line-height: 17px; margin: 0px; padding: 0px;" xml:lang="EN-US"><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;">If you have </span><span class="SpellingError SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; background-image: url("data:image/gif; background-position: left bottom; background-repeat: repeat-x; border-bottom: 1px solid transparent; margin: 0px; padding: 0px; user-select: text;">.net</span><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;"> core installed on your </span><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;">machine you can start working on </span><span class="SpellingError SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; background-image: url("data:image/gif; background-position: left bottom; background-repeat: repeat-x; border-bottom: 1px solid transparent; margin: 0px; padding: 0px; user-select: text;">.net</span><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;"> Standard just by creating a Class Library. </span></span></span><span class="TextRun SCXO141899094" lang="EN-US" style="background-color: transparent; color: #454545; font-family: "verdana" , sans-serif; font-size: 10.5pt; line-height: 17px; margin: 0px; padding: 0px;" xml:lang="EN-US"><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;">Yes, the old Class library is now Class </span><span class="SpellingError SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; background-image: url("data:image/gif; background-position: left bottom; background-repeat: repeat-x; border-bottom: 1px solid transparent; margin: 0px; padding: 0px; user-select: text;">Library</span><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;"> for </span><span class="SpellingError SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; background-image: url("data:image/gif; background-position: left bottom; background-repeat: repeat-x; border-bottom: 1px solid transparent; margin: 0px; padding: 0px; user-select: text;">.net</span><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;"> standard.</span></span><span class="EOP SCXO141899094" style="background-color: transparent; font-family: "verdana" , sans-serif; font-size: 10.5pt; line-height: 17px; margin: 0px; padding: 0px;"> </span></div>
<div class="Paragraph SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
</div>
</div>
<div class="OutlineElement Ltr SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: white; clear: both; cursor: text; direction: ltr; font-size: 12px; margin: 0px; overflow: visible; padding: 0px; position: relative; user-select: text;">
<div class="Paragraph SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="font-family: "verdana" , sans-serif;"><span class="TextRun SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; color: windowtext; font-size: 11pt; font-variant-ligatures: none !important; line-height: 18px; margin: 0px; padding: 0px; user-select: text;" xml:lang="EN-US"><br /></span></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRPWJG-X1t-AVf4mCJnYxp4Bb1L7DcxkX2esbf4RxRcfmD502LaSiy05_ZhQPPVDlucFw2uVtIeBXhsbi-Cmy4tenxMuuGBLHLCWWrRpiecA-SCPPodYw6EqTVNOUwjmIgOcTjZofIJh8/s1600/net-standard-introduction-6-638.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="359" data-original-width="638" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRPWJG-X1t-AVf4mCJnYxp4Bb1L7DcxkX2esbf4RxRcfmD502LaSiy05_ZhQPPVDlucFw2uVtIeBXhsbi-Cmy4tenxMuuGBLHLCWWrRpiecA-SCPPodYw6EqTVNOUwjmIgOcTjZofIJh8/s1600/net-standard-introduction-6-638.jpg" /></a></div>
<span style="font-family: "verdana" , sans-serif;"><span class="TextRun SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; color: windowtext; font-size: 11pt; font-variant-ligatures: none !important; line-height: 18px; margin: 0px; padding: 0px; user-select: text;" xml:lang="EN-US"><br /></span></span> <span style="font-family: "verdana" , sans-serif;"><span class="TextRun SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; color: windowtext; font-size: 11pt; font-variant-ligatures: none !important; line-height: 18px; margin: 0px; padding: 0px; user-select: text;" xml:lang="EN-US"><br /></span></span> <span style="font-family: "verdana" , sans-serif;"><span class="TextRun SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; color: windowtext; font-size: 11pt; font-variant-ligatures: none !important; line-height: 18px; margin: 0px; padding: 0px; user-select: text;" xml:lang="EN-US"><br /></span></span> <span style="font-family: "verdana" , sans-serif;"><span class="TextRun SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; color: windowtext; font-size: 11pt; font-variant-ligatures: none !important; line-height: 18px; margin: 0px; padding: 0px; user-select: text;" xml:lang="EN-US">For those who understand pictures better or would like to read less.</span><span class="EOP SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; font-size: 11pt; line-height: 18px; margin: 0px; padding: 0px; user-select: text;"> </span></span></div>
<div class="Paragraph SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
</div>
</div>
<div class="OutlineElement Ltr SCXO141899094" style="background-color: white; clear: both; cursor: text; direction: ltr; margin: 0px; overflow: visible; padding: 0px; position: relative;">
<div class="Paragraph SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<div class="separator" style="clear: both; font-size: 12px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXp4Fnd1BHThSWHm6iO8FJSZQn6vG6_fF3Gh0tkFm5Rsb3GrRsLy2PQK88inIuNzX-YEf_aOUQQ2NusojpUmTrrW_fZGslisr5FlteNRVuQe3q07K3p4xfAsTzD24EgVqAXOthv2nBuSw/s1600/net-standard-introduction-2-638.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="359" data-original-width="638" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXp4Fnd1BHThSWHm6iO8FJSZQn6vG6_fF3Gh0tkFm5Rsb3GrRsLy2PQK88inIuNzX-YEf_aOUQQ2NusojpUmTrrW_fZGslisr5FlteNRVuQe3q07K3p4xfAsTzD24EgVqAXOthv2nBuSw/s1600/net-standard-introduction-2-638.jpg" /></a></div>
<div style="font-size: 12px;">
<br /></div>
<div class="separator" style="clear: both; font-size: 12px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3cStF2MFYNu6Yq6FmPJ4v2G-rqIc1NAp40zTPfiAfyG6SvTzhTY7jYI82HdMZMVttOeR9Mr1LyDyEZq_BZvJXZ3kV82hDapqDhSJ5Qk6wdgbmfm3-HzrPQM2JkcL5iDVH1uviJfjGzBA/s1600/net-standard-introduction-4-638.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="359" data-original-width="638" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3cStF2MFYNu6Yq6FmPJ4v2G-rqIc1NAp40zTPfiAfyG6SvTzhTY7jYI82HdMZMVttOeR9Mr1LyDyEZq_BZvJXZ3kV82hDapqDhSJ5Qk6wdgbmfm3-HzrPQM2JkcL5iDVH1uviJfjGzBA/s1600/net-standard-introduction-4-638.jpg" /></a></div>
<div style="font-size: 12px;">
<span style="font-family: "verdana" , sans-serif;"><span class="TextRun SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; color: windowtext; font-size: 11pt; font-variant-ligatures: none !important; line-height: 18px; margin: 0px; padding: 0px; user-select: text;" xml:lang="EN-US"><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;"><br /></span></span></span> <span style="font-family: "verdana" , sans-serif;"><span class="TextRun SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; color: windowtext; font-size: 11pt; font-variant-ligatures: none !important; line-height: 18px; margin: 0px; padding: 0px; user-select: text;" xml:lang="EN-US"><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;">Above pictures are taken from a slide of </span><a href="https://twitter.com/terrajobst" target="_blank"><span class="SpellingError SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; background-image: url("data:image/gif; background-position: left bottom; background-repeat: repeat-x; border-bottom: 1px solid transparent; margin: 0px; padding: 0px; user-select: text;">Immo</span><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;"> </span><span class="SpellingError SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; background-image: url("data:image/gif; background-position: left bottom; background-repeat: repeat-x; border-bottom: 1px solid transparent; margin: 0px; padding: 0px; user-select: text;">Landwerth</span></a><span class="NormalTextRun SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: inherit; margin: 0px; padding: 0px; user-select: text;">.</span></span><span class="EOP SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; font-size: 11pt; line-height: 18px; margin: 0px; padding: 0px; user-select: text;"> </span></span></div>
<div style="font-size: 12px;">
<span style="font-family: "verdana" , sans-serif;"><span class="EOP SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; font-size: 11pt; line-height: 18px; margin: 0px; padding: 0px; user-select: text;"><br /></span></span></div>
<div style="font-size: 12px;">
<span style="font-family: "verdana" , sans-serif;"><span class="EOP SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; font-size: 11pt; line-height: 18px; margin: 0px; padding: 0px; user-select: text;">The table below can be used as the reference for writing a class library using the standard.</span></span></div>
<div class="separator" style="clear: both; font-size: 12px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx0BwFF-il9uXnx6VGv-HyKRmCiCS7a4Jp2twuyD-A0Z_HOBpY6YqKYDHuwNm8YXdRFvtnNl2h71TJ5p2J68dnrTs-m5VvEqG3f9o1JooZdFeDBRehr3QdVjD8vC1KQEw2CuJnmTpKDHk/s1600/table.netStandard.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="421" data-original-width="861" height="312" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx0BwFF-il9uXnx6VGv-HyKRmCiCS7a4Jp2twuyD-A0Z_HOBpY6YqKYDHuwNm8YXdRFvtnNl2h71TJ5p2J68dnrTs-m5VvEqG3f9o1JooZdFeDBRehr3QdVjD8vC1KQEw2CuJnmTpKDHk/s640/table.netStandard.png" width="640" /></a></div>
<div style="font-size: 12px;">
<span style="font-family: "verdana" , sans-serif;"><span class="EOP SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; font-size: 11pt; line-height: 18px; margin: 0px; padding: 0px; user-select: text;"><br /></span></span></div>
<a href="https://www.blogger.com/blogger.g?blogID=1847873900465561467" imageanchor="1" style="clear: right; float: right; font-size: 12px; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=1847873900465561467" imageanchor="1" style="clear: right; float: right; font-size: 12px; margin-bottom: 1em; margin-left: 1em;"></a><span style="font-family: "verdana" , sans-serif; font-size: 12px;"><span class="EOP SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; font-size: 11pt; line-height: 18px; margin: 0px; padding: 0px; user-select: text;">If you are choosing a version for writing .net standard, you should consider a trade-off which is </span></span><span style="background-color: transparent; font-size: 14.6667px;"><span style="font-family: verdana, sans-serif;">the </span></span><br />
<blockquote class="tr_bq">
<span style="background-color: transparent; font-size: 14.6667px;"><span style="font-family: verdana, sans-serif;">higher the version of .net standard more apis are available. L</span></span><span style="background-color: transparent; font-family: verdana, sans-serif; font-size: 14.6667px;">ower the version, more platforms have already implemented it.</span></blockquote>
</div>
</div>
<div class="OutlineElement Ltr SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: white; clear: both; cursor: text; direction: ltr; font-size: 12px; margin: 0px; overflow: visible; padding: 0px; position: relative; user-select: text;">
<div class="Paragraph SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="Paragraph SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="font-family: "verdana" , sans-serif;"><span class="EOP SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; font-size: 11pt; line-height: 18px; margin: 0px; padding: 0px; user-select: text;">You can follow .net standard on <a href="https://github.com/dotnet/standard" target="_blank">GitHub </a></span></span></div>
<div class="Paragraph SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="font-family: "verdana" , sans-serif;"><span class="EOP SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; font-size: 11pt; line-height: 18px; margin: 0px; padding: 0px; user-select: text;"><br /></span></span></div>
<div class="Paragraph SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="font-family: "verdana" , sans-serif;"><span class="EOP SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; font-size: 11pt; line-height: 18px; margin: 0px; padding: 0px; user-select: text;">Below are the list of API's <a href="https://github.com/dotnet/standard/blob/master/docs/versions/netstandard2.0.md#whats-new" target="_blank">added newly in .net standard 2.0</a></span></span></div>
<div class="Paragraph SCXO141899094" lang="EN-US" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; background-color: transparent; color: windowtext; padding: 0px; user-select: text; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.blogger.com/blogger.g?blogID=1847873900465561467" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.blogger.com/blogger.g?blogID=1847873900465561467" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<span style="font-family: "verdana" , sans-serif;"><span class="EOP SCXO141899094" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; font-size: 11pt; line-height: 18px; margin: 0px; padding: 0px; user-select: text;"><br /></span></span></div>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-spacing: 0px; box-sizing: border-box; width: 516px;">
<colgroup><col span="2" style="width: 194pt;" width="258"></col> </colgroup><tbody>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl63" height="24" style="height: 18.0pt; width: 194pt;" width="258"><div style="text-align: center;">
<a href="https://www.blogger.com/blogger.g?blogID=1847873900465561467" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=1847873900465561467" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><b>Namespace</b></div>
</td>
<td class="xl64" style="border-left: none; width: 194pt;" width="258"><div style="text-align: center;">
<b>#APIs</b></div>
</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">Microsoft.Win32.SafeHandles</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">22</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System</td>
<td class="xl68" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">1,366</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.CodeDom.Compiler</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">46</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Collections</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">335</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Collections.Generic</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">23</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Collections.ObjectModel</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">1</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Collections.Specialized</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">281</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.ComponentModel</td>
<td class="xl68" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">1,843</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.ComponentModel.Design</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">565</td>
</tr>
<tr height="47" style="box-sizing: border-box; height: 35.25pt;">
<td class="xl67" height="47" style="border-top: none; box-sizing: border-box; height: 35.25pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.ComponentModel.Design.Serialization</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">155</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Configuration.Assemblies</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">13</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Data</td>
<td class="xl68" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">1,587</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Data.Common</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">907</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Data.SqlTypes</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">971</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Diagnostics</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">826</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Diagnostics.CodeAnalysis</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">2</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Diagnostics.Contracts</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">89</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Diagnostics.SymbolStore</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">146</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Diagnostics.Tracing</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">2</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Drawing</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">520</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Dynamic</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">226</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Globalization</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">217</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.IO</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">309</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.IO.Compression</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">8</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.IO.IsolatedStorage</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">134</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.IO.MemoryMappedFiles</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">66</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.IO.Pipes</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">125</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Linq</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">366</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Linq.Expressions</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">50</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Net</td>
<td class="xl68" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">1,360</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Net.Cache</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">52</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Net.Http.Headers</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">20</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Net.Mail</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">289</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Net.Mime</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">75</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Net.NetworkInformation</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">696</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Net.Security</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">194</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Net.Sockets</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">168</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Net.WebSockets</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">188</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Numerics</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">1</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Reflection</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">403</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Reflection.Emit</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">3</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Resources</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">91</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Runtime</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">12</td>
</tr>
<tr height="47" style="box-sizing: border-box; height: 35.25pt;">
<td class="xl67" height="47" style="border-top: none; box-sizing: border-box; height: 35.25pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Runtime.CompilerServices</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">190</td>
</tr>
<tr height="47" style="box-sizing: border-box; height: 35.25pt;">
<td class="xl65" height="47" style="border-top: none; box-sizing: border-box; height: 35.25pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Runtime.ConstrainedExecution</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">22</td>
</tr>
<tr height="47" style="box-sizing: border-box; height: 35.25pt;">
<td class="xl67" height="47" style="border-top: none; box-sizing: border-box; height: 35.25pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Runtime.ExceptionServices</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">6</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Runtime.InteropServices</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">106</td>
</tr>
<tr height="47" style="box-sizing: border-box; height: 35.25pt;">
<td class="xl67" height="47" style="border-top: none; box-sizing: border-box; height: 35.25pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Runtime.InteropServices.ComTypes</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">15</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Runtime.Serialization</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">486</td>
</tr>
<tr height="47" style="box-sizing: border-box; height: 35.25pt;">
<td class="xl67" height="47" style="border-top: none; box-sizing: border-box; height: 35.25pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Runtime.Serialization.Formatters</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">13</td>
</tr>
<tr height="47" style="box-sizing: border-box; height: 35.25pt;">
<td class="xl65" height="47" style="border-top: none; box-sizing: border-box; height: 35.25pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Runtime.Serialization.Formatters.Binary</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">23</td>
</tr>
<tr height="47" style="box-sizing: border-box; height: 35.25pt;">
<td class="xl67" height="47" style="border-top: none; box-sizing: border-box; height: 35.25pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Runtime.Serialization.Json</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">80</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Runtime.Versioning</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">33</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Security</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">124</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Security.Authentication</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">11</td>
</tr>
<tr height="47" style="box-sizing: border-box; height: 35.25pt;">
<td class="xl67" height="47" style="border-top: none; box-sizing: border-box; height: 35.25pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Security.Authentication.ExtendedProtection</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">36</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Security.Claims</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">206</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Security.Cryptography</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">575</td>
</tr>
<tr height="47" style="box-sizing: border-box; height: 35.25pt;">
<td class="xl65" height="47" style="border-top: none; box-sizing: border-box; height: 35.25pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Security.Cryptography.X509Certificates</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">76</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Security.Permissions</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">88</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Security.Principal</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">41</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Text</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">83</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Text.RegularExpressions</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">31</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Threading</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">330</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Threading.Tasks</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">66</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Timers</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">39</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Transactions</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">223</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Web</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">32</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Xml</td>
<td class="xl70" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">1,362</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Xml.Linq</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">7</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Xml.Resolvers</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">25</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Xml.Schema</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">967</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Xml.Serialization</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">943</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl67" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Xml.XPath</td>
<td class="xl69" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">261</td>
</tr>
<tr height="24" style="box-sizing: border-box; height: 18.0pt;">
<td class="xl65" height="24" style="border-top: none; box-sizing: border-box; height: 18.0pt; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">System.Xml.Xsl</td>
<td class="xl66" style="border-left: none; border-top: none; box-sizing: border-box; padding-bottom: 6px; padding-top: 6px; width: 194pt;" width="258">140</td>
</tr>
</tbody></table>
</div>
</div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com0tag:blogger.com,1999:blog-1847873900465561467.post-27014892552558646812017-09-28T11:07:00.000-07:002017-09-28T11:07:54.202-07:00Filter Attributes in MVC<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="p" style="margin: 0pt; text-indent: 0pt;">
<span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">An action filter is an attribute that can </span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">be </span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">appl</span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">ied</span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;"> to a</span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">n Action or the controller.</span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;"><o:p></o:p></span></div>
<div class="p" style="margin: 0pt; text-indent: 0pt;">
<br /></div>
<div class="p" style="margin: 0pt; text-indent: 0pt;">
<span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">Types of filters in MVC:</span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;"><o:p></o:p></span></div>
<div class="p" style="margin: 0pt; text-indent: 0pt;">
<br /></div>
<div class="MsoNormal" style="margin-left: 0pt; text-indent: 0pt;">
<!--[if !supportLists]--><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">1.</span><!--[endif]--><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">Authorization filters</span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 0pt; text-indent: 0pt;">
<!--[if !supportLists]--><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">2.</span><!--[endif]--><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">Action filters </span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">3.Result filters</span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 0pt; text-indent: 0pt;">
<span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">4.Exception filters</span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 0pt; text-indent: 0pt;">
<br /></div>
<div class="MsoNormal" style="margin-left: 0pt; text-indent: 0pt;">
<br /></div>
<div class="MsoNormal" style="margin-left: 0pt; text-indent: 0pt;">
<span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">Filters</span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;"> in MVC execute </span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">in the </span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">same </span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">order </span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">as mentioned </span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">above. </span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 0pt; text-indent: 0pt;">
<br /></div>
<div class="MsoNormal" style="margin-left: 0pt; text-indent: 0pt;">
<span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">A</span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">uthorization filters always execute</span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;"> </span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">before action filters and exception filters always execut</span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">e</span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;"> </span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">at last</span><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">.</span><span style="font-family: Verdana; font-size: 13.5pt; letter-spacing: 0pt;"><o:p></o:p></span></div>
<div class="p" style="background: rgb(255, 255, 255); margin: 5pt 0pt; padding: 0pt;">
<span style="color: #222222; font-family: Verdana; font-size: 12.0000pt; mso-fareast-font-family: segoe-ui_normal; mso-font-kerning: 0.0000pt; mso-spacerun: 'yes';">The base class for all action filters</span><span style="color: #222222; font-family: Verdana; font-size: 12.0000pt; mso-fareast-font-family: segoe-ui_normal; mso-font-kerning: 0.0000pt; mso-spacerun: 'yes';"> i</span><span style="color: #222222; font-family: Verdana; font-size: 12.0000pt; mso-fareast-font-family: segoe-ui_normal; mso-font-kerning: 0.0000pt; mso-spacerun: 'yes';">s the FilterAttribute class</span><span style="color: #222222; font-family: Verdana; font-size: 12.0000pt; mso-fareast-font-family: segoe-ui_normal; mso-font-kerning: 0.0000pt; mso-spacerun: 'yes';"> which is in </span><span style="color: #222222; font-family: Verdana; font-size: 12.0000pt; mso-fareast-font-family: segoe-ui_normal; mso-font-kerning: 0.0000pt; mso-spacerun: 'yes';">System.Web.Mvc</span><span style="color: #222222; font-family: Verdana; font-size: 12.0000pt; mso-fareast-font-family: segoe-ui_normal; mso-font-kerning: 0.0000pt; mso-spacerun: 'yes';"> namespace</span><span style="color: #222222; font-family: Verdana; font-size: 12.0000pt; mso-fareast-font-family: segoe-ui_normal; mso-font-kerning: 0.0000pt; mso-spacerun: 'yes';"><o:p></o:p></span></div>
<div class="p" style="background: rgb(255, 255, 255); margin: 5pt 0pt; padding: 0pt;">
<span style="color: #222222; font-family: Verdana; font-size: 12.0000pt; mso-fareast-font-family: segoe-ui_normal; mso-font-kerning: 0.0000pt; mso-spacerun: 'yes';">The base</span><span style="color: #222222; font-family: Verdana; font-size: 12.0000pt; mso-fareast-font-family: segoe-ui_normal; mso-font-kerning: 0.0000pt; mso-spacerun: 'yes';"> class which is</span><span style="color: #222222; font-family: Verdana; font-size: 12.0000pt; mso-fareast-font-family: segoe-ui_normal; mso-font-kerning: 0.0000pt; mso-spacerun: 'yes';"> ActionFilterAttribute has the following methods </span><span style="color: #222222; font-family: Verdana; font-size: 12.0000pt; mso-fareast-font-family: segoe-ui_normal; mso-font-kerning: 0.0000pt; mso-spacerun: 'yes';">which we </span><span style="color: #222222; font-family: Verdana; font-size: 12.0000pt; mso-fareast-font-family: segoe-ui_normal; mso-font-kerning: 0.0000pt; mso-spacerun: 'yes';">can override:</span><span style="color: #222222; font-family: Verdana; font-size: 12.0000pt; mso-fareast-font-family: segoe-ui_normal; mso-font-kerning: 0.0000pt; mso-spacerun: 'yes';"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 5pt; margin-left: 28.5pt; margin-top: 5pt; text-indent: -18pt;">
<!--[if !supportLists]--><span style="background: rgb(255, 255, 255); color: #222222; font-family: Symbol; font-size: 10pt; letter-spacing: 0pt;">· </span><!--[endif]--><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">OnActionExecuting – This method is called before a controller action is executed.</span><span style="font-family: Verdana; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 5pt; margin-left: 28.5pt; margin-top: 5pt; text-indent: -18pt;">
<!--[if !supportLists]--><span style="background: rgb(255, 255, 255); color: #222222; font-family: Symbol; font-size: 10pt; letter-spacing: 0pt;">· </span><!--[endif]--><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">OnActionExecuted – This method is called after a controller action is executed.</span><span style="font-family: Verdana; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 5pt; margin-left: 28.5pt; margin-top: 5pt; text-indent: -18pt;">
<!--[if !supportLists]--><span style="background: rgb(255, 255, 255); color: #222222; font-family: Symbol; font-size: 10pt; letter-spacing: 0pt;">· </span><!--[endif]--><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">OnResultExecuting – This method is called before a controller action result is executed.</span><span style="font-family: Verdana; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 5pt; margin-left: 28.5pt; margin-top: 5pt; text-indent: -18pt;">
<!--[if !supportLists]--><span style="background: rgb(255, 255, 255); color: #222222; font-family: Symbol; font-size: 10pt; letter-spacing: 0pt;">· </span><!--[endif]--><span style="background: rgb(255, 255, 255); color: #222222; font-family: Verdana; font-size: 12pt; letter-spacing: 0pt;">OnResultExecuted – This method is called after a controller action result is executed.</span><span style="font-family: Verdana; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
</div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com0tag:blogger.com,1999:blog-1847873900465561467.post-5923936257515654882017-05-23T19:32:00.000-07:002017-05-23T19:32:05.383-07:00Async and Sessionless controller in Asp.net MVC<div dir="ltr" style="text-align: left;" trbidi="on">
I know it's very late and both the concepts are released long back.<br />
<br />
Nov 2010 Microsoft released MVC3 RC in which provided a feature for Controller class to be free from session state was provided. Here is a <a href="https://weblogs.asp.net/scottgu/announcing-the-asp-net-mvc-3-release-candidate" target="_blank">link </a>to Scott Gu's blog releasing same<br />
<br />
Scott tells while answering a question on the post: <i>Session state is designed so that only one request from a particular user/session occurs at a time. So if you have a page that has multiple AJAX callbacks happening at once they will be processed in serial fashion on the server. Going session-less means that they would execute in parallel</i>.<br />
<div>
<br /></div>
<br />
Attribute Name is SessionState and it takes <a href="https://msdn.microsoft.com/en-us/library/system.web.sessionstate.sessionstatebehavior(v=vs.110).aspx" target="_blank">Enum of type SessionStateBehaviour</a> which has the following members:<br />
<br />
<ul style="text-align: left;">
<li>Default</li>
<li>Disabled</li>
<li>ReadOnly</li>
<li>Required</li>
</ul>
<br />
Usage: <span style="background-color: white; color: #333333; font-family: "verdana"; font-size: x-small; text-align: justify;">[SessionState(SessionStateBehavior.Disabled)]</span><br />
<br />
In case you opt to use SessionState attribute TempData and other session related thing won't work as mentioned in a small demo on <a href="http://www.dotnetcurry.com/ShowArticle.aspx?ID=609" target="_blank">Dot net curry</a>.<br />
<br />
Sessionless Controllers specifies the type of Session support you want for your class. On the other hand, as the name suggests Async Controllers let us perform operations without making the thread wait for completing the operation.<br />
<br />
<a href="https://weblogs.asp.net/imranbaloch/asynccontroller-v-s-sessionless-controller" target="_blank">This is a nice blog</a> by an MVP about calling the web services using Normal, Async and Sessionless manner.<br />
<br />
Async controllers are deprecated in MVC4 and they are implemented using <a href="https://msdn.microsoft.com/en-us/library/system.threading.tasks.task.aspx" target="_blank">Task class</a>. The new model for asynchronous methods is called the Task-based Asynchronous Pattern (TAP), More can be read <a href="https://docs.microsoft.com/en-us/aspnet/mvc/overview/performance/using-asynchronous-methods-in-aspnet-mvc-4" target="_blank">here </a>about it.<br />
<br />
Hope it helps.</div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com0tag:blogger.com,1999:blog-1847873900465561467.post-17453994828160795662017-05-16T09:10:00.000-07:002017-05-16T09:10:52.859-07:00Difference between Tier and Layers<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="background-color: white; border: 0px; clear: both; color: #242729; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 15px; margin-bottom: 1em; padding: 0px;">
During an interview this question was asked and I was pretty sure that what ever layers we create in our code (Presentation, BLL, DLL etc) are the tiers but I was wrong.</div>
<div style="background-color: white; border: 0px; clear: both; color: #242729; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 15px; margin-bottom: 1em; padding: 0px;">
An answer on <a href="http://stackoverflow.com/a/30073722">stack overflow</a> sums it up very well.</div>
<div style="background-color: white; border: 0px; clear: both; color: #242729; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 15px; margin-bottom: 1em; padding: 0px;">
A <strong style="border: 0px; margin: 0px; padding: 0px;">layer</strong> = <strong style="border: 0px; margin: 0px; padding: 0px;">a part of your code</strong>, if your application is a cake, this is a slice.</div>
<div style="background-color: white; border: 0px; clear: both; color: #242729; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 15px; margin-bottom: 1em; padding: 0px;">
A <strong style="border: 0px; margin: 0px; padding: 0px;">tier</strong> = <strong style="border: 0px; margin: 0px; padding: 0px;">a physical machine</strong>, a server.</div>
<div style="background-color: white; border: 0px; clear: both; color: #242729; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 15px; margin-bottom: 1em; padding: 0px;">
<br /></div>
<div style="background-color: white; border: 0px; clear: both; color: #242729; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 15px; margin-bottom: 1em; padding: 0px;">
Scott Hanselman also have a nice <a href="https://www.hanselman.com/blog/AReminderOnThreeMultiTierLayerArchitectureDesignBroughtToYouByMyLateNightFrustrations.aspx">blog post </a>on same. He says:</div>
<div style="background-color: white; border: 0px; clear: both; color: #242729; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 15px; margin-bottom: 1em; padding: 0px;">
<span style="color: #333333; font-family: "open sans" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15.2px;"><i>a "Tier" is a unit of deployment, while a "Layer" is a logical separation of responsibility within code. You may say you have a "3-tier" system, but be running it on one laptop. You may say your have a "3-layer" system, but have only ASP.NET pages that talk to a database. </i></span></div>
<div style="background-color: white; border: 0px; clear: both; color: #242729; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 15px; margin-bottom: 1em; padding: 0px;">
<span style="color: #333333; font-family: "open sans" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15.2px;"><i><br /></i></span></div>
<div style="background-color: white; border: 0px; clear: both; color: #242729; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 15px; margin-bottom: 1em; padding: 0px;">
<span style="color: #333333; font-family: "open sans" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15.2px;">and then he explains about what should be there in your Presentation, BLL and DLL and what should not be there.</span></div>
<div style="background-color: white; border: 0px; clear: both; color: #242729; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 15px; margin-bottom: 1em; padding: 0px;">
<span style="color: #333333; font-family: "open sans" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15.2px;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.hanselman.com/blog/content/binary/layeredarch.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.hanselman.com/blog/content/binary/layeredarch.png" /></a></div>
<div style="background-color: white; border: 0px; clear: both; color: #242729; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 15px; margin-bottom: 1em; padding: 0px;">
<span style="color: #333333; font-family: "open sans" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15.2px;"><br /></span></div>
</div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com2tag:blogger.com,1999:blog-1847873900465561467.post-74603138585639767272017-04-23T04:36:00.000-07:002017-04-23T04:36:45.197-07:00Iqueryable vs Ienumerable a comparison.<div dir="ltr" style="text-align: left;" trbidi="on">
There is always a doubt in developers mind regarding usage of IQueryable and IEnumerable.<br />
<div style="margin-bottom: .0001pt; margin: 0in;">
</div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
IQueryable extends IEnumerable. IQueryable should be used while working with remote databases. </div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
Well, here are some facts which can help resolving your doubt and can strengthen your decision-making as which one to use.</div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<a href="https://github.com/dotnet/coreclr/blob/3e897075b1ab5afb914671ccca240b5e41116242/src/mscorlib/shared/System/Collections/Generic/IEnumerable.cs">IEnumerable has just GetEnumerator()</a> method. Whereas <a href="https://github.com/dotnet/corefx/blob/master/src/System.Linq.Expressions/src/System/Linq/IQueryable.cs">IQueryable extends IEnumerable</a>.</div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<b>Some important points about Ienumberable<T></b></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
</div>
<ul style="text-align: left;">
<li>It's read-only.</li>
<li>Iterates only in forward direction.</li>
<li>Doesn't supports adding or removing objects.</li>
<li>It's a base interface for any generic collection</li>
</ul>
<div style="margin-bottom: .0001pt; margin: 0in;">
<b>When to use IEnumberable:</b></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
</div>
<ul style="text-align: left;">
<li>Working with read-only collection</li>
<li>Need to read objects in the forward direction.</li>
<li>Want to iterate collection using for-each.</li>
</ul>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<b>Some important points about IQueryable<T></b></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
</div>
<ul style="text-align: left;">
<li>It implements IEnumerable so the results can be iterated using for-each.</li>
<li>Best suited for querying against the remote data source.</li>
</ul>
<div>
<b>When to use IQueryable</b></div>
<div>
<ul style="text-align: left;">
<li>your data source is queryable.</li>
<li>Data needs to be applied </li>
<li>The deferred way is needed to load the data.</li>
</ul>
</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
</div>
<br />
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="background: white; border-collapse: collapse; border: none; mso-border-left-alt: solid #CCCCCC .75pt; mso-border-top-alt: solid #CCCCCC .75pt; mso-padding-alt: 0in 0in 0in 0in; mso-yfti-tbllook: 1184;">
<thead>
<tr style="height: 15.75pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;">
<td style="background: #EBF6FF; border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt; width: 104.25pt;" width="139">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
</td>
<td style="background: #EBF6FF; border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt; width: 213.75pt;" width="285">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<b><span style="border: none windowtext 1.0pt; color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">IEnumerable</span></b><b><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></b></div>
</td>
<td style="background: #EBF6FF; border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt; width: 261.75pt;" width="349">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<b><span style="border: none windowtext 1.0pt; color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">IQueryable</span></b><b><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></b></div>
</td>
</tr>
</thead>
<tbody>
<tr style="height: 15.75pt; mso-yfti-irow: 1;">
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<i><span style="border: none windowtext 1.0pt; color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">Namespace</span></i><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="border: none windowtext 1.0pt; color: #990000; font-family: Consolas; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">System.Collections</span><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"> Namespace<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="border: none windowtext 1.0pt; color: #990000; font-family: Consolas; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">System.Linq</span><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"> Namespace<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.75pt; mso-yfti-irow: 2;">
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<i><span style="border: none windowtext 1.0pt; color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">Derives from</span></i><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";">No base interface<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";">Derives from </span><span style="border: none windowtext 1.0pt; color: #990000; font-family: Consolas; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">IEnumerable</span><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.75pt; mso-yfti-irow: 3;">
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"><a href="http://synvistech.com/blogs/deferred-execution-vs-lazy-loading-vs-eager-loading-vs-explicitly-loading/" target="_blank" title="Deferred Execution"><i><span style="border: 1pt none windowtext; color: purple; padding: 0in; text-decoration-line: none;">Deferred Execution</span></i></a><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";">Supported<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";">Supported<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.75pt; mso-yfti-irow: 4;">
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"><a href="http://synvistech.com/blogs/deferred-execution-vs-lazy-loading-vs-eager-loading-vs-explicitly-loading/" target="_blank" title="Lazy Loading"><i><span style="border: 1pt none windowtext; color: purple; padding: 0in; text-decoration-line: none;">Lazy Loading</span></i></a><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";">Not Supported<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";">Supported<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 78.75pt; mso-yfti-irow: 5;">
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 78.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<i><span style="border: none windowtext 1.0pt; color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">How does it work</span></i><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 78.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt; width: 213.75pt;" width="285">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";">While querying data from the database, </span><span style="border: none windowtext 1.0pt; color: #990000; font-family: Consolas; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">IEnumerable</span><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"> executes a </span><span style="border: none windowtext 1.0pt; color: #990000; font-family: Consolas; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">select</span><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"> query on the server side, load data in-memory on the client side and then filter data. Hence does more work and becomes slow.<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 78.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt; width: 261.75pt;" width="349">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";">While querying data from the database, </span><span style="border: none windowtext 1.0pt; color: #990000; font-family: Consolas; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">IQueryable</span><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"> executes a </span><span style="border: none windowtext 1.0pt; color: #990000; font-family: Consolas; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">select</span><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"> query on the server side with all filters. Hence does less work and becomes fast.<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.75pt; mso-yfti-irow: 6;">
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<i><span style="border: none windowtext 1.0pt; color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">Suitable for</span></i><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";">LINQ to Object and LINQ to XML queries<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";">LINQ to SQL queries<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.75pt; mso-yfti-irow: 7;">
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<i><span style="border: none windowtext 1.0pt; color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">Custom Query</span></i><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";">Doesn’t support<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";">Supports using </span><span style="border: none windowtext 1.0pt; color: #990000; font-family: Consolas; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">CreateQuery</span><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"> and </span>Execute methods<span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 31.5pt; mso-yfti-irow: 8;">
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 31.5pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt; width: 104.25pt;" width="139">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<i><span style="border: none windowtext 1.0pt; color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">Extension method</span></i><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"><br />
<i><span style="border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">parameter</span></i><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 31.5pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt; width: 213.75pt;" width="285">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";">Extension methods supported in </span><span style="border: none windowtext 1.0pt; color: #990000; font-family: Consolas; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">IEnumerable</span><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"> takes functional objects.<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 31.5pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt; width: 261.75pt;" width="349">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";">Extension methods supported in </span><span style="border: none windowtext 1.0pt; color: #990000; font-family: Consolas; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">IEnumerable</span><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"> takes expression objects, i.e., expression tree.<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 31.5pt; mso-yfti-irow: 9;">
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 31.5pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt; width: 104.25pt;" width="139">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<i><span style="border: none windowtext 1.0pt; color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">When to use</span></i><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 31.5pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt; width: 213.75pt;" width="285">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";">When querying data from in-memory collections like </span><span style="border: none windowtext 1.0pt; color: #990000; font-family: Consolas; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">List</span><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";">, </span><span style="border: none windowtext 1.0pt; color: #990000; font-family: Consolas; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">Array</span><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";">, etc.<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 31.5pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt; width: 261.75pt;" width="349">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";">When querying data from out-memory (like remote database, service) collections.<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.75pt; mso-yfti-irow: 10; mso-yfti-lastrow: yes;">
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<i><span style="border: none windowtext 1.0pt; color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;">Best Uses</span></i><span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";">In-memory traversal<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid #CCCCCC 1.0pt; border-left: none; border-right: solid #CCCCCC 1.0pt; border-top: none; height: 15.75pt; mso-border-bottom-alt: solid #CCCCCC .75pt; mso-border-right-alt: solid #CCCCCC .75pt; padding: 3.75pt 3.75pt 3.75pt 3.75pt;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #111111; font-family: "Segoe UI","sans-serif"; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";">Paging<o:p></o:p></span></div>
</td>
</tr>
</tbody></table>
Table from <a href="http://www.codeproject.com/">code project</a></div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com0tag:blogger.com,1999:blog-1847873900465561467.post-51880786418563955012017-02-13T23:24:00.000-08:002017-02-13T23:24:59.778-08:00Visual Studio Spell Checker<div dir="ltr" style="text-align: left;" trbidi="on">
If you have to deal with a Grammer freak Lead or manager who checks all the spellings or you are a perfectionist looking for correct spellings all the time. You can install this extention to your visual studio.<br />
<br />
<span https:="" itemname="EWoodruff.VisualStudioSpellCheckerVS2017andLater" items="" marketplace.visualstudio.com="" style="font-family: "helvetica neue" , "helvetica" , "arial" , "is available to spell check any wpf text box within visual studio span span br br a href";"><a href="https://marketplace.visualstudio.com/items?itemName=EWoodruff.VisualStudioSpellCheckerVS2017andLater">VS2017 and Later</a></span><br />
<br />
<div>
<span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><a href="https://marketplace.visualstudio.com/items?itemName=EWoodruff.VisualStudioSpellChecker">VS 2013, 2015</a></span><br />
<br /></div>
<span style="background-color: #eeeeee; font-family: "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 13px;"><br /></span>
<span style="background-color: #eeeeee; font-family: "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 13px;">Some features:</span><br />
<br />
<ul style="text-align: left;">
<li>An option is available to spell check any WPF text box within Visual Studio</li>
<li>Specify one or more dictionary languages to use for spell checking. The package comes with several dictionaries for various languages.</li>
<li>Specify additional folders to search for custom dictionaries or user dictionaries.</li>
<li>Enable or disable spell checking as you type.</li>
<li>Ignore words with digits, in all uppercase, and/or in mixed case.</li>
<li>Ignore .NET and C-style format string specifiers. </li>
<li>Ignore words that look like filenames and e-mail addresses.</li>
<li>Ignore words that look like XML elements in spell checked text.</li>
<li>Treat underscores as separators.</li>
<li>Various options for excluding specific elements of C# source code files from being spell checked.</li>
<li>Exclude files from spell checking by filename extension.</li>
<li>Specify a list of XML elements in which the content should be ignored when spell checking XML files.</li>
<li>Specify a list of XML attributes for which the value should be spell checked when spell checking XML files.</li>
<li>Specify additional folders to search for dictionaries.</li>
<li>Determine localized resource file language from the filename.</li>
<li>Configurations can be specified at any level (solution, project, folder, or file). Options can be inherited or overridden.</li>
</ul>
<br />
<div>
<br /></div>
<div>
You can also contribute to project on GitHub: <a href="https://github.com/EWSoftware/VSSpellChecker">Spell Checker GitHub</a></div>
</div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com0tag:blogger.com,1999:blog-1847873900465561467.post-68832168920727339012015-12-10T03:52:00.000-08:002015-12-10T03:52:12.683-08:00Windows Live Writer goes open source with Open Live Writer(OLW)<div dir="ltr" style="text-align: left;" trbidi="on">
Open Live Writer, Its a fork of Microsoft's Windows Live Writer and is open source. Project developed by some Microsoft developers is kept under .net Foundation.<br />
<br />
This initial release is v 0.5 and they have a complete <a href="https://github.com/OpenLiveWriter/OpenLiveWriter/blob/master/roadmap.md" target="_blank">road map</a><br />
<br />
<br />
<a href="http://www.dotnetfoundation.org/blog/open-live-writer" target="_blank"><img border="0" height="149" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglKq80wxs1GENa_Gnh6qtxBoeWynPizGiV0vjOK0DoCyntZSiuBYbg6ymUetdjL8jn5UHsh48_sltQ-Lx9dgksqh18Xa2gifUN2vdM0Q0MAFNhIic44yLpa4ZvRBTa4XDZSo5usPVAL9Y/s400/dotNetFoundation.png" width="400" /></a><br />
<br />
More details can be found here at <a href="http://www.dotnetfoundation.org/blog/open-live-writer" target="_blank">.net Foundation website</a>.<br />
<br />
<br />
You can download a copy at <a href="http://openlivewriter.org/">OpenLiveWriter.Org</a> and start using it.<br />
<br />
<a href="http://openlivewriter.org/"><img alt="" border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGcFzS3dkhaZiT9-2YmzyqbDEfyyslO93O59VVrhGd1Bt74JjZEsw-ouU1H-jORcVAMJnp-hvz35RcHXBaJl6snNgdnvjx_C24lIzNF-YzFO8_3mluNB0mrun3zwgmqTIyJreAV9dkzpM/s400/OLW.png" title="Open Live Writer" width="400" /></a></div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com0tag:blogger.com,1999:blog-1847873900465561467.post-63653528305855138802015-12-09T21:54:00.000-08:002015-12-09T21:54:43.734-08:00Microsoft announced rewards on bugs in CoreCLR and Asp.Net Beta 5<div dir="ltr" style="text-align: left;" trbidi="on">
Microsoft has promised rewards to all those who find bug in Core CLR and Asp.net beta 5. The program ends on 20Jan 2016.<br />
<br />
<br />
Following vulnerabilities will not be considered:<br />
<br />
<ul style="text-align: left;">
<li>Publicly-disclosed vulnerabilities which are already known to Microsoft and the wider security community</li>
<li>Vulnerabilities in anything earlier than the current public betas of CoreCLR & ASP.NET 5 ( >= beta 8)</li>
<li>Vulnerabilities in released versions of ASP.NET</li>
<li>Vulnerabilities in user-generated content</li>
<li>Vulnerabilities requiring extensive or unlikely user actions</li>
<li>Vulnerabilities which disable or do not use any built in mitigation mechanisms</li>
<li>Low impact CSRF bugs</li>
<li>Server-side information disclosure</li>
<li>Vulnerabilities in platform technologies that are not unique to CoreCLR or ASP.NET (for example IIS, OpenSSL etc.)</li>
<li>Networking bugs in Beta 8 are not included.</li>
</ul>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Find more details here: <a href="https://technet.microsoft.com/en-us/mt574248" target="_blank">CoreCLR and ASP.NET 5 Beta Bug Bounty Program Terms</a></div>
</div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com0tag:blogger.com,1999:blog-1847873900465561467.post-86201352794252112732015-11-29T21:49:00.000-08:002017-05-20T07:29:20.821-07:00Chocolatey - A package manager for windows<div dir="ltr" style="text-align: left;" trbidi="on">
Think of a situation where you have to re-install your windows and need to install all the necessary softwares again. Its heck of a work to find all the softwares till you keep a copy of all in one place. Now no more worries about keeping all softwares or remembering the website. Here is a package(software) manager that will help you with all that.<br />
<br />
<b style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 16px; line-height: 19.2px;"><a href="https://chocolatey.org/" target="_blank">Chocolatey</a> </b><span style="background-color: white; color: #222222; font-family: "arial" , sans-serif; font-size: 16px; line-height: 19.2px;">is a package manager for windows.</span><br />
<span style="background-color: white; color: #222222; font-family: "arial" , sans-serif; font-size: 16px; line-height: 19.2px;"><br /></span> <span style="background-color: white; color: #222222; font-family: "arial" , sans-serif; font-size: 16px; line-height: 19.2px;"><b>How to install?</b></span><br />
<span style="background-color: white; color: #222222; font-family: "arial" , sans-serif; font-size: 16px; line-height: 19.2px;"><b><br /></b></span> <span style="background-color: white; color: #222222; font-family: "arial" , sans-serif; font-size: 16px; line-height: 19.2px;"><b><br /></b></span> <span style="background-color: white; color: #222222; font-family: "arial" , sans-serif; font-size: 16px; line-height: 19.2px;"><b>Run this command into your command prompt.</b></span><br />
<span style="background-color: white; color: #222222; font-family: "arial" , sans-serif; font-size: 16px; line-height: 19.2px;"><b><br /></b></span><span style="background-color: white; color: #222222; font-family: "arial" , sans-serif; font-size: 16px; line-height: 19.2px;"></span>
<br />
<pre class="brush :js">@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"</pre>
<br />
<br />
<br />
<b>How it will help?</b><br />
Its got 2,941 unique packages as of today.<br />
<br />
<b><br /></b> <b><br /></b> <span style="font-family: "verdana" , sans-serif;">The only problem is you have to use command prompt to install software and use the exact keyword to install the software. For example to install VLC media player keyword is vlc.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;">For installation command is: choco install <PackageName></span><br />
<span style="font-family: "verdana" , sans-serif;">For upgrade command is: choco upgrade <PackageName></span><br />
<span style="font-family: "verdana" , sans-serif;">For searching a package: choco search <Software Name></span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiErH2JDMzmtvFWu-aFTEhKJxZmInXSqtpWqZnLPvH-SZ1QND9i6KmJE37-OIQ3-z7qSlEhUXHQiq5Lb4HLZKgZhTavboByO-jaR2u-_SroF89t22xGk_0Bf2mIUjqBRFnyQWqkA-s84sw/s1600/chocoVLC.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiErH2JDMzmtvFWu-aFTEhKJxZmInXSqtpWqZnLPvH-SZ1QND9i6KmJE37-OIQ3-z7qSlEhUXHQiq5Lb4HLZKgZhTavboByO-jaR2u-_SroF89t22xGk_0Bf2mIUjqBRFnyQWqkA-s84sw/s1600/chocoVLC.JPG" /></a></div>
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;">Here is list of all the commands you can run <a href="https://github.com/chocolatey/choco/wiki/CommandsReference#commands" target="_blank">Chocolatey Commands Reference</a>.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;">You can also <a href="https://github.com/chocolatey/choco/wiki/CreatePackages" target="_blank">create a package</a> of your own. Command for that is following: choco new <PackageName>. There are certain rules which you need to take care of can be found here: <a font-family:="" href="https://github.com/chocolatey/choco/wiki/CreatePackages#rules-to-be-observed-before-publishing-packages" quot="" sans-serif="" target="_blank" verdana=""><br /></a></span> <span style="font-family: "verdana" , sans-serif;">choco install notepadplusplus googlechrome atom 7zi</span> <span style="font-family: "verdana" , sans-serif;">For installing multiple softwares once you can use: </span><br />
<span style="font-family: "verdana" , sans-serif;"><br />choco install notepadplusplus googlechrome atom 7zip</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;">This will install Notepad++, Chrome,Atom & 7zip</span></div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com0tag:blogger.com,1999:blog-1847873900465561467.post-190790757509799422015-11-24T04:34:00.002-08:002015-11-26T02:02:46.703-08:00HTTP verbs<div dir="ltr" style="text-align: left;" trbidi="on">
Many developers still don't know what is Http verb and how many of them are there and what is its actual use how web server treats them differently.<br />
<br />
For Http 1.1<br />
<br />
<ul>
<li><span style="font-family: "verdana" , sans-serif;">Get</span> - Retrieves the information identified by URI</li>
<li><span style="font-family: "verdana" , sans-serif;">Head</span> - Retrieves the message headers for information identified by URI.</li>
<li><span style="font-family: "verdana" , sans-serif;">Put</span> - Stores the enclosed entity under the request URI.</li>
<li><span style="font-family: "verdana" , sans-serif;">Post</span> - Post a new entity enclosed in the request.</li>
<li><span style="font-family: "verdana" , sans-serif;">Delete</span> - Deletes the resource identified by URI.</li>
</ul>
<div>
<br /></div>
Get and head are considered to be as safe methods becuase they are just meant for retrieval.<br />
<br />
More detailed info can be found on <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html" target="_blank">W3C website</a></div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com0tag:blogger.com,1999:blog-1847873900465561467.post-76357839125646438102015-11-23T23:20:00.000-08:002015-11-23T23:20:37.249-08:00Getting started with Node <div dir="ltr" style="text-align: left;" trbidi="on">
Javascript based frameworks are now a new buzzwords in development be it Angular or Node. The best thing with node is that you can write server side code also in javascript. Basically you can run your javascript applications outside the browser.<br />
<br />
Node works on <a href="https://code.google.com/p/v8/" target="_blank">v8 Javascript engine</a> developed by Google. Now you can work on one language throughout your application. No need to say and I quote "I am using blah-blah for my serverside code". :)<br />
<br />
<br />
You can <a href="https://nodejs.org/en/download/" target="_blank">download Node from Nodejs.org</a>.<br />
<br />
Node comes with a package manager called NPM(Node Package Manager). If you are familiar with Nuget or choclatey it won't be difficult for you to get started with this.<br />
<br />
<br />
Using Visual Studio to code Node is a good idea you can download a free version of visual studio from Visual Studio website here and can install <a href="https://github.com/Microsoft/nodejstools#readme" target="_blank">Visual Studio tools for Node</a>. This page has a <a href="https://github.com/Microsoft/nodejstools/wiki" target="_blank">wiki link(Documentation)</a> and also contains <a href="https://github.com/Microsoft/nodejs-guidelines" target="_blank">guidelines and other tips</a>.<br />
<br />
Start learning node by coding. There many tutorials available at <a href="http://nodeschool.io/" target="_blank">Node School</a>. Go through <a href="https://nodejs.org/api" target="_blank">API</a> here.<br />
<br />
<br />
Happy Coding !!</div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com1tag:blogger.com,1999:blog-1847873900465561467.post-70025428880024238832015-11-23T01:54:00.003-08:002015-11-23T01:54:47.926-08:00Shortcuts in SQL server<div dir="ltr" style="text-align: left;" trbidi="on">
Knowing shortcuts is very handy for a developer you dont have to touch mouse and break the rhythm. I came across one interesting shortcut in SQL Server.<br />
<pre class="brush: sql">alt+f1</pre>
<br />
For any SQL object in your database you can use this shortcut in <a href="https://en.wikipedia.org/wiki/SQL_Server_Management_Studio">Management Studio</a><br />
<br />
See the sceenshot below. Just selected the table name and pressed the shortcut will give you all the details<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRvcF5TvqtT6iVdmhZqns58GDR00TNqgc0KoTszGx5UkCoNPgfDQzT5JZmPzaTXlF8xVEW7-b17ttrJTVubRbTuCFffB3wilzOaJC0-60U9U14wBJIy2JLgw_9UCCiK057RClni_nkM3A/s1600/Capture.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRvcF5TvqtT6iVdmhZqns58GDR00TNqgc0KoTszGx5UkCoNPgfDQzT5JZmPzaTXlF8xVEW7-b17ttrJTVubRbTuCFffB3wilzOaJC0-60U9U14wBJIy2JLgw_9UCCiK057RClni_nkM3A/s320/Capture.JPG" width="297" /></a></div>
<br />
<br />
<br />
Lots of other shortcuts are available here.. <a href="https://msdn.microsoft.com/en-us/library/ms174205.aspx" target="_blank">Management Studio Keyboard Shortcuts</a></div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com0tag:blogger.com,1999:blog-1847873900465561467.post-6793983709290126162015-11-22T23:12:00.003-08:002015-11-23T00:21:52.612-08:00Writing a simple web crawler<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
Crawling is a thing which all search engines do across the web. This is a simple web crawler which crawls the the page you give and will give you back all the links on that page. Here for the sake of example I took Google.com.
<br />
<br />
<br />
<div>
<br /></div>
<pre class="brush: c-sharp">using System;
using System.Net;
using System.Collections.Generic;
using System.IO;
using System.Text.RegularExpressions;
public class Crawler
{
public static void Main()
{
string url = "http://www.google.com";
HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
httpWebRequest.UserAgent = "Anurag's Crawler";
WebResponse webResponse = httpWebRequest.GetResponse();
Stream stream = webResponse.GetResponseStream();
StreamReader streamReader = new StreamReader(stream);
string htmlText = streamReader.ReadToEnd();
var allLinks = GetNewLinks(htmlText);
foreach (var link in allLinks)
{
Console.WriteLine(link);
}
}
private static List<string> GetNewLinks(string content)
{
Regex regexForLink = new Regex("(?<=<a\\s*?href=(?:'|\"))[^'\"]*?(?=(?:'|\"))");</string></pre>
<pre class="brush: c-sharp"><string> List<string> newLinks = new List<string>();
foreach (var match in regexLink.Matches(content))
{
if (!newLinks.Contains(match.ToString()))
newLinks.Add(match.ToString());
}
return newLinks;
}
}
</string></pre>
</div>
<br />
<br />
<a href="https://github.com/Misterhex/WebCrawler">Web Crawler</a> This is a crawler written using <a href="http://msdn.microsoft.com/en-us/data/gg577609.aspx">Reactive Extension</a><br />
One more web crawler thats available and bit complex <a href="https://arachnode.net/">Archnode.net</a>
</div>
Anurag Ruhelahttp://www.blogger.com/profile/01767730105047428780noreply@blogger.com0