Home
Videos uploaded by user “kudvenkat”
Cross apply and outer apply in sql server
 
08:16
cross apply sql server example sql server outer apply example sql server join table function with parameter sql server inner join table valued function In this video we will discuss cross apply and outer apply in sql server with examples. We want to retrieve all the matching rows between Department and Employee tables. This can be very easily achieved using an Inner Join as shown below. Select D.DepartmentName, E.Name, E.Gender, E.Salary from Department D Inner Join Employee E On D.Id = E.DepartmentId Now if we want to retrieve all the matching rows between Department and Employee tables + the non-matching rows from the LEFT table (Department) This can be very easily achieved using a Left Join as shown below. Select D.DepartmentName, E.Name, E.Gender, E.Salary from Department D Left Join Employee E On D.Id = E.DepartmentId Now let's assume we do not have access to the Employee table. Instead we have access to the following Table Valued function, that returns all employees belonging to a department by Department Id. Create function fn_GetEmployeesByDepartmentId(@DepartmentId int) Returns Table as Return ( Select Id, Name, Gender, Salary, DepartmentId from Employee where DepartmentId = @DepartmentId ) Go The following query returns the employees of the department with Id =1. Select * from fn_GetEmployeesByDepartmentId(1) Now if you try to perform an Inner or Left join between Department table and fn_GetEmployeesByDepartmentId() function you will get an error. Select D.DepartmentName, E.Name, E.Gender, E.Salary from Department D Inner Join fn_GetEmployeesByDepartmentId(D.Id) E On D.Id = E.DepartmentId If you execute the above query you will get the following error Msg 4104, Level 16, State 1, Line 3 The multi-part identifier "D.Id" could not be bound. This is where we use Cross Apply and Outer Apply operators. Cross Apply is semantically equivalent to Inner Join and Outer Apply is semantically equivalent to Left Outer Join. Just like Inner Join, Cross Apply retrieves only the matching rows from the Department table and fn_GetEmployeesByDepartmentId() table valued function. Select D.DepartmentName, E.Name, E.Gender, E.Salary from Department D Cross Apply fn_GetEmployeesByDepartmentId(D.Id) E Just like Left Outer Join, Outer Apply retrieves all matching rows from the Department table and fn_GetEmployeesByDepartmentId() table valued function + non-matching rows from the left table (Department) Select D.DepartmentName, E.Name, E.Gender, E.Salary from Department D Outer Apply fn_GetEmployeesByDepartmentId(D.Id) E How does Cross Apply and Outer Apply work The APPLY operator introduced in SQL Server 2005, is used to join a table to a table-valued function. The Table Valued Function on the right hand side of the APPLY operator gets called for each row from the left (also called outer table) table. Cross Apply returns only matching rows (semantically equivalent to Inner Join) Outer Apply returns matching + non-matching rows (semantically equivalent to Left Outer Join). The unmatched columns of the table valued function will be set to NULL. Text version of the video http://csharp-video-tutorials.blogspot.com/2015/09/cross-apply-and-outer-apply-in-sql.html Slides http://csharp-video-tutorials.blogspot.com/2015/09/cross-apply-and-outer-apply-in-sql_8.html All SQL Server Text Articles http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.html All SQL Server Slides http://csharp-video-tutorials.blogspot.com/p/sql-server.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 63092 kudvenkat
Part 36 - C# Tutorial - Delegates in c#.avi
 
11:54
In this c sharp tutorial we will learn the basics of delegates Text version of the video http://csharp-video-tutorials.blogspot.com/2012/06/part-36-c-tutorial-delegates.html Slides http://csharp-video-tutorials.blogspot.com/2013/08/part-36-delegates.html All C# Text Articles http://csharp-video-tutorials.blogspot.co.uk/p/free-c-video-tutorial-for-beginners.html All C# Slides http://csharp-video-tutorials.blogspot.com/p/c.html Complete C# tutorial https://www.youtube.com/playlist?list=PLAC325451207E3105 All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 357860 kudvenkat
Part 5   ASP NET Web API Content Negotiation
 
08:23
In this video we will discuss Content Negotiation in Web API. Text version of the video http://csharp-video-tutorials.blogspot.com/2016/09/aspnet-web-api-content-negotiation.html Slides http://csharp-video-tutorials.blogspot.com/2016/09/aspnet-web-api-content-negotiation_5.html Dot Net and SQL Server Tutorials https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All ASP.NET Web API Text Articles and Slides http://csharp-video-tutorials.blogspot.com/2016/09/aspnet-web-api-tutorial-for-beginners.html
Views: 141540 kudvenkat
Part 1   Introduction to WCF
 
10:09
Link for code samples used in the demo http://csharp-video-tutorials.blogspot.com/2013/11/part-1-introduction-to-wcf.html Link for all dot net and sql server video tutorial playlists http://www.youtube.com/user/kudvenkat/playlists In this video we will discuss What is WCF Why should we use WCF What is WCF? WCF stands for Windows Communication Foundation and is part of .NET 3.0. WCF is Microsoft platform for building distributed and interoperable applications. What is a distributed application? In simple terms a distributed application, is an application where parts of it run on 2 or more computers. Distributed applications are also called as connected systems or applications. Examples: A web application running on one machine and a web service that this application is consuming is running on another machine. An enterprise web application may have the following tiers, and each tier may be running on a different machine 1. Presentation tier 2. Business tier 3. Data Access tier Why build distributed applications? There are several reasons for this 1. An enterprise application may need to use the services provided by other enterprises. For example an ecommerce application may be using paypal service for payments. 2. For better scalability. An enterprise web application may have Presentation tier, Business tier, and Data Access tiert, and each tier may be running on a different machine. What is an interoperable application? An application that can communicate with any other application that is built on any platform and using any programming language is called as an interoperable application. Web services are interoperable, where as .NET remoting services are not. Web services can communicate with any application built on any platform, where as a .NET remoting service can be consumed only by a .net application. What technology choices did we have before WCF to build distributed applications? Enterprise Services Dot Net Remoting Web Services Why should we use WCF? Let's take this scenario We have 2 clients and we need to implement a service a for them. 1. The first client is using a Java application to interact with our service, so for interoperability this client wants messages to be in XML format and the protocol to be HTTP. 2. The second client uses .NET, so for better performance this client wants messages formmated in binary over TCP protocol. Without WCF 1. To satisfy the first client requirement we end up implementing an ASMX web service, and 2. To satisfy the second client requirement we end up implementing a remoting service These are 2 different technologies, and have complete different programming models. So the developers have to learn different technologies. So to unify and bring all these technologies under one roof Microsoft has come up with a single programming model that is called as WCF - Windows Communication Foundation. With WCF, You implement one service and we can configure as many end points as want to support all the client needs. To support the above 2 client requirements, we would configure 2 end points. In the endpoint configuration we can specify the protocols and message formats that we want to use. In Part 2, we will discuss implementing 1. A web service to exchange messages in XML format using HTTP protocol for interoperability. 2. A remoting service to exchange messages in binary format using TCP protocol for performance. Along the way, we will get a feel of how different these technologies are. In Part 3, we will dicuss implementing a single WCF Service and configuring different end points to support different transport protocols and message formats.
Views: 706051 kudvenkat
Difference between where and having in sql server
 
06:36
sql server where vs having sql server group by where having group by having sql server In this vide we will discuss the difference between where and having caluses in sql server. Let us understand the difference with an example. To calculate total sales by product, we would write a GROUP BY query as shown below SELECT Product, SUM(SaleAmount) AS TotalSales FROM Sales GROUP BY Product Now if we want to find only those products where the total sales amount is greater than $1000, we will use HAVING clause to filter products SELECT Product, SUM(SaleAmount) AS TotalSales FROM Sales GROUP BY Product HAVING SUM(SaleAmount) ] 1000 If we use WHERE clause instead of HAVING clause, we will get a syntax error. This is because the WHERE clause doesn’t work with aggregate functions like sum, min, max, avg, etc. SELECT Product, SUM(SaleAmount) AS TotalSales FROM Sales GROUP BY Product WHERE SUM(SaleAmount) ] 1000 So in short, the difference is WHERE clause cannot be used with aggregates where as HAVING can. However, there are other differences as well that we need to keep in mind when using WHERE and HAVING clauses. WHERE clause filters rows before aggregate calculations are performed where as HAVING clause filters rows after aggregate calculations are performed. Let us understand this with an example. Total sales of iPhone and Speakers can be calculated by using either WHERE or HAVING clause Calculate Total sales of iPhone and Speakers using WHERE clause : In this example the WHERE clause retrieves only iPhone and Speaker products and then performs the sum. SELECT Product, SUM(SaleAmount) AS TotalSales FROM Sales WHERE Product in ('iPhone', 'Speakers') GROUP BY Product Calculate Total sales of iPhone and Speakers using HAVING clause : This example retrieves all rows from Sales table, performs the sum and then removes all products except iPhone and Speakers. SELECT Product, SUM(SaleAmount) AS TotalSales FROM Sales GROUP BY Product HAVING Product in ('iPhone', 'Speakers') So from a performance standpoint, HAVING is slower than WHERE and should be avoided when possible. Another difference is WHERE comes before GROUP BY and HAVING comes after GROUP BY. Difference between WHERE and Having 1. WHERE clause cannot be used with aggregates where as HAVING can. This means WHERE clause is used for filtering individual rows where as HAVING clause is used to filter groups. 2. WHERE comes before GROUP BY. This means WHERE clause filters rows before aggregate calculations are performed. HAVING comes after GROUP BY. This means HAVING clause filters rows after aggregate calculations are performed. So from a performance standpoint, HAVING is slower than WHERE and should be avoided when possible. 3. WHERE and HAVING can be used together in a SELECT query. In this case WHERE clause is applied first to filter individual rows. The rows are then grouped and aggregate calculations are performed, and then the HAVING clause filters the groups. Text version of the video http://csharp-video-tutorials.blogspot.com/2015/09/difference-between-where-and-having-in.html Slides http://csharp-video-tutorials.blogspot.com/2015/09/difference-between-where-and-having-in_15.html All SQL Server Text Articles http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.html All SQL Server Slides http://csharp-video-tutorials.blogspot.com/p/sql-server.html Full SQL Server Course https://www.youtube.com/playlist?list=PL4cyC4G0M1RQ_Rm52cQ4CcOJ_T_HXeMB4 All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 58021 kudvenkat
Part 68   What is the use of NonAction attribute in mvc
 
02:53
Link for code samples used in the demo http://csharp-video-tutorials.blogspot.com/2013/08/part-68-what-is-use-of-nonaction.html Link for csharp, asp.net, ado.net, dotnet basics, mvc and sql server video tutorial playlists http://www.youtube.com/user/kudvenkat/playlists In this video, we will discuss the use of NonAction attribute in asp.net mvc The following questions could be asked in an interview What is the use of NonAction attribute in MVC? OR How do you restrict access to public methods in a controller? An action method is a public method in a controller that can be invoked using a URL. So, by default, if you have any public method in a controller then it can be invoked using a URL request. To restrict access to public methods in a controller, NonAction attribute can be used. Let's understand this with an example. We have 2 public methods in HomeController, Method1() and Method2(). Method1 can be invoked using URL /Home/Method1 Method2 can be invoked using URL /Home/Method2 public class HomeController : Controller { public string Method1() { return "[h1]Method 1 Invoked[/h1]"; } public string Method2() { return "[h1]Method 2 Invoked[/h1]"; } } Let's say Method2() is for doing some internal work, and we don't want it to be invoked using a URL request. To achieve this, decorate Method2() with NonAction attribute. [NonAction] public string Method2() { return "[h1]Method 2 Invoked[/h1]"; } Now, if you naviage to URL /Home/Method2, you will get an error - The resource cannot be found. Another way to restrict access to methods in a controller, is by making them private. private string Method2() { return "[h1]Method 2 Invoked[/h1]"; } In general, it's a bad design to have a public method in a controller that is not an action method. If you have any such method for performing business calculations, it should be somewhere in the model and not in the controller. However, if for some reason, if you want to have public methods in a controller and you don't want to treat them as actions, then use NonAction attribute. Make sure to replace [ with LESSTHAN and ] with GREATERTHAN symbol.
Views: 49310 kudvenkat
How to become asp net developer
 
02:34
http://csharp-video-tutorials.blogspot.com/2014/09/how-to-become-aspnet-developer.html In this video we will discuss all that you need to know to become a successful asp.net web application developer Essential skills : The following are the essential skills that you need to learn in the order specified to become a web developer 1. Dot Net Basics : Learn what is Dot Net all about and how it works. All dot net developers, irrespective of whether you are a web or windows developer, need to know about these concepts. 2. One Programming language (C# or VB.NET) : You must learn at least on of the programming language (C# or VB.NET) to build dynamic data driven web applications. These videos start from the basics and covers all the advanced aspects of c# programming language that an asp.net web developer needs to know. 3. SQL Server : SQL Server is a database that stores the web application data. You need to learn the SQL programming language to store and retrieve data from the database server, which helps us build data driven web application. 4. ASP.NET : This is the framework that .NET provides to build web applications. 5. ADO.NET : Enables an asp.net web application to communicate with the database to store and retrieve data. 6. ASP.NET GridView - This is one of the widely used data control in an asp.net web application that enables to display, insert, update and delete data. 7. Visual Studio - This is the development tool/software that we use to build Dot Net applications. In addition to the above 7 essential skills, you also need to know the basics of HTML. HTML is very easy to self learn and there are many free resources on the web already. Nice to have skills : These days a lot of organisations are also looking for the following skills in addtion to the above essential skills. If you want to increase the chances of getting your resume shortlisted for an interview call, then you also need to be familiar (if not proficient) with the following technologies. 1. ASP.NET Web Services : ASP.NET Web Services became a legacy technology with the introduction of WCF. However, there are many organisations that are still using ASP.NET web services, so if you want to increase your chances of an interview call you may want to learn this technology as well. Also, learning asp.net web services, makes it easy to learn WCF. 2. WCF : Helps buils service oriented applications. If you are familiar with this and if you can answer the interview questions you almost have the job. 3. ASP.NET MVC - Gives you a powerful, patterns-based way to build dynamic websites that enables a clean separation of concerns and that gives you full control. 3. Entity Framework : This is an ORM framework that enables .NET developers to work with relational data using domain-specific objects. Another nice to have skill. 4. LINQ - Language-Integrated Query (LINQ) is a set of features introduced in Visual Studio 2008 that extends powerful query capabilities to the language syntax of C# and Visual Basic. The different aspects of LINQ are covered in the following tutorials. LINQ LINQ to XML LINQ to SQL In addition to the above 4 nice to have skills, you also need to know jQuery. I don't have a video series on this yet, but there are several resources on the web already. To help you with your interview preparation, I have also started several video series as listed below. C# Interview Questions & Answers Dot Net Written Test Questions & Answers SQL Server Interview Questions & Answers Slides, code samples and text version of the videos are available on my blog. http://csharp-video-tutorials.blogspot.com All these resources are available at no cost. In total there are over 700 videos (150 Hours). This means if you spend 5 hours a day watching these videos in 30 days you have most of the skills required to become a successful asp.net web developer. If you need a video on a concept that you are struggling with or if you have attended an interview and if you need a question to be answered, please leave it as a comment and I shall record and upload video answering it as soon as I can. If you need a DVD with all the videos and slides or if you need to download the videos for offline viewing, please visit the following link. http://pragimtech.com/order.aspx Finally if you feel these videos could help others like you please share on Facebook, Google+ and any other social media you use. Enjoy Coding Venkat
Views: 114232 kudvenkat
What is bootstrap
 
06:28
twitter bootstrap tutorial for beginners twitter bootstrap for beginners benefits of bootstrap framework advantages of bootstrap framework twitter bootstrap benefits what is responsive web design what is responsive website what is responsive design use of bootstrap responsive web development responsive web app In this video we will discuss 1. What is bootstrap 2. Advantages of using bootstrap Bootstrap is a free, open-source and is the most popular HTML, CSS, and JavaScript framework developed by twitter for creating responsive web applications. It includes HTML and CSS based design templates for common user interface components like Buttons, Dropdowns, Typography, Tabs, Forms, Tables, Navigations, Alerts, Modals, Accordion, Carousel etc. along with optional JavaScript extensions. Bootstrap framework is based on open standards - HTML, CSS and JavaScript. This means bootstrap can be used with any server side technology and any platform. You can use it with any web application built with any server side technology like ASP.NET, JAVA, PHP etc. What are the advantages of using bootstrap Supports responsive design : One of the greatest advantages of using bootstrap is that it helps us create responsive web applications faster and easier. So the obvious question that comes to our mind is, what is a responsive web application? A responsive web application automatically adapts to different screen sizes (i.e desktop computers, laptops, tablets. mobile phones etc). A responsive application provides optimal viewing and interaction experience i.e easy reading and navigation with a minimum of resizing, panning, and scrolling across a wide range of devices. So you don't have to worry about your application not being compatible with multiple devices. The images at the following links shows how a responsive and non-responsive application looks like on a mobile device. http://www.webnersolutions.com/wp-content/uploads/2015/08/responsive-vs-non-responsive-web-design1.jpg At the following link is a live responsive application example. Notice as we resize the browser, the content automatically adpats to the screen size. http://bootstrapdocs.com/v3.0.3/docs/examples/jumbotron/ Saves lot of development time : One of the biggest advantages of using Bootstrap is that it saves lot of development time. Instead of writing code from the scratch, bootstrap offers ready made blocks of code that you can use and customize to suit your application requirements. There are also many websites out there that offer free and paid Bootstrap themes that saves even more development time. Consistency : Bootstrap was developed by Twitter to encourage consistency across thier internal tools by giving their developers a centralised development code. Since all the developers are working using a centralised code, the end result is consistent regardless of who’s working on the project and which web browser is being used. Customizable : If you are using only a few features of bootstrap, you can customize to download only those features using the following bootstrap customize page. http://getbootstrap.com/customize/ Support : As Bootstrap is the most popular framework, it has a very large community base and excellent documentation. Bootstrap's excellent documentation, examples and demos helps a developer learn bootstrap quickly even if you are new to it. If you ever run into an issue you will usually get help quickly and easily from the vast online community and web forums. In our next video we will discuss, downloading, setting up and understanding different bootstrap components. Please stay tuned. Link for all dot net and sql server video tutorial playlists https://www.youtube.com/user/kudvenkat/playlists?sort=dd&view=1 Link for slides, code samples and text version of the video http://csharp-video-tutorials.blogspot.com/2016/05/what-is-bootstrap.html
Views: 458857 kudvenkat
Clustered and nonclustered indexes in sql server   Part 36
 
16:49
In this video we will learn about 1. Different types of indexes in sql server 2. What are clustered indexes 3. What are NonClustered indexes 4. Difference between clustered and non clustered indexes Text version of the video http://csharp-video-tutorials.blogspot.co.uk/2012/09/clustered-and-non-clustered-indexes.html Slides http://csharp-video-tutorials.blogspot.com/2013/09/part-36-clustered-nonclustered-indexes.html All SQL Server Text Articles http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.html All SQL Server Slides http://csharp-video-tutorials.blogspot.com/p/sql-server.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 409230 kudvenkat
Correlated subquery in sql   Part 60
 
07:59
In this video we will discuss about Corelated Subqueries In Part 59, we discussed about 2 examples that uses subqueries. Please watch Part 59, before proceeding with this video. We will be using the same tables and queries from Part 59. In the example below, sub query is executed first and only once. The sub query resutls are then used by the outer query. In a non-corelated subquery, the subquery can be executed independently of the outer query. Select [Id], [Name], [Description] from tblProducts where Id not in (Select Distinct ProductId from tblProductSales) If the subquery depends on the outer query for its values, then that sub query is called as a correlated subquery. In the where clause of the subquery below, "ProductId" column get it's value from tblProducts table that is present in the outer query. So, here the subquery is dependent on the outer query for it's value, hence this subquery is a correlated subquery. Correlated subqueries get executed, once for every row that is selected by the outer query. corelated subquery, cannot be executed independently of the outer query. Select [Name], (Select SUM(QuantitySold) from tblProductSales where ProductId = tblProducts.Id) as TotalQuantity from tblProducts order by Name Text version of the video http://csharp-video-tutorials.blogspot.com/2013/01/correlated-subquery-in-sql-part-60.html Slides http://csharp-video-tutorials.blogspot.com/2013/09/part-60-co-related-subqueries.html All SQL Server Text Articles http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.html All SQL Server Slides http://csharp-video-tutorials.blogspot.com/p/sql-server.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 114829 kudvenkat
Prototype in JavaScript
 
05:16
Link for all dot net and sql server video tutorial playlists http://www.youtube.com/user/kudvenkat/playlists Link for slides, code samples and text version of the video http://csharp-video-tutorials.blogspot.com/2015/02/prototype-in-javascript.html In this video we will discuss Prototype object in JavaScript. Let us understand it's use with an example. The following Employee constructor function constructs Employee object. function Employee(name) { this.name = name; } There are several ways to add a function to the Employee object. One way is as shown below. This works but the problem with this approach is that, if you create 100 employee objects there will be 100 copies of getName() function. We don't want to be creating copies of functions, instead we want all the objects to share the same function code. This can be achieved using JavaScript prototype object. function Employee(name) { this.name = name; this.getName = function () { return this.name; } } var e1 = new Employee("Mark"); var e2 = new Employee("Sara"); document.write("e1.name = " + e1.getName() + "[br/]"); document.write("e2.name = " + e2.getName() + "[br/]"); Output : e1.name = Mark e2.name = Sara In this example, getName() function is added just to e1 object, and not to e2 object. So e2.getName() would throw an undefined error. function Employee(name) { this.name = name; } var e1 = new Employee("Mark"); e1.getName = function () { return this.name; } var e2 = new Employee("Sara"); document.write("e1.name = " + e1.getName() + "[br/]"); document.write("e2.name = " + e2.getName() + "[br/]"); In the following example getName() function is added to the Employee object using the name of the constructor function. This would also result in undefined error. function Employee(name) { this.name = name; } Employee.getName = function () { return this.name; } var e1 = new Employee("Mark"); var e2 = new Employee("Sara"); document.write("e1.name = " + e1.getName() + "[br/]"); document.write("e2.name = " + e2.getName() + "[br/]"); Using the prototype object to add functions : The following are the advantages of using the prototype object to add functions. 1. No matter how many objects you create, functions are loaded only once into memory 2. Allows you to override functions if required. function Employee(name) { this.name = name; } Employee.prototype.getName = function () { return this.name; } var e1 = new Employee("Mark"); var e2 = new Employee("Sara"); document.write("e1.name = " + e1.getName() + "[br/]"); document.write("e2.name = " + e2.getName() + "[br/]"); Output : e1.name = Mark e2.name = Sara
Views: 65736 kudvenkat
Difference between AngularJS, Angular 2 and Angular 4
 
08:01
Text version of the video http://csharp-video-tutorials.blogspot.com/2017/09/difference-between-angularjs-angular-2.html Slides http://csharp-video-tutorials.blogspot.com/2017/09/difference-between-angularjs-angular-2_13.html Angular 2 Tutorial playlist https://www.youtube.com/playlist?list=PL6n9fhu94yhWqGD8BuKuX-VTKqlNBj-m6 Angular 2 Text articles and slides http://csharp-video-tutorials.blogspot.com/2017/06/angular-2-tutorial-for-beginners_12.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists So far Google has released 3 versions of Angular Version Year ------------ ------ AngularJS 2010 Angular 2 2016 Angular 4 2017 What is the difference between AngularJS and Angular 2 The first version of Angular is called AngularJS and was released in the year 2010. Some people call it Angular 1, but it is officially called AngularJS. Angular 2 is released in the year 2016. The most important thing to keep in mind is that, Angular 2 is not a simple upgrade from angular 1. Angular 2 is completely rewritten from the ground up and as a result the way we write applications with AngularJS and Angular 2 is very different. From a performance standpoint, Angular 2 is 5 times faster compared to AngularJS. AngularJS was not built for mobile devices, where as Angular 2 on the other hand is designed from the ground up with mobile support in mind. With Angular 2 we have more language choices. In additon to nativa JavaScript we can use TypeScript, Dart, PureScript, Elm, etc. Angular 4 is released in 2017. So, What is the difference between Angular 2 and Angular 4 If you have worked with both Angular 1 and Angular 2, then you already know that the API's and patterns that we use to build applications are very different between these 2 versions. From a developer stand point, it is like learning 2 different frameworks. Since Angular 2 is a complete rewrite from Angular 1, moving from Angular 1 to Angular 2 is a total breaking change. However, changing from Angular 2 to Angular 4 and even future versions of Angular, won’t be like changing from Angular 1. It won’t be a complete rewrite, it will simply be a change in some core libraries. From a developer standpoint, building an application using Angular 2 and Angular 4 is not very different. We still use the same concepts and patterns. Angular 4 is simply, the next version of Angular 2. The underlying concepts are still the same and if you have already learnt Angular 2 then you’re well prepared to switch to Angular 4. The most important point to keep in mind is, Angular 4 is backwards compatible with Angular 2 for most applications. What has changed and what is new in Angular 4 Some under the hood changes to reduce the size of the AOT (Ahead-of-Time) compiler generated code. Migrating to Angular 4 may reduce the production bundles by hundreds of kilobytes. As a developer this change will not affect the way we write angular applications in any way. TypeScript 2.1 and 2.2 compatibility. Angular is updated with a more recent version of TypeScript, for better type checking throughout our application. Up until Angular 4, only TypeScript 1.8 was supported. With Angular 4, we can use typescript 2.1 or 2.2 which means we can use all the new features of TypeScript with Angular 4. Animation features are pulled out of @angular/core and are moved into their own package. This means that if you don’t use animations, this extra code will not end up in your production bundles. On the other hand, if you do have animations in your application, you may have to change your existing code to pull the animation features from the animations package. We can now use an if/else style syntax with *ngIf structural directive. In Angular 2, to implement if/else logic, we use 2 *ngIf structural directives. With Angular 4, we can use it's new if/else style syntax with *ngIf structural directive. We will discuss an example of this in our upcoming videos. What happened to Angular 3. Why did we move straight from Angular 2 to Angular 4. What is the reason for skipping Angular 3. Except the Router library, all the other Angular core libraries are versioned the same way and are shipped as NPM packages as you can see below. While all the other core angular packages are at Version 2, the router library is already at Version 3. Due to this misalignment of the router package’s version, the angular team decided to go straight for Angular v4. This way, all the core packages are aligned which will be easier to maintain and help avoid confusion in the future. Common Questions Do I have to learn AngularJS 1 before learning Angular 2 Do I have to learn Angular 2 before learning Angular 4
Views: 65805 kudvenkat
AngularJS tutorial -  What is AngularJS
 
10:28
AngularJS tutorial - What is AngularJS In this video we will discuss What is AngularJS Benefits of AngularJS A simple AngularJS example What is AngularJS AngularJS is a JavaScript framework that helps build applications that run in a web browser. Who developed AngularJS Google is the company that developed AngularJS. AngularJS is an open source project, which means it can be be freely used, changed, and shared by anyone. AngularJS is an excellent framework for building both Single Page Applications (SPA) and Line of Business Applications. Many companies are using Angular today, and there are many public facing web sites that are built with angular. There is a website, https://www.madewithangular.com, that has the list of web sites that are built using AngularJS. Within this list you can find many popular websites. What are the benefits of using AngularJS 1. Dependency Injection : Dependency Injection is something AngularJS does quite well. If you are new to Dependency Injection, don't worry, we will discuss it in detail with examples in a later video. 2. Two Way Data-Binding : One of the most useful feature in AngularJS is the Two Way Data-Binding. The Two Way Data-Binding, keeps the model and the view in sync at all times, that is a change in the model updates the view and a change in the view updates the model. 3. Testing : Testing is an area where Angular really shines. Angular is designed with testing in mind right from the start. Angular makes it very easy to test any of it's components through both unit testing and end to end testing. So there's really no excuse for not testing any of your angular application code. 4. Model View Controller : With angular it is very easy to develop applications in a clean MVC way. All you have to do is split your application code into MVC components. The rest, that is managing those components and connecting them together is done by angular. 5. Many more benefits like controlling the behaviour of DOM elements using directives and the flexibility that angular filters provide. We will discuss directives, filters, Modules, Routes etc with examples in our upcoming videos in this series. To build angular applications you only need one script file and that is angular.js. To get the script file visit https://angularjs.org. From here 1. You can download the angular script file 2. CDN link - We discussed the benefits of using CDN in Part 3 of jQuery tutorial. 3. Various resources to learn angular - Here you will find videos, Free courses, Tutorials and Case Studies. You will also find API reference which is extremeley useful. To get started with angular 1. Add a reference to the angular script 2. Include ng-app attribute What is ng-app In angular, ng-app is called a directive. There are many directives in angular. You can find the complete list of directives on https://angularjs.org. The ng prefix in the directive stands for angular. The ng-app directive is a starting point of AngularJS Application. Angular framework will first check for ng-app directive in an HTML page after the entire page is loaded. If ng-app directive is found, angular bootstraps itself and starts to manage the section of the page that has the ng-app directive. So the obvious next question is, where to place the ng-app directive on the page It should be placed at the root of the HTML document, that is at the [html] tag level or at the [body] tag level, so that angular can control the entire page. However, there is nothing stopping you from placing it on any other HTML element with in the page. When you do this only that element and it's children are managed by angular. Double curly braces are called binding expressions in angular. These All the following are valid expressions in angular {{ 1 == 1 }} - Evaluates to true {{ { name: 'David', age : '30' }.name }} - Returns the name property value {{ ['Mark', 'David', 'Sara'][2] }} - Returns the 2nd element from the array Link for all dot net and sql server video tutorial playlists https://www.youtube.com/user/kudvenkat/playlists?sort=dd&view=1 Link for slides, code samples and text version of the video http://csharp-video-tutorials.blogspot.com/2015/10/what-is-angularjs.html
Views: 1543232 kudvenkat
Part 22 - C# Tutorial - Method hiding in c#.avi
 
12:03
Text version of the video http://csharp-video-tutorials.blogspot.com/2012/06/part-22-c-tutorial-method-hiding-in-c.html Slides http://csharp-video-tutorials.blogspot.com/2013/08/part-22-method-hiding-in-c.html All C# Text Articles http://csharp-video-tutorials.blogspot.co.uk/p/free-c-video-tutorial-for-beginners.html All C# Slides http://csharp-video-tutorials.blogspot.com/p/c.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists In this part of the c sharp tutorial we will learn 1. Method hiding 2. Invoke hidden base class members
Views: 243413 kudvenkat
Lead and Lag functions in SQL Server 2012
 
07:27
In this video we will discuss about Lead and Lag functions. Lead and Lag functions Introduced in SQL Server 2012 Lead function is used to access subsequent row data along with current row data Lag function is used to access previous row data along with current row data ORDER BY clause is required PARTITION BY clause is optional Syntax LEAD(Column_Name, Offset, Default_Value) OVER (ORDER BY Col1, Col2, ...) LAG(Column_Name, Offset, Default_Value) OVER (ORDER BY Col1, Col2, ...) Offset - Number of rows to lead or lag. Default_Value - The default value to return if the number of rows to lead or lag goes beyond first row or last row in a table or partition. If default value is not specified NULL is returned. We will use the following Employees table for the examples in this video SQL Script to create the Employees table Create Table Employees ( Id int primary key, Name nvarchar(50), Gender nvarchar(10), Salary int ) Go Insert Into Employees Values (1, 'Mark', 'Male', 1000) Insert Into Employees Values (2, 'John', 'Male', 2000) Insert Into Employees Values (3, 'Pam', 'Female', 3000) Insert Into Employees Values (4, 'Sara', 'Female', 4000) Insert Into Employees Values (5, 'Todd', 'Male', 5000) Insert Into Employees Values (6, 'Mary', 'Female', 6000) Insert Into Employees Values (7, 'Ben', 'Male', 7000) Insert Into Employees Values (8, 'Jodi', 'Female', 8000) Insert Into Employees Values (9, 'Tom', 'Male', 9000) Insert Into Employees Values (10, 'Ron', 'Male', 9500) Go Lead and Lag functions example WITHOUT partitions : This example Leads 2 rows and Lags 1 row from the current row. When you are on the first row, LEAD(Salary, 2, -1) allows you to move forward 2 rows and retrieve the salary from the 3rd row. When you are on the first row, LAG(Salary, 1, -1) allows us to move backward 1 row. Since there no rows beyond row 1, Lag function in this case returns the default value -1. When you are on the last row, LEAD(Salary, 2, -1) allows you to move forward 2 rows. Since there no rows beyond the last row 1, Lead function in this case returns the default value -1. When you are on the last row, LAG(Salary, 1, -1) allows us to move backward 1 row and retrieve the salary from the previous row. SELECT Name, Gender, Salary, LEAD(Salary, 2, -1) OVER (ORDER BY Salary) AS Lead_2, LAG(Salary, 1, -1) OVER (ORDER BY Salary) AS Lag_1 FROM Employees Lead and Lag functions example WITH partitions : Notice that in this example, Lead and Lag functions return default value if the number of rows to lead or lag goes beyond first row or last row in the partition. SELECT Name, Gender, Salary, LEAD(Salary, 2, -1) OVER (PARTITION By Gender ORDER BY Salary) AS Lead_2, LAG(Salary, 1, -1) OVER (PARTITION By Gender ORDER BY Salary) AS Lag_1 FROM Employees Text version of the video http://csharp-video-tutorials.blogspot.com/2015/10/lead-and-lag-functions-in-sql-server.html Slides http://csharp-video-tutorials.blogspot.com/2015/10/lead-and-lag-functions-in-sql-server_5.html All SQL Server Text Articles http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.html All SQL Server Slides http://csharp-video-tutorials.blogspot.com/p/sql-server.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 42675 kudvenkat
FIRST VALUE function in SQL Server
 
02:48
In this video we will discuss FIRST_VALUE function in SQL Server FIRST_VALUE function Introduced in SQL Server 2012 Retrieves the first value from the specified column ORDER BY clause is required PARTITION BY clause is optional Syntax : FIRST_VALUE(Column_Name) OVER (ORDER BY Col1, Col2, ...) FIRST_VALUE function example WITHOUT partitions : In the following example, FIRST_VALUE function returns the name of the lowest paid employee from the entire table. SELECT Name, Gender, Salary, FIRST_VALUE(Name) OVER (ORDER BY Salary) AS FirstValue FROM Employees FIRST_VALUE function example WITH partitions : In the following example, FIRST_VALUE function returns the name of the lowest paid employee from the respective partition. SELECT Name, Gender, Salary, FIRST_VALUE(Name) OVER (PARTITION BY Gender ORDER BY Salary) AS FirstValue FROM Employees Text version of the video http://csharp-video-tutorials.blogspot.com/2015/10/firstvalue-function-in-sql-server.html Slides http://csharp-video-tutorials.blogspot.com/2015/10/firstvalue-function-in-sql-server_6.html All SQL Server Text Articles http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.html All SQL Server Slides http://csharp-video-tutorials.blogspot.com/p/sql-server.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 29343 kudvenkat
Part 23  Why deleting database records using get request is bad
 
08:06
In this video we will discuss, why deleting database records using GET request is bad. Please watch Part 22, before proceeding. Text version of the video http://csharp-video-tutorials.blogspot.com/2013/05/part-23-why-deleting-database-records.html Slides http://csharp-video-tutorials.blogspot.com/2013/09/part-23-why-deleting-database-records.html All ASP .NET MVC Text Articles http://csharp-video-tutorials.blogspot.com/p/aspnet-mvc-tutorial-for-beginners.html All ASP .NET MVC Slides http://csharp-video-tutorials.blogspot.com/p/aspnet-mvc-slides.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists First let's discuss, how to delete data in MVC using GET request and then we will discuss, why it is bad to do so. Step 1: Create a stored procedure to delete employee data by "ID" Create procedure spDeleteEmployee @Id int as Begin Delete from tblEmployee where Id = @Id End Step 2: Add the following DeleteEmployee() method to "EmployeeBusinessLayer.cs" file in "BusinessLayer" project. This method calls the stored procedure "spDeleteEmployee" that we just created. public void DeleteEmployee(int id) { string connectionString = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString; using (SqlConnection con = new SqlConnection(connectionString)) { SqlCommand cmd = new SqlCommand("spDeleteEmployee", con); cmd.CommandType = CommandType.StoredProcedure; SqlParameter paramId = new SqlParameter(); paramId.ParameterName = "@Id"; paramId.Value = id; cmd.Parameters.Add(paramId); con.Open(); cmd.ExecuteNonQuery(); } } Step 3: Add the following "DELETE" controller action method to "EmployeeController". public ActionResult Delete(int id) { EmployeeBusinessLayer employeeBusinessLayer = new EmployeeBusinessLayer(); employeeBusinessLayer.DeleteEmployee(id); return RedirectToAction("Index"); } Run the application and navigate to "Index" action. Click the "Delete" link. This issues "GET" request to the following URL, and deletes the record. http://localhost/MVCDemo/Employee/Delete/1 Deleting database records using GET request opens a security hole and is not recommended by Microsoft. Just imagine what can happen if there is an image tag in a malicious email as shown below. The moment we open the email, the image tries to load and issues a GET request, which would delete the data. [img src="http://localhost/MVCDemo/Employee/Delete/2" /] Also, when search engines index your page, they issue a GET request which would delete the data. In general GET request should be free of any side-effects, meaning it should not change the state. Deletes should always be performed using a POST request. We will discuss, implementing this in our next video.
Views: 101744 kudvenkat
Part 69   Action filters in mvc
 
02:13
Link for code samples used in the demo http://csharp-video-tutorials.blogspot.com/2013/08/part-69-action-filters-in-mvc.html Link for csharp, asp.net, ado.net, dotnet basics, mvc and sql server video tutorial playlists http://www.youtube.com/user/kudvenkat/playlists What are action filters in asp.net mvc? Action filters are attributes that can be applied either on a controller action method or on a controller. When applied at the controller level, they are applicable for all actions within that controller. Action filters allow us to add, pre and post processing logic to an action method. This means, they allow us to modify the way in which an action is executed. Name a few action filters in mvc? Authorize ChildActionOnly HandleError OutputCache RequireHttps ValidateInput ValidateAntiForgeryToken We will discuss each of these action filters in detail in our upcoming videos. Can you create a custom action filter in mvc? Yes, we will discuss this in a later video session.
Views: 89878 kudvenkat
Part 48   C# Tutorial   Difference between Types and Type Members
 
05:49
Tags c# endregion name c# region example #endregion directive expected c# asp.net region c# c# collapsible region #region c# syntax c# expand collapse code what are types in c# type members in c# c# type access modifiers visual studio code regions In this video we will discuss The difference between Types and Type Members Organising code with regions Text version of the video http://csharp-video-tutorials.blogspot.com/2012/07/part-48-c-tutorial-difference-between.html Slides http://csharp-video-tutorials.blogspot.com/2013/08/part-48-difference-between-types-and.html All C# Text Articles http://csharp-video-tutorials.blogspot.co.uk/p/free-c-video-tutorial-for-beginners.html All C# Slides http://csharp-video-tutorials.blogspot.com/p/c.html Complete C# tutorial https://www.youtube.com/playlist?list=PLAC325451207E3105 All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 97497 kudvenkat
C# abstract class virtual method
 
04:57
Text version of the video http://csharp-video-tutorials.blogspot.com/2016/10/c-abstract-class-virtual-method.html Slides http://csharp-video-tutorials.blogspot.com/2016/10/c-abstract-class-virtual-method_24.html All C# Interview Questions Text Articles & Slides http://csharp-video-tutorials.blogspot.com/p/c-interview-questions.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 48783 kudvenkat
Part 88   ThreadStart delegate
 
05:19
Text version of the video http://csharp-video-tutorials.blogspot.com/2014/03/part-88-threadstart-delegate_9.html Slides http://csharp-video-tutorials.blogspot.com/2014/03/part-88-threadstart-delegate.html All C# Text Articles http://csharp-video-tutorials.blogspot.com/2016/09/aspnet-web-api-tutorial-for-beginners.html All C# Slides http://csharp-video-tutorials.blogspot.com/p/c.html All Dot Net and SQL Server Tutorials https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd In this video we will discuss the ThreadStart delegate. This is continuation to Part 87. Please watch Part 87 before proceeding. Let us understand the purpose of ThreadStart delegate with an example. using System; using System.Threading; namespace ThreadStartDelegateExample { class Program { public static void Main() { Thread T1 = new Thread(Number.PrintNumbers); T1.Start(); } } class Number { public static void PrintNumbers() { for (int i = 1; i [= 10; i++) { Console.WriteLine(i); } } } } In the example above to create a THREAD, we created an instance of Thread class and to it's constructor we have passed the name of the function that we want the thread to execute. Thread T1 = new Thread(Number.PrintNumbers); We can rewrite the above line using ThreadStart delegate as shown below. Thread T1 = new Thread(new ThreadStart(Number.PrintNumbers)); Why a delegate need to be passed as a parameter to the Thread class constructor? The purpose of creating a Thread is to execute a function. A delegate is a type safe function pointer, meaning it points to a function that the thread has to execute. In short, all threads require an entry point to start execution. Any thread you create will need an explicitly defined entry point i.e a pointer to the function where they should begin execution. So threads always require a delegate. In the code below, we are not explicitly creating the ThreadStart delegate, then how is it working here? Thread T1 = new Thread(Number.PrintNumbers); It's working in spite of not creating the ThreadStart delegate explicitly because the framework is doing it automatically for us. We can also rewrite the same line using delagate() keyword as shown below. Thread T1 = new Thread(delegate() { Number.PrintNumbers(); }); We can also rewrite the same line using lambda expression as shown below. Thread T1 = new Thread(() =] Number.PrintNumbers()); Thread function need not be a static function always. It can also be a non-static function. In case of non-static function we have to create an instance of the class. An example is shown below. class Program { public static void Main() { Number number = new Number(); Thread T1 = new Thread(number.PrintNumbers); T1.Start(); } } class Number { public void PrintNumbers() { for (int i = 1; i [= 10; i++) { Console.WriteLine(i); } } }
Views: 83495 kudvenkat
sql server concurrent transactions
 
07:34
Text version of the video http://csharp-video-tutorials.blogspot.com/2015/08/sql-server-concurrent-transactions.html Slides http://csharp-video-tutorials.blogspot.com/2015/08/sql-server-concurrent-transactions_14.html All SQL Server Text Articles http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.html All SQL Server Slides http://csharp-video-tutorials.blogspot.com/p/sql-server.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists In this video we will discuss 1. What a transaction is 2. The problems that might arise when tarnsactions are run concurrently 3. The different transaction isolation levels provided by SQL Server to address concurrency side effects First let us understand what is a transaction A transaction is a group of commands that change the data stored in a database. A transaction, is treated as a single unit of work. A transaction ensures that, either all of the commands succeed, or none of them. If one of the commands in the transaction fails, all of the commands fail, and any data that was modified in the database is rolled back. In this way, transactions maintain the integrity of data in a database. Example : The following transaction ensures that both the UPDATE statements succeed or both of them fail if there is a problem with one UPDATE statement. -- Transfer $100 from Mark to Mary Account BEGIN TRY BEGIN TRANSACTION UPDATE Accounts SET Balance = Balance - 100 WHERE Id = 1 UPDATE Accounts SET Balance = Balance + 100 WHERE Id = 2 COMMIT TRANSACTION PRINT 'Transaction Committed' END TRY BEGIN CATCH ROLLBACK TRANSACTION PRINT 'Transaction Rolled back' END CATCH Databases are powerful systems and are potentially used by many users or applications at the same time. Allowing concurrent transactions is essential for performance but may introduce concurrency issues when two or more transactions are working with the same data at the same time. Some of the common concurrency problems Dirty Reads Lost Updates Nonrepeatable Reads Phantom Reads We will discuss what these problems are in detail with examples in our upcomning videos One way to solve all these concurrency problems is by allowing only one user to execute, only one transaction at any point in time. Imagine what could happen if you have a large database with several users who want to execute several transactions. All the transactions get queued and they may have to wait a long time before they could get a chance to execute their transactions. So you are getting poor performance and the whole purpose of having a powerful database system is defeated if you serialize access this way. At this point you might be thinking, for best performance let us allow all transactions to execute concurrently. The problem with this approach is that it may cause all sorts of concurrency problems (i.e Dirty Reads, Lost Updates, Nonrepeatable Reads, Phantom Reads) if two or more transactions work with the same data at the same time. SQL Server provides different transaction isolation levels, to balance concurrency problems and performance depending on our application needs. Read Uncommitted Read Committed Repeatable Read Snapshot Serializable The isolation level that you choose for your transaction, defines the degree to which one transaction must be isolated from resource or data modifications made by other transactions. Depending on the isolation level you have chosen you get varying degrees of performance and concurrency problems. The table here has the list of isoltaion levels along with concurrency side effects. Isolation Level Dirty Reads Lost Update Nonrepeatable Reads Phantom Reads Read Uncommitted Yes Yes Yes Yes Read Committed No Yes Yes Yes Repeatable Read No No No Yes Snapshot No No No No Serializable No No No No If you choose the lowest isolation level (i.e Read Uncommitted), it increases the number of concurrent transactions that can be executed at the same time, but the down side is you have all sorts of concurrency issues. On the other hand if you choose the highest isolation level (i.e Serializable), you will have no concurrency side effects, but the downside is that, this will reduce the number of concurrent transactions that can be executed at the same time if those transactions work with same data. In our upcoming videos we will discuss the concurrency problems in detail with examples
Views: 60925 kudvenkat
Group by in sql server - Part 11
 
17:44
In this video we will learn 1. Grouping rows using GROUP BY 2. Filtering Groups 3. Difference between WHERE and HAVING clause in sql server Text version of the video http://csharp-video-tutorials.blogspot.com/2012/08/group-by-part-11.html Slides http://csharp-video-tutorials.blogspot.com/2013/08/part-11-group-by.html All SQL Server Text Articles http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.html All SQL Server Slides http://csharp-video-tutorials.blogspot.com/p/sql-server.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 384865 kudvenkat
Union and union all in sql server   Part 17
 
12:41
In this video we will learn about the 1. Purpose of UNION and UNION ALL 2. Difference between UNION and UNION ALL 3. Difference between JOIN and UNION Text version of the video http://csharp-video-tutorials.blogspot.com/2012/08/union-and-union-all-in-sql-server-part.html Slides http://csharp-video-tutorials.blogspot.com/2013/08/part-17-union-and-union-all.html All SQL Server Text Articles http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.html All SQL Server Slides http://csharp-video-tutorials.blogspot.com/p/sql-server.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 232533 kudvenkat
Pivot in sql server 2008   Part 54
 
12:25
In this video we will learn about pivot operator. Pivot is a sql server operator that can be used to turn unique values from one column, into multiple columns in the output, there by effectively rotating a table. Text version of the video http://csharp-video-tutorials.blogspot.com/2012/10/pivot-operator-in-sql-server-part-54.html Slides http://csharp-video-tutorials.blogspot.com/2013/09/part-54-pivot-in-sql-server-2008.html All SQL Server Text Articles http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.html All SQL Server Slides http://csharp-video-tutorials.blogspot.com/p/sql-server.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 161849 kudvenkat
Angular promises vs observables
 
09:47
Text version of the video http://csharp-video-tutorials.blogspot.com/2017/09/angular-promises-vs-observables.html Slides http://csharp-video-tutorials.blogspot.com/2017/09/angular-promises-vs-observables_5.html Angular 2 Tutorial playlist https://www.youtube.com/playlist?list=PL6n9fhu94yhWqGD8BuKuX-VTKqlNBj-m6 Angular 2 Text articles and slides http://csharp-video-tutorials.blogspot.com/2017/06/angular-2-tutorial-for-beginners_12.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists In this video we will discuss the differences between promises and observables. In Angular 2, to work with asynchronous data we can use either Promises or Observables. In our previous videos in this series, we discussed using both Observables and Promises. There are several differences between Promises and Observables. In this video let's discuss these differences. A Promise emits a single value where as an Observable emits multiple values over a period of time. You can think of an Observable like a stream which emits multiple items over a period of time and the same callback function is called for each item emitted. So with an Observable we can use the same API to handle asynchronous data whether that data is emitted as a single value or multiple values over a period of time. A Promise is not lazy where as an Observable is Lazy. A Promise cannot be cancelled where as an Observable can be cancelled using the unsubscribe() method Observable provides operators like map, forEach, filter, reduce, retry, retryWhen etc
Views: 44732 kudvenkat
Self join in sql server - Part 14
 
11:19
In this video we will learn about 1. Self Join - Joining a table with itself 2. Self Join is not a different type of join. It can be classified as Inner Self Join, Outer Self Join (Left, Right and Full), or Cross Self Join. Text version of the video http://csharp-video-tutorials.blogspot.com/2012/08/self-join-in-sql-server-part-14.html Slides http://csharp-video-tutorials.blogspot.com/2013/08/part-14-self-join.html All SQL Server Text Articles http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.html All SQL Server Slides http://csharp-video-tutorials.blogspot.com/p/sql-server.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 311401 kudvenkat
Difference between cube and rollup in SQL Server
 
05:38
difference between cube and rollup in sql server 2008 sql server rollup vs cube difference between cube and rollup in sql server 2005 rollup and cube in sql server 2005 In this video we will discuss the difference between cube and rollup in SQL Server. CUBE generates a result set that shows aggregates for all combinations of values in the selected columns, where as ROLLUP generates a result set that shows aggregates for a hierarchy of values in the selected columns. Let us understand this difference with an example. ROLLUP(Continent, Country, City) produces Sum of Salary for the following hierarchy Continent, Country, City Continent, Country, Continent () CUBE(Continent, Country, City) produces Sum of Salary for all the following column combinations Continent, Country, City Continent, Country, Continent, City Continent Country, City Country, City () SELECT Continent, Country, City, SUM(SaleAmount) AS TotalSales FROM Sales GROUP BY ROLLUP(Continent, Country, City) SELECT Continent, Country, City, SUM(SaleAmount) AS TotalSales FROM Sales GROUP BY CUBE(Continent, Country, City) You won't see any difference when you use ROLLUP and CUBE on a single column. Both the following queries produces the same output. SELECT Continent, Sum(SaleAmount) AS TotalSales FROM Sales GROUP BY ROLLUP(Continent) -- OR SELECT Continent, SUM(SaleAmount) AS TotalSales FROM Sales GROUP BY CUBE(Continent) Text version of the video http://csharp-video-tutorials.blogspot.com/2015/09/difference-between-cube-and-rollup-in.html Slides http://csharp-video-tutorials.blogspot.com/2015/09/difference-between-cube-and-rollup-in_24.html All SQL Server Text Articles http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.html All SQL Server Slides http://csharp-video-tutorials.blogspot.com/p/sql-server.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 38012 kudvenkat
Difference between rank dense rank and row number in SQL
 
04:43
row_number vs rank vs dense_rank in sql server dense_rank vs rank vs row_number sql server rank dense_rank row_number in sql server In this video we will discuss the similarities and difference between RANK, DENSE_RANK and ROW_NUMBER functions in SQL Server. Similarities between RANK, DENSE_RANK and ROW_NUMBER functions Returns an increasing integer value starting at 1 based on the ordering of rows imposed by the ORDER BY clause (if there are no ties) ORDER BY clause is required PARTITION BY clause is optional When the data is partitioned, the integer value is reset to 1 when the partition changes SQL Script to create the Employees table Create Table Employees ( Id int primary key, Name nvarchar(50), Gender nvarchar(10), Salary int ) Go Insert Into Employees Values (1, 'Mark', 'Male', 6000) Insert Into Employees Values (2, 'John', 'Male', 8000) Insert Into Employees Values (3, 'Pam', 'Female', 4000) Insert Into Employees Values (4, 'Sara', 'Female', 5000) Insert Into Employees Values (5, 'Todd', 'Male', 3000) Notice that no two employees in the table have the same salary. So all the 3 functions RANK, DENSE_RANK and ROW_NUMBER produce the same increasing integer value when ordered by Salary column. SELECT Name, Salary, Gender, ROW_NUMBER() OVER (ORDER BY Salary DESC) AS RowNumber, RANK() OVER (ORDER BY Salary DESC) AS [Rank], DENSE_RANK() OVER (ORDER BY Salary DESC) AS DenseRank FROM Employees You will only see the difference when there ties. Now let's include duplicate values for Salary column. To do this First delete existing data from the Employees table DELETE FROM Employees Insert new rows with duplicate valuse for Salary column Insert Into Employees Values (1, 'Mark', 'Male', 8000) Insert Into Employees Values (2, 'John', 'Male', 8000) Insert Into Employees Values (3, 'Pam', 'Female', 8000) Insert Into Employees Values (4, 'Sara', 'Female', 4000) Insert Into Employees Values (5, 'Todd', 'Male', 3500) Notice 3 employees have the same salary 8000. When you execute the following query you can clearly see the difference between RANK, DENSE_RANK and ROW_NUMBER functions. SELECT Name, Salary, Gender, ROW_NUMBER() OVER (ORDER BY Salary DESC) AS RowNumber, RANK() OVER (ORDER BY Salary DESC) AS [Rank], DENSE_RANK() OVER (ORDER BY Salary DESC) AS DenseRank FROM Employees Difference between RANK, DENSE_RANK and ROW_NUMBER functions ROW_NUMBER : Returns an increasing unique number for each row starting at 1, even if there are duplicates. RANK : Returns an increasing unique number for each row starting at 1. When there are duplicates, same rank is assigned to all the duplicate rows, but the next row after the duplicate rows will have the rank it would have been assigned if there had been no duplicates. So RANK function skips rankings if there are duplicates. DENSE_RANK : Returns an increasing unique number for each row starting at 1. When there are duplicates, same rank is assigned to all the duplicate rows but the DENSE_RANK function will not skip any ranks. This means the next row after the duplicate rows will have the next rank in the sequence. Text version of the video http://csharp-video-tutorials.blogspot.com/2015/10/difference-between-rank-denserank-and.html Slides http://csharp-video-tutorials.blogspot.com/2015/10/difference-between-rank-denserank-and_2.html All SQL Server Text Articles http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.html All SQL Server Slides http://csharp-video-tutorials.blogspot.com/p/sql-server.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 35484 kudvenkat
Difference between union intersect and except in sql server
 
03:50
difference between union and union all difference between intersect and union difference between intersect and except in sql server union vs union all sql server union vs intersect sql server intersect vs except In this video we will discuss the difference between union intersect and except in sql server with examples. UNION operator returns all the unique rows from both the left and the right query. UNION ALL included the duplicates as well. INTERSECT operator retrieves the common unique rows from both the left and the right query. EXCEPT operator returns unique rows from the left query that aren’t in the right query’s results. UNION operator returns all the unique rows from both the queries. Notice the duplicates are removed. Select Id, Name, Gender from TableA UNION Select Id, Name, Gender from TableB UNION ALL operator returns all the rows from both the queries, including the duplicates. Select Id, Name, Gender from TableA UNION ALL Select Id, Name, Gender from TableB INTERSECT operator retrieves the common unique rows from both the left and the right query. Notice the duplicates are removed. Select Id, Name, Gender from TableA INTERSECT Select Id, Name, Gender from TableB EXCEPT operator returns unique rows from the left query that aren’t in the right query’s results. Select Id, Name, Gender from TableA EXCEPT Select Id, Name, Gender from TableB If you wnat the rows that are present in Table B but not in Table A, reverse the queries. Select Id, Name, Gender from TableB EXCEPT Select Id, Name, Gender from TableA For all these 3 operators to work the following 2 conditions must be met The number and the order of the columns must be same in both the queries The data types must be same or at least compatible For example, if the number of columns are different, you will get the following error Msg 205, Level 16, State 1, Line 1 All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists. Text version of the video http://csharp-video-tutorials.blogspot.com/2015/09/difference-between-union-intersect-and.html Slides http://csharp-video-tutorials.blogspot.com/2015/09/difference-between-union-intersect-and_7.html All SQL Server Text Articles http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.html All SQL Server Slides http://csharp-video-tutorials.blogspot.com/p/sql-server.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 32606 kudvenkat
Views in sql server   Part 39
 
14:51
In this video we will learn about 1. What is a view 2. Creating example views 3. Advantages of using views Text version of the video http://csharp-video-tutorials.blogspot.com/2012/09/views-in-sql-server-part-39.html Slides http://csharp-video-tutorials.blogspot.com/2013/09/part-39-views-in-sql-server.html All SQL Server Text Articles http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.html All SQL Server Slides http://csharp-video-tutorials.blogspot.com/p/sql-server.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 258072 kudvenkat
Rank and Dense Rank in SQL Server
 
10:08
rank and dense_rank example difference between rank and dense_rank with example rank vs dense_rank in sql server 2008 sql server difference between rank and dense_rank In this video we will discuss Rank and Dense_Rank functions in SQL Server Rank and Dense_Rank functions Introduced in SQL Server 2005 Returns a rank starting at 1 based on the ordering of rows imposed by the ORDER BY clause ORDER BY clause is required PARTITION BY clause is optional When the data is partitioned, rank is reset to 1 when the partition changes Difference between Rank and Dense_Rank functions Rank function skips ranking(s) if there is a tie where as Dense_Rank will not. For example : If you have 2 rows at rank 1 and you have 5 rows in total. RANK() returns - 1, 1, 3, 4, 5 DENSE_RANK returns - 1, 1, 2, 3, 4 Syntax : RANK() OVER (ORDER BY Col1, Col2, ...) DENSE_RANK() OVER (ORDER BY Col1, Col2, ...) RANK() and DENSE_RANK() functions without PARTITION BY clause : In this example, data is not partitioned, so RANK() function provides a consecutive numbering except when there is a tie. Rank 2 is skipped as there are 2 rows at rank 1. The third row gets rank 3. DENSE_RANK() on the other hand will not skip ranks if there is a tie. The first 2 rows get rank 1. Third row gets rank 2. SELECT Name, Salary, Gender, RANK() OVER (ORDER BY Salary DESC) AS [Rank], DENSE_RANK() OVER (ORDER BY Salary DESC) AS DenseRank FROM Employees RANK() and DENSE_RANK() functions with PARTITION BY clause : Notice when the partition changes from Female to Male Rank is reset to 1 SELECT Name, Salary, Gender, RANK() OVER (PARTITION BY Gender ORDER BY Salary DESC) AS [Rank], DENSE_RANK() OVER (PARTITION BY Gender ORDER BY Salary DESC) AS DenseRank FROM Employees Use case for RANK and DENSE_RANK functions : Both these functions can be used to find Nth highest salary. However, which function to use depends on what you want to do when there is a tie. Let me explain with an example. If there are 2 employees with the FIRST highest salary, there are 2 different business cases 1. If your business case is, not to produce any result for the SECOND highest salary, then use RANK function 2. If your business case is to return the next Salary after the tied rows as the SECOND highest Salary, then use DENSE_RANK function Since we have 2 Employees with the FIRST highest salary. Rank() function will not return any rows for the SECOND highest Salary. WITH Result AS ( SELECT Salary, RANK() OVER (ORDER BY Salary DESC) AS Salary_Rank FROM Employees ) SELECT TOP 1 Salary FROM Result WHERE Salary_Rank = 2 Though we have 2 Employees with the FIRST highest salary. Dense_Rank() function returns, the next Salary after the tied rows as the SECOND highest Salary WITH Result AS ( SELECT Salary, DENSE_RANK() OVER (ORDER BY Salary DESC) AS Salary_Rank FROM Employees ) SELECT TOP 1 Salary FROM Result WHERE Salary_Rank = 2 You can also use RANK and DENSE_RANK functions to find the Nth highest Salary among Male or Female employee groups. The following query finds the 3rd highest salary amount paid among the Female employees group WITH Result AS ( SELECT Salary, Gender, DENSE_RANK() OVER (PARTITION BY Gender ORDER BY Salary DESC) AS Salary_Rank FROM Employees ) SELECT TOP 1 Salary FROM Result WHERE Salary_Rank = 3 AND Gender = 'Female' Text version of the video http://csharp-video-tutorials.blogspot.com/2015/10/rank-and-denserank-in-sql-server.html Slides http://csharp-video-tutorials.blogspot.com/2015/10/rank-and-denserank-in-sql-server_1.html All SQL Server Text Articles http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.html All SQL Server Slides http://csharp-video-tutorials.blogspot.com/p/sql-server.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 63233 kudvenkat
Two way databinding in AngularJS
 
07:30
2 way data binding angularjs angularjs directive two way binding angularjs two way binding example ng-model directive example angularjs ng-model example In this video we will discuss, Two way databinding in AngularJS. Along the way we also discuss one of the very useful directive in angular ng-model. One of the most useful feature in AngularJS is the Two Way Data-Binding. The Two Way Data-Binding, keeps the model and the view in sync at all times, that is a change in the model updates the view and a change in the view updates the model. When the model changes the view is automatically updated. This is achieved using the data binding expression in the view. How about the other way round. How to keep the model up to date when the view changes. That's exactly is the purpose of ng-model directive. In the html below, notice the input element is decorated with ng-model directive. This ensures that whenever the value in the textbox is changed, angular will automatically update the message property of the $scope object. This means the ng-model directive automatically takes the form values and updates the model. The binding expression does the opposite, i.e whenever the model changes the view is automatically updated. Because of the two way data binding provided by angular, as you type in the textbox, the value is immediately displayed on the view just below the textbox. This two way binding feature provided by angular, eliminates the need to write any custom code to move data from the model to the view or from the view to the model. ng-model directive can be used with the following 3 html elements input select textarea Two way binding example with complex object is also discussed. Link for all dot net and sql server video tutorial playlists https://www.youtube.com/user/kudvenkat/playlists?sort=dd&view=1 Link for slides, code samples and text version of the video http://csharp-video-tutorials.blogspot.com/2015/11/two-way-databinding-in-angularjs_3.html
Views: 359804 kudvenkat
Part 59 C# Tutorial Difference between Convert ToString and ToString
 
05:16
Tags c# convert string null to empty c# tostring object reference not set to an instance of an object convert null to empty string c# c# tostring null value c# tostring null object c# tostring nullreferenceexception c# tostring null empty c# convert.tostring null .net nullable tostring .net convert.tostring null .net tostring null .net convert.tostring vs tostring tostring vs convert.tostring in c# In this video we will understand the difference between static Convert.ToString() method and instance ToString() method C#, SQL Server, WCF, MVC and ASP .NET video tutorials for beginners https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd Complete 60 part c# series: www.youtube.com/playlist?list=PLAC325451207E3105&feature=view_all My Blog: www.csharp-video-tutorials.blogspot.com
Views: 78738 kudvenkat
Installing aspnet mvc - Part 1
 
02:15
Text version of the video http://csharp-video-tutorials.blogspot.com/2013/04/installing-aspnet-mvc-part-1.html Slides http://csharp-video-tutorials.blogspot.com/2013/09/part-1-installing-aspnet-mvc.html All ASP .NET MVC Text Articles http://csharp-video-tutorials.blogspot.com/p/aspnet-mvc-tutorial-for-beginners.html All ASP .NET MVC Slides http://csharp-video-tutorials.blogspot.com/p/aspnet-mvc-slides.html ASP.NET MVC Playlist https://www.youtube.com/playlist?list=PL4cyC4G0M1RQAV0xCaEjfwAeaFaUuHXuf All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists In this video we will discuss about installing asp.net mvc. Before installing asp.net mvc, first let's determine what version is already installed. Go to "Control Panel" and click on "Programs and Features". If you want to create asp.net mvc 3 or 4 applications, then please download and install asp.net mvc 3 and 4 from the following locations. ASP.NET MVC 3 http://www.asp.net/mvc/mvc3 ASP.NET MVC 4 http://www.asp.net/mvc/mvc4 When you create a new project, make sure you have .NET Framework 4 selected in the drop down list. If you have any other earlier .net framework versions selected, then ASP.NET MVC 3 Web Application and ASP.NET MVC 4 Web Application templates will not be available.
Views: 1412050 kudvenkat
Temporary tables in SQL Server   Part 34
 
15:17
In this video we will learn about 1. What are temporary tables 2. The 2 different types of temporary tables -- Local Temporary Tables and Global Temporary tables 3. Difference between local and global temp tables Text version of the video http://csharp-video-tutorials.blogspot.com/2012/09/temporary-tables-in-sql-server-part-34.html Slides http://csharp-video-tutorials.blogspot.com/2013/08/part-34-temporary-tables.html All SQL Server Text Articles http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.html All SQL Server Slides http://csharp-video-tutorials.blogspot.com/p/sql-server.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 159176 kudvenkat
DotNet Program Execution
 
18:00
C#, SQL Server, WCF, MVC and ASP .NET video tutorials for beginners http://www.youtube.com/user/kudvenkat/playlists My Blog: www.csharp-video-tutorials.blogspot.co.uk My Channel: www.youtube.com/user/kudvenkat In this video we will learn 1. .NET application execution 2. Understand Managed code and Unmanaged code 3. Intermediate language 4. Advantages of CLR
Views: 367512 kudvenkat
Part 1   How to find nth highest salary in sql
 
11:45
Link for all dot net and sql server video tutorial playlists http://www.youtube.com/user/kudvenkat/playlists Link for slides, code samples and text version of the video http://csharp-video-tutorials.blogspot.com/2014/05/part-1-how-to-find-nth-highest-salary_17.html This is a very common SQL Server Interview Question. There are several ways of finding the nth highest salary. By the end of this video, we will be able to answer all the following questions as well. How to find nth highest salary in SQL Server using a Sub-Query How to find nth highest salary in SQL Server using a CTE How to find the 2nd, 3rd or 15th highest salary Let's use the following Employees table for this demo Use the following script to create Employees table Create table Employees ( ID int primary key identity, FirstName nvarchar(50), LastName nvarchar(50), Gender nvarchar(50), Salary int ) GO Insert into Employees values ('Ben', 'Hoskins', 'Male', 70000) Insert into Employees values ('Mark', 'Hastings', 'Male', 60000) Insert into Employees values ('Steve', 'Pound', 'Male', 45000) Insert into Employees values ('Ben', 'Hoskins', 'Male', 70000) Insert into Employees values ('Philip', 'Hastings', 'Male', 45000) Insert into Employees values ('Mary', 'Lambeth', 'Female', 30000) Insert into Employees values ('Valarie', 'Vikings', 'Female', 35000) Insert into Employees values ('John', 'Stanmore', 'Male', 80000) GO To find the highest salary it is straight forward. We can simply use the Max() function as shown below. Select Max(Salary) from Employees To get the second highest salary use a sub query along with Max() function as shown below. Select Max(Salary) from Employees where Salary [ (Select Max(Salary) from Employees) To find nth highest salary using Sub-Query SELECT TOP 1 SALARY FROM ( SELECT DISTINCT TOP N SALARY FROM EMPLOYEES ORDER BY SALARY DESC ) RESULT ORDER BY SALARY To find nth highest salary using CTE WITH RESULT AS ( SELECT SALARY, DENSE_RANK() OVER (ORDER BY SALARY DESC) AS DENSERANK FROM EMPLOYEES ) SELECT TOP 1 SALARY FROM RESULT WHERE DENSERANK = N To find 2nd highest salary we can use any of the above queries. Simple replace N with 2. Similarly, to find 3rd highest salary, simple replace N with 3. Please Note: On many of the websites, you may have seen that, the following query can be used to get the nth highest salary. The below query will only work if there are no duplicates. WITH RESULT AS ( SELECT SALARY, ROW_NUMBER() OVER (ORDER BY SALARY DESC) AS ROWNUMBER FROM EMPLOYEES ) SELECT SALARY FROM RESULT WHERE ROWNUMBER = 3
Views: 741416 kudvenkat
Window functions in SQL Server
 
11:00
sql server window function example window function sql server example sql server rows range clause sql server rows between 1 preceding and 1 following In this video we will discuss window functions in SQL Server In SQL Server we have different categories of window functions Aggregate functions - AVG, SUM, COUNT, MIN, MAX etc.. Ranking functions - RANK, DENSE_RANK, ROW_NUMBER etc.. Analytic functions - LEAD, LAG, FIRST_VALUE, LAST_VALUE etc... OVER Clause defines the partitioning and ordering of a rows (i.e a window) for the above functions to operate on. Hence these functions are called window functions. The OVER clause accepts the following three arguments to define a window for these functions to operate on. ORDER BY : Defines the logical order of the rows PARTITION BY : Divides the query result set into partitions. The window function is applied to each partition separately. ROWSor RANGE clause : Further limits the rows within the partition by specifying start and end points within the partition. The default for ROWS or RANGE clause is RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW Let us understand the use of ROWS or RANGE clause with an example. Compute average salary and display it against every employee We might think the following query would do the job. SELECT Name, Gender, Salary, AVG(Salary) OVER(ORDER BY Salary) AS Average FROM Employees As you can see from the result, the above query does not produce the overall salary average. It produces the average of the current row and the rows preceeding the current row. This is because, the default value of ROWS or RANGE clause (RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) is applied. To fix this, provide an explicit value for ROWS or RANGE clause as shown below. ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING tells the window function to operate on the set of rows starting from the first row in the partition to the last row in the partition. SELECT Name, Gender, Salary, AVG(Salary) OVER(ORDER BY Salary ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS Average FROM Employees The same result can also be achieved by using RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING Well, what is the difference between ROWS and RANGE We will discuss this in a later video The following query can be used if you want to compute the average salary of 1. The current row 2. One row PRECEDING the current row and 3. One row FOLLOWING the current row SELECT Name, Gender, Salary, AVG(Salary) OVER(ORDER BY Salary ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS Average FROM Employees Text version of the video http://csharp-video-tutorials.blogspot.com/2015/10/window-functions-in-sql-server.html Slides http://csharp-video-tutorials.blogspot.com/2015/10/window-functions-in-sql-server_7.html All SQL Server Text Articles http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.html All SQL Server Slides http://csharp-video-tutorials.blogspot.com/p/sql-server.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 49712 kudvenkat
Async and await in C# example
 
11:56
In this video we will discuss async and await keywords and their use with an example. Text version of the video http://csharp-video-tutorials.blogspot.com/2016/10/async-and-await-in-c-example.html Slides http://csharp-video-tutorials.blogspot.com/2016/10/async-and-await-in-c-example_31.html All C# Text Articles http://csharp-video-tutorials.blogspot.com/p/free-c-video-tutorial-for-beginners.html All C# Slides http://csharp-video-tutorials.blogspot.com/p/c.html All C# Videos https://www.youtube.com/playlist?list=PLAC325451207E3105 All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 140955 kudvenkat
html attribute vs dom property
 
05:08
Text version of the video http://csharp-video-tutorials.blogspot.com/2017/06/html-attribute-vs-dom-property.html Slides http://csharp-video-tutorials.blogspot.com/2017/06/html-attribute-vs-dom-property_20.html Angular 2 Tutorial playlist https://www.youtube.com/playlist?list=PL6n9fhu94yhWqGD8BuKuX-VTKqlNBj-m6 Angular 2 Text articles and slides http://csharp-video-tutorials.blogspot.com/2017/06/angular-2-tutorial-for-beginners_12.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists In this video we will discuss the difference between HTML attribute and DOM property. What is DOM DOM stands for Document Object Model. When a browser loads a web page, the browser creates a Document Object Model of that page. In simple terms you can think of the DOM as an application programming interface (API) for HTML, and we can use programming languages like JavaScript, or JavaScript frameworks like Angular to access and manipulate the HTML using their corresponding DOM objects. In other words DOM contains the HTML elements as objects, their properties, methods and events and it is a standard for accessing, modifying, adding or deleting HTML elements. In the previous 2 videos we discussed interpolation and property binding in Angular. Interpolation example [button disabled='{{isDisabled}}']Click Me[/button] Property binding example [button [disabled]='isDisabled']Click Me[/button] If you notice the above 2 examples, it looks like we are binding to the Button's disabled attribute. This is not true. We are actually binding to the disabled property of the button object. Angular data-binding is all about binding to DOM object properties and not HTML element attributes. What is the difference between HTML element attribute and DOM property Attributes are defined by HTML, where as properties are defined by the DOM. Attributes initialize DOM properties. Once the initialization complete, the attributes job is done. Property values can change, where as attribute values can't. Let's prove this point - Property values change, but the attribute values don't with an example. In the example below, we have set the value attribute of the input element to Tom. [input id='inputId' type='text' value='Tom'] At this point, run the web page and in the textbox you will see 'Tom' as the value. Launch the browser developer tools. On the 'Console' tab, use the getattribute() method and value property of the input element to get the attribute and property values. Notice at the moment both have the value 'Tom' Change the value in the textbox to Mary. Notice now, when we query for the attribute and property values, the attribute value is still Tom but the property value is Mary. So this proves the point - Property values change, where as attribute values don't. So it is important to keep in mind that, HTML attributes and the DOM properties are different things. Angular binding works with properties and events, and not attributes. The role of attributes is to initialize element properties and their job is done.
Views: 76994 kudvenkat
Part 72   HandleError attribute in mvc
 
10:10
Link for code samples used in the demo http://csharp-video-tutorials.blogspot.com/2013/08/part-72-handleerror-attribute-in-mvc.html Link for csharp, asp.net, ado.net, dotnet basics, mvc and sql server video tutorial playlists http://www.youtube.com/user/kudvenkat/playlists In this video, we will discuss HandleError attribute in asp.net mvc. HandleErrorAttribute is used to display friendly error pages to end user when there is an unhandled exception. Let us understand this with an example. Step 1: Create a blank asp.net mvc 4 application. Step 2: Add a HomeController. Copy and paste the following code. public ActionResult Index() { throw new Exception("Something went wrong"); } Notice that, the Index() action method throws an exception. As this exception is not handled, when you run the application, you will get the default "yellow screen of death" which does not make sense to the end user. Now, let us understand replacing this yellow screen of death, with a friendly error page. Step 3: Enable custom errors in web.config file, that is present in the root directory of your mvc application. "customErrors" element must be nested under "[system.web]" [customErrors mode="On"] [/customErrors] Step 4: Add "Shared" folder under "Views" folder. Add Error.cshtml view inside this folder. Paste the following HTML in Error.cdhtml view. [h2]An unknown problem has occured, please contact Admin[/h2] Run the application, and notice that, you are redirected to the friendly "Error" view, instead of the generic "Yellow screen of death". We did not apply HandleError attribute anywhere. So how did all this work? HandleErrorAttribute is added to the GlobalFilters collection in global.asax. When a filter is added to the GlobalFilters collection, then it is applicable for all controllers and their action methods in the entire application. Right click on "RegisterGlobalFilters()" method in Global.asax, and select "Go To Definition" and you can find the code that adds "HandleErrorAttribute" to GlobalFilterCollection. public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); } Is the friendly error page displayed for HTTP status code 404? No, but there is a way to display the friendly error page. In the HomeController, we do not have List() action method. So, if a user navigates to /Home/List, we get an error - The resource cannot be found. HTTP 404. To display a friendly error page in this case Step 1: Add "ErrorController" to controllers folder. Copy and paste the following code. public class ErrorController : Controller { public ActionResult NotFound() { return View(); } } Step 2: Right click on "Shared" folder and add "NotFound.cshtml" view. Copy and paste the following code. [h2]Please check the URL. The page you are looking for cannot be found[/h2] Step 3: Change "customErrors" element in web.config as shown below. [customErrors mode="On"] [error statusCode="404" redirect="~/Error/NotFound"/] [/customErrors] Make sure to replace [ with LESSTHAN and ] with GREATERTHAN symbol.
Views: 89365 kudvenkat
Part 87   What is Unobtrusive JavaScript
 
09:50
Link for code samples used in the demo http://csharp-video-tutorials.blogspot.com/2013/09/part-87-what-is-unobtrusive-javascript.html Link for csharp, asp.net, ado.net, dotnet basics, mvc and sql server video tutorial playlists http://www.youtube.com/user/kudvenkat/playlists What is Unobtrusive JavaScript? Unobtrusive JavaScript, is a JavaScript that is separated from the web site's html markup. There are several benefits of using Unobtrusive JavaScript. Separation of concerns i.e the HTML markup is now clean without any traces of javascript. Page load time is faster. It is also easy to update the code as all the Javascript logic is present in a separate file. We also get, better cache support, as all our JavaScript is now present in a separate file, it can be cached and accessed much faster.
Views: 53545 kudvenkat
Part 7  Models in an mvc application
 
11:15
Text version of the video http://csharp-video-tutorials.blogspot.com/2013/04/part-7-models-in-mvc-application.html Slides http://csharp-video-tutorials.blogspot.com/2013/09/part-7-models-in-mvc-application.html All ASP .NET MVC Text Articles http://csharp-video-tutorials.blogspot.com/p/aspnet-mvc-tutorial-for-beginners.html All ASP .NET MVC Slides http://csharp-video-tutorials.blogspot.com/p/aspnet-mvc-slides.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists In this video we will discuss models in an mvc application. Let's understand models with an example. We want to retrieve an employee information from tblEmployee table and display it in a view. To encapsulate Employee information, add Employee model class to the Models folder. To do this 1. Right click on "Models" folder - Add - Class 2. Name the class as Employee.cs 3. Click "Add" Copy and paste the following code in Employee.cs class file. public class Employee { public int EmployeeId { get; set; } public string Name { get; set; } public string Gender { get; set; } public string City { get; set; } } Now let's Add EmployeeController class to "Controllers" folder. To do this 1. Right click on "Controllers" folder - Add - Controller 2. Use EmployeeController as the name 3. Click "Add" We want to use "Employee" model class in EmployeeController. So copy and paste the following "using" statement in "EmployeeController.cs" using MVCDemo.Models; By default an Index() Action method is created in EmployeeController. Change the name of the function to Details(). Create an instance of Employee class. For now we will hard code Employee data in this class. In a later video session, we will discuss about retrieving employee information from the database table tblEmployee. At this point EmployeeController should look as shown below. public ActionResult Details() { Employee employee = new Employee() { EmployeeId = 101, Name = "John", Gender = "Male", City = "London" }; return View(); } Now, we need to pass the employee model object that we constructed in EmployeeController to a view, so the view can generate the HTML and send it to the requested client. To do this we first need to add a view. To add a view 1. Right click on Details() action method and select "Add View" from the context menu 2. Set a)View Name = Details b)View Engine = Razor c)Select "Create strongly typed view" check box d)From the "Model class" dropdownlist, select "Employee (MVCDemo.Models)" Note: If Employee class is not visible in the dropdownlist, please build your project and then try adding the view again. 3. Finally click "Add" At this point, Details.cshtml should be added to "Employee" folder. Please note that "Employee" folder is automatically created and added to "Views" folder. Copy and paste the following code from my blog http://csharp-video-tutorials.blogspot.com/2013/04/part-7-models-in-mvc-application.html At this point if you run the project, and if you navigate to the following URL, you get a runtime error stating - Object reference not set to an instance of an object. localhost/MVCDemo/Employee/Details To fix this error, pass "Employee" object to the view. The "return" statement in Details() action method need to be modified as shown below. return View(employee); That's it. Run the application and navigate to localhost/MVCDemo/Employee/Details. We should get the output as expected.
Views: 449405 kudvenkat
Part 70   Authorize and AllowAnonymous action filters in mvc
 
07:15
Link for code samples used in the demo http://csharp-video-tutorials.blogspot.com/2013/08/part-70-authorize-and-allowanonymous.html Link for csharp, asp.net, ado.net, dotnet basics, mvc and sql server video tutorial playlists http://www.youtube.com/user/kudvenkat/playlists In this video, we will discuss Authorize and AllowAnonymous action filters in mvc. In ASP.NET MVC, by default, all the controller action methods are accessible to both anonymous and authenticated users. If you want action methods, to be available only for authenticated and authorised users, then use Authorize attribute. Let us understand "Authorize" and "AllowAnonymous" action filters with an example. 1. Create a blank asp.net mvc4 application. Name your application MVCDemo. 2. Right click on the "Controllers" folder and add HomeController. Copy and paste the following code. public class HomeController : Controller { public ActionResult NonSecureMethod() { return View(); } public ActionResult SecureMethod() { return View(); } } 3. Right click on NonSecureMethod() and add a view with name = NonSecureMethod. Similarly add a view with name = SecureMethod. 4. Associate MVCDemo project with IIS. a) Right click on the project name in "solution explorer" and select "Properties" b) Click on "Web" tab c) Select "Use Local IIS Web Server". In the "Project Url" textbox, type - http://localhost/MVCDemo d) Click "Create Virtual Directory" button 5. Open IIS. Expand "Sites" and then "Default Web Site" and select "MVCDemo". Double click on "Authentication" icon. Enable "Anonymous Authentication" and "Windows Authentication", if they are not already enabled. 6. At this point, you will be able to access, both "SecureMethod" and "NonSecureMethod", by visiting the following URLs. http://localhost/MVCDemo/Home/SecureMethod http://localhost/MVCDemo/Home/NonSecureMethod 7. If you want "SecureMethod" to be available only for authenticated users, then decorate it with "Authorize" attribute. [Authorize] public ActionResult SecureMethod() { return View(); } 8. Now, if you navigate to "http://localhost/MVCDemo/Home/SecureMethod", then you will be prompted for your windows credentials. If you don't provide valid windows credentials or if you click cancel, you will get an error - 401 - Unauthorized: Access is denied due to invalid credentials. You do not have permission to view this directory or page using the credentials that you supplied. You should be able to access "NonSecureMethod" 9. Now remove the [Authorize] attribute from SecureMethod(), and apply it on the HomeController. [Authorize] public class HomeController : Controller { public ActionResult NonSecureMethod() { return View(); } public ActionResult SecureMethod() { return View(); } } At this point, "Authorize" attribute is applicable for all action methods in the HomeController. So, only authenticated users will be able to access SecureMethod() and NonSecureMethod(). 10. To allow anonymous access to NonSecureMethod(), apply [AllowAnonymous] attribute. AllowAnonymous attribute is used to skip authorization enforced by Authorize attribute. [AllowAnonymous] public ActionResult NonSecureMethod() { return View(); }
Views: 109078 kudvenkat
Part 15   Exception handling in WCF
 
09:39
Link for code samples used in the demo http://csharp-video-tutorials.blogspot.com/2013/12/part-15-exception-handling-in-wcf_5.html Link for all dot net and sql server video tutorial playlists http://www.youtube.com/user/kudvenkat/playlists When an exception occurs in a WCF service, the service serializes the exception into a SOAP fault, and then sends the SOAP fault to the client. By default unhandled exception details are not included in SOAP faults that are propagated to client applications for security reasons. Instead a generic SOAP fault is returned to the client. For debugging purpose, if you want to include exception details in SOAP faults, enable IncludeExceptionDetailInFaults setting. This can be done in 2 ways as shown below. 1. In the config file using service behavior configuration [behaviors] [serviceBehaviors] [behavior name="inculdeExceptionDetails"] [serviceDebug includeExceptionDetailInFaults="true"/] [/behavior] [/serviceBehaviors] [/behaviors] 2. In code using ServiceBehavior attribute [ServiceBehavior(IncludeExceptionDetailInFaults=true)] public class CalculatorService : ICalculatorService { public int Divide(int Numerator, int Denominator) { return Numerator / Denominator; } } Frequently asked WCF interview questions What happens when an exception occurs in a WCF service? OR What is a SOAP fault? OR How are WCF service exceptions reported to client applications?
Views: 69614 kudvenkat
Part 31 - C# Tutorial - Explicit interfaces implementation.avi
 
12:49
In this part of the c sharp tutorial we will learn about explicit interface implementation. Text version of the video http://csharp-video-tutorials.blogspot.com/2012/06/part-31-c-tutorial-explicit-interface.html Slides http://csharp-video-tutorials.blogspot.com/2013/08/part-31-explicit-interface.html All C# Text Articles http://csharp-video-tutorials.blogspot.co.uk/p/free-c-video-tutorial-for-beginners.html All C# Slides http://csharp-video-tutorials.blogspot.com/p/c.html Complete C# tutorial https://www.youtube.com/playlist?list=PLAC325451207E3105 All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Views: 218515 kudvenkat
Strong naming an assembly
 
14:19
C#, SQL Server, WCF, MVC and ASP .NET video tutorials for beginners http://www.youtube.com/user/kudvenkat/playlists Complete 7 part Dot Net basics video series: http://www.youtube.com/playlist?list=PL8598C97BA1D871C1&feature=view_all My Blog: www.csharp-video-tutorials.blogspot.co.uk My Channel: www.youtube.com/user/kudvenkat In this video we will learn: 1. Strong naming an assembly, that is signing an assembly with strong name using private and public key pair 2. Assembly Versioning 3. Using strong naming tool - sn.exe
Views: 128564 kudvenkat
Angular component lifecycle hooks
 
13:51
Text version of the video http://csharp-video-tutorials.blogspot.com/2017/08/angular-component-lifecycle-hooks.html Slides http://csharp-video-tutorials.blogspot.com/2017/08/angular-component-lifecycle-hooks_1.html Angular 2 Tutorial playlist https://www.youtube.com/playlist?list=PL6n9fhu94yhWqGD8BuKuX-VTKqlNBj-m6 Angular 2 Text articles and slides http://csharp-video-tutorials.blogspot.com/2017/06/angular-2-tutorial-for-beginners_12.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists In this video we will discuss Angular component lifecycle hooks. A component has a lifecycle managed by Angular. Angular 1. Creates the component 2. Renders the component 3. Creates and renders the component children 4. Checks when the component data-bound properties change, and 5. Destroys the component before removing it from the DOM To tap into and react when these life cycle events occur, angular offers several lifecycle hooks The 3 most commonly used hooks are ngOnChanges - Executes, every time the value of an input property changes. The hook method receives a SimpleChanges object containing current and previous property values. This is called before ngOnInit. ngOnInit - Executes after the constructor and after ngOnChange hook for the first time. It is most commonly used for component initialisation and retrieving data from a database. ngOnDestroy - Executes just before angular destroys the component and generally used for performing cleanup. There are 3 simple steps to use the Life Cycle Hooks Step 1 : Import the Life Cycle Hook interface. For example, to use ngOnInit() life cycle hook, import OnInit interface. import { OnInit } from '@angular/core'; Step 2 : Make the component class implement the Life Cycle Hook interface, using the implements keyword as shown below. This step is optional, but good to have so you will get editor support and flags errors at compile time if you incorrectly implement the interface method or make any typographical errors. export class SimpleComponent implements OnInit { } Step 3 : Write the implementation code for the life cycle interface method. Each interface has a single hook method whose name is the interface name prefixed with ng. ngOnInit() { console.log('OnInit Life Cycle Hook'); } Let's understand ngOnChanges life cycle hook with a simple example. Here is what we want to do. As soon as the user starts typing into the text box, we want to capture the current and previous value and log it to the browser console. We can very easily achieve this by using the ngOnChanges life cycle hook. ngOnChanges, is called every time the value of an input property of a component changes. So first let's create a SimpleComponent with an input property as shown below. We will continue with the example we worked with in our previous video. Add a new folder in the App folder and name it Others. Add a new TypeScript file to this folder and name it - simple.component.ts. Copy and paste the following code which is commented and self explanatory. // Step 1 : Import OnChanges and SimpleChanges import { Component, Input, OnChanges, SimpleChanges } from '@angular/core'; // The selector "simple" will be used as the directive // where we want to use this component. Notice we are // also using the simpleInput property with interpolation // to display the value it receives from the parent // component @Component({ selector: 'simple', template: `You entered : {{simpleInput}}` }) // Step 2 : Implement OnChanges Life Cycle Hook interface export class SimpleComponent implements OnChanges { // Input property. As and when this property changes // ngOnChanges life cycle hook method is called @Input() simpleInput: string; // Step 3 : Implementation for the hook method // This code logs the current and previous value // to the console. ngOnChanges(changes: SimpleChanges) { for (let propertyName in changes) { let change = changes[propertyName]; let current = JSON.stringify(change.currentValue); let previous = JSON.stringify(change.previousValue); console.log(propertyName + ': currentValue = ' + current + ', previousValue = ' + previous); // The above line can be rewritten using // placeholder syntax as shown below // console.log(`${propertyName}: currentValue // = ${current }, previousValue = ${previous }`); } } }
Views: 62356 kudvenkat
Part 78   Different types of ActionResult in asp net mvc
 
07:53
Link for code samples used in the demo http://csharp-video-tutorials.blogspot.com/2013/08/part-78-different-types-of-actionresult.html Link for csharp, asp.net, ado.net, dotnet basics, mvc and sql server video tutorial playlists http://www.youtube.com/user/kudvenkat/playlists In this video, we will discuss different types of ActionResult objects that can be returned by an action method. The following is the signature of a typical action method in a controller. Notice that, the return type is ActionResult. ActionResult is an abstract class and has several sub types. public ActionResult Index() { return View(); } I have used a tool called ILSpy, to list all the sub-types of ActionResult. To use the tool yourself, here are the steps 1. Navigate to http://ilspy.net/. 2. Click on "Download Binaries" button, and extract them to a folder. 3. Run ILSpy.exe which can be found in the folder, where you have extracted the binaries. 4. Click on File - Open From GAC 5. Type "System.Web.Mvc" in the search box. Select the Assembly and click Open 6. At this point System.Web.Mvc assmbly should be loaded into ILSpy. Expand System.Web.Mvc, then expand ActionResult and then expand "Derived Types". You should now be able to see all the derived types. Why do we have so many sub-types? An action method in a controller, can return a wide range of objects. For example, an action method can return 1. ViewResult 2. PartialViewResult 3. JsonResult 4. RedirectResult etc.. What should be the return type of an action method - ActionResult or specific derived type? It's a good practise to return specific sub-types, but, if different paths of the action method returns different subtypes, then I would return an ActionResult object. An example is shown below. public ActionResult Index() { if (Your_Condition) return View(); // returns ViewResult object else return Json("Data"); // returns JsonResult object }
Views: 70151 kudvenkat