SlideShare a Scribd company logo
Dot Net Training
Learning .NET Attributes
Dot Net Training
Assemblies are the building blocks of .NET Framework ; they form the basic unit of
deployment, reuse, version control, reuse, activation scoping and security
permissions.
An assembly is a collection of types and resources that are created to work together
and form a functional and logical unit.
.NET assemblies are self-describing, i.e. information about an assembly is stored in
the assembly itself. This information is called Metadata.
.NET also allows you to put additional information in the metadata via Attributes.
Attributes are used in many places within the .NET framework.
This page discusses what attributes are, how to use inbuilt attributes and how to
customize attributes.
Dot Net Training
Define .NET Attributes
A .NET attribute is information that can be attached with a class, an assembly,
property, method and other members. An attribute bestows to the metadata about an
entity that is under consideration. An attribute is actually a class that is either inbuilt or
can be customized. Once created, an attribute can be applied to various targets
including the ones mentioned above.
For better understanding, let’s take this example:
[WebService]public class WebService1 : System.Web.Services.WebService
{
[WebMethod]
5. public string HelloWorld()
{
return “Hello World”;
}
}
Dot Net Training
The above code depicts a class named WebService1 that contains a method:
HelloWorld(). Take note of the class and method declaration. The WebService1 class
is decorated with [WebService] and HelloWorld() is decorated with [WebMethod].
Both of them – [WebService] and [WebMethod] – are features. The [WebService]
attribute indicates that the target of the feature (WebService1 class) is a web service.
Similarly, the [WebMethod] feature indicates that the target under consideration
(HelloWorld() method) is a web called method. We are not going much into details of
these specific attributes, it is sufficient to know that they are inbuilt and bestow to the
metadata of the respective entities.
Two broad ways of classification of attributes are : inbuilt and custom. The inbuilt
features are given by .NET framework and are readily usable when required. Custom
attributes are developer created classes.
Dot Net Training
On observing a newly created project in Visual Studio, you will find a file named
AssemblyInfo.cs. This file constitute attributes that are applicable to the entire project
assembly.
For instance, consider the following AssemblyInfo.cs from an ASP.NET Web
Application
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.[assembly:
AssemblyTitle("CustomAttributeDemo")][assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("CustomAttributeDemo")]
[assembly: AssemblyCopyright("Copyright © 2014")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
Dot Net Training
As you can see there are many attributes such as AssemblyTitle, AssemblyDescription
and AssemblyVersion. Since their target is the hidden assembly, they use [assembly:
<attribute_name>] syntax.
Information about the features can be obtained through reflection. Most of the inbuilt
attributes are handled by .NET framework internally but for custom features you may
need to create a mechanism to observe the metadata emitted by them.
Inbuilt Attributes
In this section you will use Data Annotation Attributes to prove model data. Nees to
start by creating a new ASP.NET MVC Web Application. Then add a class to the
Models folder and name it as Customer.
Dot Net Training
The Customer class contains two public properties and is shown below:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
5. using System.ComponentModel.DataAnnotations;
namespace CustomAttributesMVCDemo.Models
{
public class Customer
10. {
[Required]
public string CustomerID { get; set; }
[Required]
15. [StringLength(20,MinimumLength=5,ErrorMessage="Invalid company
name!")]
public string CompanyName { get; set; }
}
Dot Net Training
Take note of the above code. The Customer class comprise of two string properties –
CustomerID and CompanyName. Its important to note that these properties are
decorated with data annotation features residing in the
System.ComponentModel.DataAnnotations namespace.
The [Required] features points that the CustomerID property must be given some
value in order to consider it to be a valid model. Similarly, the CompanyName property
is designed with [Required] and [StringLength] attributes.
The [StringLength] feature is used to specify that the CompanyName should be a at
least five characters long and at max twenty characters long. An error message is also
specified in case the value given to the CompanyName property doesn’t meet the
criteria.
To note that [Required] and [StringLength] attributes are actually classes –
RequiredAttribute and StringLengthAttribute – defined in the
System.ComponentModel.DataAnnotations namespace.
Dot Net Training
Now, add the HomeController class to the Controllers folder and write the following
action methods:
public ActionResult Index()
{
return View();
}
5.
public ActionResult ProcessForm()
{
Customer obj = new Customer();
bool flag = TryUpdateModel(obj);
10. if(flag)
{
ViewBag.Message = “Customer data received successfully!”;
}
else
15. {
ViewBag.Message = “Customer data validation failed!”;
}
return View(“Index”);
}
Dot Net Training
The Index() action method simply returns the Index view. The Index.cshtml consists of
a simple <form> as given below:
<form action=”/home/processform” method=”post”>
<span>Customer ID : </span>
<input type=”text” name=”customerid” />
<span>Company Name : </span>
5. <input type=”text” name=”companyname” />
<input type=”submit” value=”Submit”/>
</form>
<strong>@ViewBag.Message</strong>
<strong>@Html.ValidationSummary()</strong>
The values entered in the customer ID text box and company name text box are
submitted to the ProcessForm() action method.
Dot Net Training
The ProcesssForm() action method uses TryUpdateModel() method to allot the
characteristics of the Customer model with the form field values. The
TryUpdateModel() method returns true if the model properties contain proven data as
per the condition given by the data annotation features, otherwise it returns false. The
model errors are displayed on the page using ValidationSummary() Html helper.
Then run the application and try submitting the form without entering Company Name
value. The following figure shows how the error message is shown:
Thus data notation attributes are used by ASP.NET MVC to do model validations.
Creating Custom Attributes
In the above example, some inbuilt attributes were used. This section will teach you to
create a custom attribute and then apply it. For the sake of this example let’s assume
that you have developed a class library that has some complex business processing.
You want that this class library should be consumed by only those applications that got
a valid license key given by you. You can devise a simple technique to accomplish this
task.
Dot Net Training
Let’s begin by creating a new class library project. Name the project
LicenseKeyAttributeLib. Modify the default class from the class library to resemble the
following code:
namespace LicenseKeyAttributeLib
{
[AttributeUsage(AttributeTargets.All)]
public class MyLicenseAttribute:Attribute
5. { public string Key { get; set; }
}
}
As you can see the MyLicenseAttribute class is created by taking it from the Attribute
base class is provided by the .NET framework. By convention all the attribute classes
end with “Attribute”. But while using these attributes you don’t need to write “Attribute”.
Thus MyLicenseAttribute class will be used as [MyLicense] on the target.
The MyLicenseAttribute class contains just one property – Key – that represents a
license key.
Dot Net Training
The MyLicenseAttribute itself is decorated with an inbuilt attribute – [AttributeUsage].
The [AttributeUsage] feature is used to set the target for the custom attribute being
created.
Now, add another class library to the same solution and name it ComplexClassLib.
The ComplexClassLib represents the class library doing some complex task and
consists of a class as shown below:
public class ComplexClass1
{
public string ComplexMethodRequiringKey()
{
5. //some code goes here
return “Hello World!”;
}
}
The ComplexMethodRequiringKey() method of the ComplexClass1 is supposed to be
doing some complex operation.
Dot Net Training
Applying Custom Attributes
Next need to add an ASP.NET Web Forms Application to the same solution.
Then use the ComplexMethodRequiringKey() inside the Page_Load event handler:
protected void Page_Load(object sender, EventArgs e)
{
ComplexClassLib.ComplexClass1 obj = new ComplexClassLib.ComplexClass1();
Label1.Text = obj.ComplexMethodRequiringKey();
}
The return value from ComplexMethodRequiringKey() is assigned to a Label control.
Now it’s time to use the MyLicenseAttribute class that was created earlier. Open the
AssemblyInfo.cs file from the web application and add the following code to it:
using System.Reflection;
…
using LicenseKeyAttributeLib;
5. …
[assembly: MyLicense(Key = "4fe29aba")]
Dot Net Training
Summary
Attributes help you to add metadata to their target. The .NET framework though
provides several inbuilt attributes , there are chances to customize a few more. You
knew to use inbuilt data notation features to validate model data; create a custom
attribute and used it to design an assembly. A custom feature is a class usually
derived from the Attribute base class and members can be added to the custom
attribute class just like you can do for any other class.
If you are considering to take ASP.Net training then our CRB Tech .Net Training
center would be very helpful in fulfilling your aspirations. We update ourself with the
ongoing generation so you can learn ASP.Net with us.
Stay connected to this page of CRB Tech reviews for more technical up-gradation and
other resources.
For more information on .net do visit : http://crbtech.in/Dot-Net-Training
Thank You..!
Dot Net Training
Ad

More Related Content

What's hot (20)

Spring & hibernate
Spring & hibernateSpring & hibernate
Spring & hibernate
Santosh Kumar Kar
 
Hibernate Developer Reference
Hibernate Developer ReferenceHibernate Developer Reference
Hibernate Developer Reference
Muthuselvam RS
 
Java Hibernate Programming with Architecture Diagram and Example
Java Hibernate Programming with Architecture Diagram and ExampleJava Hibernate Programming with Architecture Diagram and Example
Java Hibernate Programming with Architecture Diagram and Example
kamal kotecha
 
Hibernate ppt
Hibernate pptHibernate ppt
Hibernate ppt
Aneega
 
Spring Framework -I
Spring Framework -ISpring Framework -I
Spring Framework -I
People Strategists
 
Dao pattern
Dao patternDao pattern
Dao pattern
ciriako
 
Spring FrameWork Tutorials Java Language
Spring FrameWork Tutorials Java Language Spring FrameWork Tutorials Java Language
Spring FrameWork Tutorials Java Language
Mahika Tutorials
 
Ef code first
Ef code firstEf code first
Ef code first
ZealousysDev
 
Dao example
Dao exampleDao example
Dao example
myrajendra
 
Day5
Day5Day5
Day5
madamewoolf
 
Day4
Day4Day4
Day4
madamewoolf
 
Hibernate tutorial
Hibernate tutorialHibernate tutorial
Hibernate tutorial
Mumbai Academisc
 
Hibernate presentation
Hibernate presentationHibernate presentation
Hibernate presentation
Manav Prasad
 
J2EE pattern 5
J2EE pattern 5J2EE pattern 5
J2EE pattern 5
Naga Muruga
 
Day7
Day7Day7
Day7
madamewoolf
 
Introduction to OO, Java and Eclipse/WebSphere
Introduction to OO, Java and Eclipse/WebSphereIntroduction to OO, Java and Eclipse/WebSphere
Introduction to OO, Java and Eclipse/WebSphere
eLink Business Innovations
 
Dependency Injection
Dependency InjectionDependency Injection
Dependency Injection
Anand Kumar Rajana
 
Type Adoption in xCP 2.1 Applications
Type Adoption in xCP 2.1 ApplicationsType Adoption in xCP 2.1 Applications
Type Adoption in xCP 2.1 Applications
Haytham Ghandour
 
Hibernate tutorial for beginners
Hibernate tutorial for beginnersHibernate tutorial for beginners
Hibernate tutorial for beginners
Rahul Jain
 
TY.BSc.IT Java QB U5
TY.BSc.IT Java QB U5TY.BSc.IT Java QB U5
TY.BSc.IT Java QB U5
Lokesh Singrol
 
Hibernate Developer Reference
Hibernate Developer ReferenceHibernate Developer Reference
Hibernate Developer Reference
Muthuselvam RS
 
Java Hibernate Programming with Architecture Diagram and Example
Java Hibernate Programming with Architecture Diagram and ExampleJava Hibernate Programming with Architecture Diagram and Example
Java Hibernate Programming with Architecture Diagram and Example
kamal kotecha
 
Hibernate ppt
Hibernate pptHibernate ppt
Hibernate ppt
Aneega
 
Dao pattern
Dao patternDao pattern
Dao pattern
ciriako
 
Spring FrameWork Tutorials Java Language
Spring FrameWork Tutorials Java Language Spring FrameWork Tutorials Java Language
Spring FrameWork Tutorials Java Language
Mahika Tutorials
 
Hibernate presentation
Hibernate presentationHibernate presentation
Hibernate presentation
Manav Prasad
 
Introduction to OO, Java and Eclipse/WebSphere
Introduction to OO, Java and Eclipse/WebSphereIntroduction to OO, Java and Eclipse/WebSphere
Introduction to OO, Java and Eclipse/WebSphere
eLink Business Innovations
 
Type Adoption in xCP 2.1 Applications
Type Adoption in xCP 2.1 ApplicationsType Adoption in xCP 2.1 Applications
Type Adoption in xCP 2.1 Applications
Haytham Ghandour
 
Hibernate tutorial for beginners
Hibernate tutorial for beginnersHibernate tutorial for beginners
Hibernate tutorial for beginners
Rahul Jain
 

Similar to Learn dot net attributes (20)

Learn about dot net attributes
Learn about dot net attributesLearn about dot net attributes
Learn about dot net attributes
sonia merchant
 
ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010
ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010
ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010
vchircu
 
ASP.NET MVC3 RAD
ASP.NET MVC3 RADASP.NET MVC3 RAD
ASP.NET MVC3 RAD
Mădălin Ștefîrcă
 
.NET Portfolio
.NET Portfolio.NET Portfolio
.NET Portfolio
mwillmer
 
Joel Landis Net Portfolio
Joel Landis Net PortfolioJoel Landis Net Portfolio
Joel Landis Net Portfolio
jlshare
 
Intake 37 ef2
Intake 37 ef2Intake 37 ef2
Intake 37 ef2
Mahmoud Ouf
 
Intake 38 data access 5
Intake 38 data access 5Intake 38 data access 5
Intake 38 data access 5
Mahmoud Ouf
 
Simple ado program by visual studio
Simple ado program by visual studioSimple ado program by visual studio
Simple ado program by visual studio
Aravindharamanan S
 
Simple ado program by visual studio
Simple ado program by visual studioSimple ado program by visual studio
Simple ado program by visual studio
Aravindharamanan S
 
Why use .net by naveen kumar veligeti
Why use .net by naveen kumar veligetiWhy use .net by naveen kumar veligeti
Why use .net by naveen kumar veligeti
Naveen Kumar Veligeti
 
Learning MVC Part 3 Creating MVC Application with EntityFramework
Learning MVC Part 3 Creating MVC Application with EntityFrameworkLearning MVC Part 3 Creating MVC Application with EntityFramework
Learning MVC Part 3 Creating MVC Application with EntityFramework
Akhil Mittal
 
ASP.NET Core MVC with EF Core code first
ASP.NET Core MVC with EF Core code firstASP.NET Core MVC with EF Core code first
ASP.NET Core MVC with EF Core code first
Md. Aftab Uddin Kajal
 
Overview of CSharp MVC3 and EF4
Overview of CSharp MVC3 and EF4Overview of CSharp MVC3 and EF4
Overview of CSharp MVC3 and EF4
Rich Helton
 
Mvc acchitecture
Mvc acchitectureMvc acchitecture
Mvc acchitecture
laxmi.katkar
 
MCS,BCS-7(A,B) Visual programming Syllabus for Final exams @ ISP
MCS,BCS-7(A,B) Visual programming Syllabus for Final exams @ ISPMCS,BCS-7(A,B) Visual programming Syllabus for Final exams @ ISP
MCS,BCS-7(A,B) Visual programming Syllabus for Final exams @ ISP
Ali Shah
 
Entity framework1
Entity framework1Entity framework1
Entity framework1
Girish Gowda
 
23 ijaprr vol1-3-25-31iqra
23 ijaprr vol1-3-25-31iqra23 ijaprr vol1-3-25-31iqra
23 ijaprr vol1-3-25-31iqra
ijaprr_editor
 
Intro to iOS Development • Made by Many
Intro to iOS Development • Made by ManyIntro to iOS Development • Made by Many
Intro to iOS Development • Made by Many
kenatmxm
 
Tutorial mvc (pelajari ini jika ingin tahu mvc) keren
Tutorial mvc (pelajari ini jika ingin tahu mvc) kerenTutorial mvc (pelajari ini jika ingin tahu mvc) keren
Tutorial mvc (pelajari ini jika ingin tahu mvc) keren
Sony Suci
 
MVC Application using EntityFramework Code-First approach Part4
MVC Application using EntityFramework Code-First approach Part4MVC Application using EntityFramework Code-First approach Part4
MVC Application using EntityFramework Code-First approach Part4
Akhil Mittal
 
Learn about dot net attributes
Learn about dot net attributesLearn about dot net attributes
Learn about dot net attributes
sonia merchant
 
ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010
ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010
ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010
vchircu
 
.NET Portfolio
.NET Portfolio.NET Portfolio
.NET Portfolio
mwillmer
 
Joel Landis Net Portfolio
Joel Landis Net PortfolioJoel Landis Net Portfolio
Joel Landis Net Portfolio
jlshare
 
Intake 38 data access 5
Intake 38 data access 5Intake 38 data access 5
Intake 38 data access 5
Mahmoud Ouf
 
Simple ado program by visual studio
Simple ado program by visual studioSimple ado program by visual studio
Simple ado program by visual studio
Aravindharamanan S
 
Simple ado program by visual studio
Simple ado program by visual studioSimple ado program by visual studio
Simple ado program by visual studio
Aravindharamanan S
 
Why use .net by naveen kumar veligeti
Why use .net by naveen kumar veligetiWhy use .net by naveen kumar veligeti
Why use .net by naveen kumar veligeti
Naveen Kumar Veligeti
 
Learning MVC Part 3 Creating MVC Application with EntityFramework
Learning MVC Part 3 Creating MVC Application with EntityFrameworkLearning MVC Part 3 Creating MVC Application with EntityFramework
Learning MVC Part 3 Creating MVC Application with EntityFramework
Akhil Mittal
 
ASP.NET Core MVC with EF Core code first
ASP.NET Core MVC with EF Core code firstASP.NET Core MVC with EF Core code first
ASP.NET Core MVC with EF Core code first
Md. Aftab Uddin Kajal
 
Overview of CSharp MVC3 and EF4
Overview of CSharp MVC3 and EF4Overview of CSharp MVC3 and EF4
Overview of CSharp MVC3 and EF4
Rich Helton
 
MCS,BCS-7(A,B) Visual programming Syllabus for Final exams @ ISP
MCS,BCS-7(A,B) Visual programming Syllabus for Final exams @ ISPMCS,BCS-7(A,B) Visual programming Syllabus for Final exams @ ISP
MCS,BCS-7(A,B) Visual programming Syllabus for Final exams @ ISP
Ali Shah
 
23 ijaprr vol1-3-25-31iqra
23 ijaprr vol1-3-25-31iqra23 ijaprr vol1-3-25-31iqra
23 ijaprr vol1-3-25-31iqra
ijaprr_editor
 
Intro to iOS Development • Made by Many
Intro to iOS Development • Made by ManyIntro to iOS Development • Made by Many
Intro to iOS Development • Made by Many
kenatmxm
 
Tutorial mvc (pelajari ini jika ingin tahu mvc) keren
Tutorial mvc (pelajari ini jika ingin tahu mvc) kerenTutorial mvc (pelajari ini jika ingin tahu mvc) keren
Tutorial mvc (pelajari ini jika ingin tahu mvc) keren
Sony Suci
 
MVC Application using EntityFramework Code-First approach Part4
MVC Application using EntityFramework Code-First approach Part4MVC Application using EntityFramework Code-First approach Part4
MVC Application using EntityFramework Code-First approach Part4
Akhil Mittal
 
Ad

More from sonia merchant (20)

What does dot net hold for 2016?
What does dot net hold for 2016?What does dot net hold for 2016?
What does dot net hold for 2016?
sonia merchant
 
What does .net hold for 2016?
What does .net hold for 2016?What does .net hold for 2016?
What does .net hold for 2016?
sonia merchant
 
Data protection api's in asp dot net
Data protection api's in asp dot netData protection api's in asp dot net
Data protection api's in asp dot net
sonia merchant
 
Authorization p iv
Authorization p ivAuthorization p iv
Authorization p iv
sonia merchant
 
Authorization iii
Authorization iiiAuthorization iii
Authorization iii
sonia merchant
 
Authorization in asp dot net part 2
Authorization in asp dot net part 2Authorization in asp dot net part 2
Authorization in asp dot net part 2
sonia merchant
 
Asp dot-net core problems and fixes
Asp dot-net core problems and fixes Asp dot-net core problems and fixes
Asp dot-net core problems and fixes
sonia merchant
 
Search page-with-elasticsearch-and-dot-net
Search page-with-elasticsearch-and-dot-netSearch page-with-elasticsearch-and-dot-net
Search page-with-elasticsearch-and-dot-net
sonia merchant
 
Build a-search-page-with-elastic search-and-dot-net
Build a-search-page-with-elastic search-and-dot-netBuild a-search-page-with-elastic search-and-dot-net
Build a-search-page-with-elastic search-and-dot-net
sonia merchant
 
How to optimize asp dot-net application
How to optimize asp dot-net applicationHow to optimize asp dot-net application
How to optimize asp dot-net application
sonia merchant
 
How to optimize asp dot net application ?
How to optimize asp dot net application ?How to optimize asp dot net application ?
How to optimize asp dot net application ?
sonia merchant
 
10 things to remember
10 things to remember10 things to remember
10 things to remember
sonia merchant
 
Owin and-katana-overview
Owin and-katana-overviewOwin and-katana-overview
Owin and-katana-overview
sonia merchant
 
Top 15-asp-dot-net-interview-questions-and-answers
Top 15-asp-dot-net-interview-questions-and-answersTop 15-asp-dot-net-interview-questions-and-answers
Top 15-asp-dot-net-interview-questions-and-answers
sonia merchant
 
Next generation asp.net v next
Next generation asp.net v nextNext generation asp.net v next
Next generation asp.net v next
sonia merchant
 
Dot net universal apps
Dot net universal appsDot net universal apps
Dot net universal apps
sonia merchant
 
Browser frame building with c# and vb dot net
Browser frame building  with c# and vb dot netBrowser frame building  with c# and vb dot net
Browser frame building with c# and vb dot net
sonia merchant
 
A simplest-way-to-reconstruct-.net-framework
A simplest-way-to-reconstruct-.net-frameworkA simplest-way-to-reconstruct-.net-framework
A simplest-way-to-reconstruct-.net-framework
sonia merchant
 
Silverlight versions-features
Silverlight versions-featuresSilverlight versions-features
Silverlight versions-features
sonia merchant
 
History of silverlight versions and its features
History of silverlight versions and its featuresHistory of silverlight versions and its features
History of silverlight versions and its features
sonia merchant
 
What does dot net hold for 2016?
What does dot net hold for 2016?What does dot net hold for 2016?
What does dot net hold for 2016?
sonia merchant
 
What does .net hold for 2016?
What does .net hold for 2016?What does .net hold for 2016?
What does .net hold for 2016?
sonia merchant
 
Data protection api's in asp dot net
Data protection api's in asp dot netData protection api's in asp dot net
Data protection api's in asp dot net
sonia merchant
 
Authorization in asp dot net part 2
Authorization in asp dot net part 2Authorization in asp dot net part 2
Authorization in asp dot net part 2
sonia merchant
 
Asp dot-net core problems and fixes
Asp dot-net core problems and fixes Asp dot-net core problems and fixes
Asp dot-net core problems and fixes
sonia merchant
 
Search page-with-elasticsearch-and-dot-net
Search page-with-elasticsearch-and-dot-netSearch page-with-elasticsearch-and-dot-net
Search page-with-elasticsearch-and-dot-net
sonia merchant
 
Build a-search-page-with-elastic search-and-dot-net
Build a-search-page-with-elastic search-and-dot-netBuild a-search-page-with-elastic search-and-dot-net
Build a-search-page-with-elastic search-and-dot-net
sonia merchant
 
How to optimize asp dot-net application
How to optimize asp dot-net applicationHow to optimize asp dot-net application
How to optimize asp dot-net application
sonia merchant
 
How to optimize asp dot net application ?
How to optimize asp dot net application ?How to optimize asp dot net application ?
How to optimize asp dot net application ?
sonia merchant
 
Owin and-katana-overview
Owin and-katana-overviewOwin and-katana-overview
Owin and-katana-overview
sonia merchant
 
Top 15-asp-dot-net-interview-questions-and-answers
Top 15-asp-dot-net-interview-questions-and-answersTop 15-asp-dot-net-interview-questions-and-answers
Top 15-asp-dot-net-interview-questions-and-answers
sonia merchant
 
Next generation asp.net v next
Next generation asp.net v nextNext generation asp.net v next
Next generation asp.net v next
sonia merchant
 
Dot net universal apps
Dot net universal appsDot net universal apps
Dot net universal apps
sonia merchant
 
Browser frame building with c# and vb dot net
Browser frame building  with c# and vb dot netBrowser frame building  with c# and vb dot net
Browser frame building with c# and vb dot net
sonia merchant
 
A simplest-way-to-reconstruct-.net-framework
A simplest-way-to-reconstruct-.net-frameworkA simplest-way-to-reconstruct-.net-framework
A simplest-way-to-reconstruct-.net-framework
sonia merchant
 
Silverlight versions-features
Silverlight versions-featuresSilverlight versions-features
Silverlight versions-features
sonia merchant
 
History of silverlight versions and its features
History of silverlight versions and its featuresHistory of silverlight versions and its features
History of silverlight versions and its features
sonia merchant
 
Ad

Recently uploaded (20)

UPSA JUDGEMENT.pdfCopyright Infringement: High Court Rules against UPSA: A Wa...
UPSA JUDGEMENT.pdfCopyright Infringement: High Court Rules against UPSA: A Wa...UPSA JUDGEMENT.pdfCopyright Infringement: High Court Rules against UPSA: A Wa...
UPSA JUDGEMENT.pdfCopyright Infringement: High Court Rules against UPSA: A Wa...
businessweekghana
 
Module_2_Types_and_Approaches_of_Research (2).pptx
Module_2_Types_and_Approaches_of_Research (2).pptxModule_2_Types_and_Approaches_of_Research (2).pptx
Module_2_Types_and_Approaches_of_Research (2).pptx
drroxannekemp
 
114P_English.pdf114P_English.pdf114P_English.pdf
114P_English.pdf114P_English.pdf114P_English.pdf114P_English.pdf114P_English.pdf114P_English.pdf
114P_English.pdf114P_English.pdf114P_English.pdf
paulinelee52
 
Search Matching Applicants in Odoo 18 - Odoo Slides
Search Matching Applicants in Odoo 18 - Odoo SlidesSearch Matching Applicants in Odoo 18 - Odoo Slides
Search Matching Applicants in Odoo 18 - Odoo Slides
Celine George
 
Chemotherapy of Malignancy -Anticancer.pptx
Chemotherapy of Malignancy -Anticancer.pptxChemotherapy of Malignancy -Anticancer.pptx
Chemotherapy of Malignancy -Anticancer.pptx
Mayuri Chavan
 
How to Use Upgrade Code Command in Odoo 18
How to Use Upgrade Code Command in Odoo 18How to Use Upgrade Code Command in Odoo 18
How to Use Upgrade Code Command in Odoo 18
Celine George
 
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
parmarjuli1412
 
How to Share Accounts Between Companies in Odoo 18
How to Share Accounts Between Companies in Odoo 18How to Share Accounts Between Companies in Odoo 18
How to Share Accounts Between Companies in Odoo 18
Celine George
 
ITI COPA Question Paper PDF 2017 Theory MCQ
ITI COPA Question Paper PDF 2017 Theory MCQITI COPA Question Paper PDF 2017 Theory MCQ
ITI COPA Question Paper PDF 2017 Theory MCQ
SONU HEETSON
 
Conditions for Boltzmann Law – Biophysics Lecture Slide
Conditions for Boltzmann Law – Biophysics Lecture SlideConditions for Boltzmann Law – Biophysics Lecture Slide
Conditions for Boltzmann Law – Biophysics Lecture Slide
PKLI-Institute of Nursing and Allied Health Sciences Lahore , Pakistan.
 
How to Manage Amounts in Local Currency in Odoo 18 Purchase
How to Manage Amounts in Local Currency in Odoo 18 PurchaseHow to Manage Amounts in Local Currency in Odoo 18 Purchase
How to Manage Amounts in Local Currency in Odoo 18 Purchase
Celine George
 
How to Change Sequence Number in Odoo 18 Sale Order
How to Change Sequence Number in Odoo 18 Sale OrderHow to Change Sequence Number in Odoo 18 Sale Order
How to Change Sequence Number in Odoo 18 Sale Order
Celine George
 
Unit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptx
Unit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptxUnit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptx
Unit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptx
Mayuri Chavan
 
Final Evaluation.docx...........................
Final Evaluation.docx...........................Final Evaluation.docx...........................
Final Evaluation.docx...........................
l1bbyburrell
 
How to Add Button in Chatter in Odoo 18 - Odoo Slides
How to Add Button in Chatter in Odoo 18 - Odoo SlidesHow to Add Button in Chatter in Odoo 18 - Odoo Slides
How to Add Button in Chatter in Odoo 18 - Odoo Slides
Celine George
 
Antepartum fetal surveillance---Dr. H.K.Cheema pdf.pdf
Antepartum fetal surveillance---Dr. H.K.Cheema pdf.pdfAntepartum fetal surveillance---Dr. H.K.Cheema pdf.pdf
Antepartum fetal surveillance---Dr. H.K.Cheema pdf.pdf
Dr H.K. Cheema
 
Rebuilding the library community in a post-Twitter world
Rebuilding the library community in a post-Twitter worldRebuilding the library community in a post-Twitter world
Rebuilding the library community in a post-Twitter world
Ned Potter
 
INDIA QUIZ FOR SCHOOLS | THE QUIZ CLUB OF PSGCAS | AUGUST 2024
INDIA QUIZ FOR SCHOOLS | THE QUIZ CLUB OF PSGCAS | AUGUST 2024INDIA QUIZ FOR SCHOOLS | THE QUIZ CLUB OF PSGCAS | AUGUST 2024
INDIA QUIZ FOR SCHOOLS | THE QUIZ CLUB OF PSGCAS | AUGUST 2024
Quiz Club of PSG College of Arts & Science
 
IPL QUIZ | THE QUIZ CLUB OF PSGCAS | 2025.pdf
IPL QUIZ | THE QUIZ CLUB OF PSGCAS | 2025.pdfIPL QUIZ | THE QUIZ CLUB OF PSGCAS | 2025.pdf
IPL QUIZ | THE QUIZ CLUB OF PSGCAS | 2025.pdf
Quiz Club of PSG College of Arts & Science
 
How to Manage Manual Reordering Rule in Odoo 18 Inventory
How to Manage Manual Reordering Rule in Odoo 18 InventoryHow to Manage Manual Reordering Rule in Odoo 18 Inventory
How to Manage Manual Reordering Rule in Odoo 18 Inventory
Celine George
 
UPSA JUDGEMENT.pdfCopyright Infringement: High Court Rules against UPSA: A Wa...
UPSA JUDGEMENT.pdfCopyright Infringement: High Court Rules against UPSA: A Wa...UPSA JUDGEMENT.pdfCopyright Infringement: High Court Rules against UPSA: A Wa...
UPSA JUDGEMENT.pdfCopyright Infringement: High Court Rules against UPSA: A Wa...
businessweekghana
 
Module_2_Types_and_Approaches_of_Research (2).pptx
Module_2_Types_and_Approaches_of_Research (2).pptxModule_2_Types_and_Approaches_of_Research (2).pptx
Module_2_Types_and_Approaches_of_Research (2).pptx
drroxannekemp
 
114P_English.pdf114P_English.pdf114P_English.pdf
114P_English.pdf114P_English.pdf114P_English.pdf114P_English.pdf114P_English.pdf114P_English.pdf
114P_English.pdf114P_English.pdf114P_English.pdf
paulinelee52
 
Search Matching Applicants in Odoo 18 - Odoo Slides
Search Matching Applicants in Odoo 18 - Odoo SlidesSearch Matching Applicants in Odoo 18 - Odoo Slides
Search Matching Applicants in Odoo 18 - Odoo Slides
Celine George
 
Chemotherapy of Malignancy -Anticancer.pptx
Chemotherapy of Malignancy -Anticancer.pptxChemotherapy of Malignancy -Anticancer.pptx
Chemotherapy of Malignancy -Anticancer.pptx
Mayuri Chavan
 
How to Use Upgrade Code Command in Odoo 18
How to Use Upgrade Code Command in Odoo 18How to Use Upgrade Code Command in Odoo 18
How to Use Upgrade Code Command in Odoo 18
Celine George
 
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
parmarjuli1412
 
How to Share Accounts Between Companies in Odoo 18
How to Share Accounts Between Companies in Odoo 18How to Share Accounts Between Companies in Odoo 18
How to Share Accounts Between Companies in Odoo 18
Celine George
 
ITI COPA Question Paper PDF 2017 Theory MCQ
ITI COPA Question Paper PDF 2017 Theory MCQITI COPA Question Paper PDF 2017 Theory MCQ
ITI COPA Question Paper PDF 2017 Theory MCQ
SONU HEETSON
 
How to Manage Amounts in Local Currency in Odoo 18 Purchase
How to Manage Amounts in Local Currency in Odoo 18 PurchaseHow to Manage Amounts in Local Currency in Odoo 18 Purchase
How to Manage Amounts in Local Currency in Odoo 18 Purchase
Celine George
 
How to Change Sequence Number in Odoo 18 Sale Order
How to Change Sequence Number in Odoo 18 Sale OrderHow to Change Sequence Number in Odoo 18 Sale Order
How to Change Sequence Number in Odoo 18 Sale Order
Celine George
 
Unit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptx
Unit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptxUnit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptx
Unit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptx
Mayuri Chavan
 
Final Evaluation.docx...........................
Final Evaluation.docx...........................Final Evaluation.docx...........................
Final Evaluation.docx...........................
l1bbyburrell
 
How to Add Button in Chatter in Odoo 18 - Odoo Slides
How to Add Button in Chatter in Odoo 18 - Odoo SlidesHow to Add Button in Chatter in Odoo 18 - Odoo Slides
How to Add Button in Chatter in Odoo 18 - Odoo Slides
Celine George
 
Antepartum fetal surveillance---Dr. H.K.Cheema pdf.pdf
Antepartum fetal surveillance---Dr. H.K.Cheema pdf.pdfAntepartum fetal surveillance---Dr. H.K.Cheema pdf.pdf
Antepartum fetal surveillance---Dr. H.K.Cheema pdf.pdf
Dr H.K. Cheema
 
Rebuilding the library community in a post-Twitter world
Rebuilding the library community in a post-Twitter worldRebuilding the library community in a post-Twitter world
Rebuilding the library community in a post-Twitter world
Ned Potter
 
How to Manage Manual Reordering Rule in Odoo 18 Inventory
How to Manage Manual Reordering Rule in Odoo 18 InventoryHow to Manage Manual Reordering Rule in Odoo 18 Inventory
How to Manage Manual Reordering Rule in Odoo 18 Inventory
Celine George
 

Learn dot net attributes

  • 2. Dot Net Training Assemblies are the building blocks of .NET Framework ; they form the basic unit of deployment, reuse, version control, reuse, activation scoping and security permissions. An assembly is a collection of types and resources that are created to work together and form a functional and logical unit. .NET assemblies are self-describing, i.e. information about an assembly is stored in the assembly itself. This information is called Metadata. .NET also allows you to put additional information in the metadata via Attributes. Attributes are used in many places within the .NET framework. This page discusses what attributes are, how to use inbuilt attributes and how to customize attributes.
  • 3. Dot Net Training Define .NET Attributes A .NET attribute is information that can be attached with a class, an assembly, property, method and other members. An attribute bestows to the metadata about an entity that is under consideration. An attribute is actually a class that is either inbuilt or can be customized. Once created, an attribute can be applied to various targets including the ones mentioned above. For better understanding, let’s take this example: [WebService]public class WebService1 : System.Web.Services.WebService { [WebMethod] 5. public string HelloWorld() { return “Hello World”; } }
  • 4. Dot Net Training The above code depicts a class named WebService1 that contains a method: HelloWorld(). Take note of the class and method declaration. The WebService1 class is decorated with [WebService] and HelloWorld() is decorated with [WebMethod]. Both of them – [WebService] and [WebMethod] – are features. The [WebService] attribute indicates that the target of the feature (WebService1 class) is a web service. Similarly, the [WebMethod] feature indicates that the target under consideration (HelloWorld() method) is a web called method. We are not going much into details of these specific attributes, it is sufficient to know that they are inbuilt and bestow to the metadata of the respective entities. Two broad ways of classification of attributes are : inbuilt and custom. The inbuilt features are given by .NET framework and are readily usable when required. Custom attributes are developer created classes.
  • 5. Dot Net Training On observing a newly created project in Visual Studio, you will find a file named AssemblyInfo.cs. This file constitute attributes that are applicable to the entire project assembly. For instance, consider the following AssemblyInfo.cs from an ASP.NET Web Application // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly.[assembly: AssemblyTitle("CustomAttributeDemo")][assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CustomAttributeDemo")] [assembly: AssemblyCopyright("Copyright © 2014")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")]
  • 6. Dot Net Training As you can see there are many attributes such as AssemblyTitle, AssemblyDescription and AssemblyVersion. Since their target is the hidden assembly, they use [assembly: <attribute_name>] syntax. Information about the features can be obtained through reflection. Most of the inbuilt attributes are handled by .NET framework internally but for custom features you may need to create a mechanism to observe the metadata emitted by them. Inbuilt Attributes In this section you will use Data Annotation Attributes to prove model data. Nees to start by creating a new ASP.NET MVC Web Application. Then add a class to the Models folder and name it as Customer.
  • 7. Dot Net Training The Customer class contains two public properties and is shown below: using System; using System.Collections.Generic; using System.Linq; using System.Web; 5. using System.ComponentModel.DataAnnotations; namespace CustomAttributesMVCDemo.Models { public class Customer 10. { [Required] public string CustomerID { get; set; } [Required] 15. [StringLength(20,MinimumLength=5,ErrorMessage="Invalid company name!")] public string CompanyName { get; set; } }
  • 8. Dot Net Training Take note of the above code. The Customer class comprise of two string properties – CustomerID and CompanyName. Its important to note that these properties are decorated with data annotation features residing in the System.ComponentModel.DataAnnotations namespace. The [Required] features points that the CustomerID property must be given some value in order to consider it to be a valid model. Similarly, the CompanyName property is designed with [Required] and [StringLength] attributes. The [StringLength] feature is used to specify that the CompanyName should be a at least five characters long and at max twenty characters long. An error message is also specified in case the value given to the CompanyName property doesn’t meet the criteria. To note that [Required] and [StringLength] attributes are actually classes – RequiredAttribute and StringLengthAttribute – defined in the System.ComponentModel.DataAnnotations namespace.
  • 9. Dot Net Training Now, add the HomeController class to the Controllers folder and write the following action methods: public ActionResult Index() { return View(); } 5. public ActionResult ProcessForm() { Customer obj = new Customer(); bool flag = TryUpdateModel(obj); 10. if(flag) { ViewBag.Message = “Customer data received successfully!”; } else 15. { ViewBag.Message = “Customer data validation failed!”; } return View(“Index”); }
  • 10. Dot Net Training The Index() action method simply returns the Index view. The Index.cshtml consists of a simple <form> as given below: <form action=”/home/processform” method=”post”> <span>Customer ID : </span> <input type=”text” name=”customerid” /> <span>Company Name : </span> 5. <input type=”text” name=”companyname” /> <input type=”submit” value=”Submit”/> </form> <strong>@ViewBag.Message</strong> <strong>@Html.ValidationSummary()</strong> The values entered in the customer ID text box and company name text box are submitted to the ProcessForm() action method.
  • 11. Dot Net Training The ProcesssForm() action method uses TryUpdateModel() method to allot the characteristics of the Customer model with the form field values. The TryUpdateModel() method returns true if the model properties contain proven data as per the condition given by the data annotation features, otherwise it returns false. The model errors are displayed on the page using ValidationSummary() Html helper. Then run the application and try submitting the form without entering Company Name value. The following figure shows how the error message is shown: Thus data notation attributes are used by ASP.NET MVC to do model validations. Creating Custom Attributes In the above example, some inbuilt attributes were used. This section will teach you to create a custom attribute and then apply it. For the sake of this example let’s assume that you have developed a class library that has some complex business processing. You want that this class library should be consumed by only those applications that got a valid license key given by you. You can devise a simple technique to accomplish this task.
  • 12. Dot Net Training Let’s begin by creating a new class library project. Name the project LicenseKeyAttributeLib. Modify the default class from the class library to resemble the following code: namespace LicenseKeyAttributeLib { [AttributeUsage(AttributeTargets.All)] public class MyLicenseAttribute:Attribute 5. { public string Key { get; set; } } } As you can see the MyLicenseAttribute class is created by taking it from the Attribute base class is provided by the .NET framework. By convention all the attribute classes end with “Attribute”. But while using these attributes you don’t need to write “Attribute”. Thus MyLicenseAttribute class will be used as [MyLicense] on the target. The MyLicenseAttribute class contains just one property – Key – that represents a license key.
  • 13. Dot Net Training The MyLicenseAttribute itself is decorated with an inbuilt attribute – [AttributeUsage]. The [AttributeUsage] feature is used to set the target for the custom attribute being created. Now, add another class library to the same solution and name it ComplexClassLib. The ComplexClassLib represents the class library doing some complex task and consists of a class as shown below: public class ComplexClass1 { public string ComplexMethodRequiringKey() { 5. //some code goes here return “Hello World!”; } } The ComplexMethodRequiringKey() method of the ComplexClass1 is supposed to be doing some complex operation.
  • 14. Dot Net Training Applying Custom Attributes Next need to add an ASP.NET Web Forms Application to the same solution. Then use the ComplexMethodRequiringKey() inside the Page_Load event handler: protected void Page_Load(object sender, EventArgs e) { ComplexClassLib.ComplexClass1 obj = new ComplexClassLib.ComplexClass1(); Label1.Text = obj.ComplexMethodRequiringKey(); } The return value from ComplexMethodRequiringKey() is assigned to a Label control. Now it’s time to use the MyLicenseAttribute class that was created earlier. Open the AssemblyInfo.cs file from the web application and add the following code to it: using System.Reflection; … using LicenseKeyAttributeLib; 5. … [assembly: MyLicense(Key = "4fe29aba")]
  • 15. Dot Net Training Summary Attributes help you to add metadata to their target. The .NET framework though provides several inbuilt attributes , there are chances to customize a few more. You knew to use inbuilt data notation features to validate model data; create a custom attribute and used it to design an assembly. A custom feature is a class usually derived from the Attribute base class and members can be added to the custom attribute class just like you can do for any other class. If you are considering to take ASP.Net training then our CRB Tech .Net Training center would be very helpful in fulfilling your aspirations. We update ourself with the ongoing generation so you can learn ASP.Net with us. Stay connected to this page of CRB Tech reviews for more technical up-gradation and other resources. For more information on .net do visit : http://crbtech.in/Dot-Net-Training
  翻译: