All About ASP.NET and ASP.NET Core 2 Hosting BLOG

Tutorial and Articles about ASP.NET and the latest ASP.NET Core

ASP.NET 4 Hosting - ASPHostPortal :: How to Send Email with Gmail SMTP

clock June 16, 2011 07:11 by author Jervis

We frequently see questions about sending emails using .Net in the asp.net forums. The process of sending mail is the same for Windows apps and asp.net websites as the same .Net classes are used. The process can be slightly shortened by specifying default SMTP settings in the web.config or app.config file. Here, I’m showing the full version of the code and it does not rely on any configuration settings. The code also specifies unicode encoding for the subject and body.

using System.Net.Mail;
using System.Net;


//Create the mail message

MailMessage mail = new MailMessage();
mail.Subject = "Subject";
mail.Body = "Main body goes here";


//the displayed "from" email address
mail.From = new System.Net.Mail.MailAddress(
[email protected]); 

mail.IsBodyHtml = false;
mail.BodyEncoding = System.Text.Encoding.Unicode;
mail.SubjectEncoding = System.Text.Encoding.Unicode;
//Add one or more addresses that will receive the mail
mail.To.Add("[email protected]");


//create the credentials
NetworkCredential cred = new NetworkCredential(
"[email protected]", //from email address of the sending account
"password"); //password of the sending account


//create the smtp client...these settings are for gmail
SmtpClient smtp = new SmtpClient("smtp.gmail.com");
smtp.UseDefaultCredentials = false;
smtp.EnableSsl = true;


//credentials (username, pass of sending account) assigned here
smtp.Credentials = cred; 
smtp.Port = 587;


//let her rip
smtp.Send(mail);


Hope it helps!

This is another tutorial how to send email from ASP.NET 4.

Reasons why you must trust ASPHostPortal.com

Every provider will tell you how they treat their support, uptime, expertise, guarantees, etc., are. Take a close look. What they’re really offering you is nothing close to what ASPHostPortal does. You will be treated with respect and provided the courtesy and service you would expect from a world-class web hosting business.


You’ll have highly trained, skilled professional technical support people ready, willing, and wanting to help you 24 hours a day. Your web hosting account servers are monitored from three monitoring points, with two alert points, every minute, 24 hours a day, 7 days a week, 365 days a year. The followings are the list of other added- benefits you can find when hosting with us:

- DELL Hardware
Dell hardware is engineered to keep critical enterprise applications running around the clock with clustered solutions fully tested and certified by Dell and other leading operating system and application providers.
- Recovery Systems
Recovery becomes easy and seamless with our fully managed backup services. We monitor your server to ensure your data is properly backed up and recoverable so when the time comes, you can easily repair or recover your data.
- Control Panel
We provide one of the most comprehensive customer control panels available. Providing maximum control and ease of use, our Control Panel serves as the central management point for your ASPHostPortal account. You’ll use a flexible, powerful hosting control panel that will give you direct control over your web hosting account. Our control panel and systems configuration is fully automated and this means your settings are configured automatically and instantly.
- Excellent Expertise in Technology
The reason we can provide you with a great amount of power, flexibility, and simplicity at such a discounted price is due to incredible efficiencies within our business. We have not just been providing hosting for many clients for years, we have also been researching, developing, and innovating every aspect of our operations, systems, procedures, strategy, management, and teams. Our operations are based on a continual improvement program where we review thousands of systems, operational and management metrics in real-time, to fine-tune every aspect of our operation and activities. We continually train and retrain all people in our teams. We provide all people in our teams with the time, space, and inspiration to research, understand, and explore the Internet in search of greater knowledge. We do this while providing you with the best hosting services for the lowest possible price.
- Data Center
ASPHostPortal modular Tier-3 data center was specifically designed to be a world-class web hosting facility totally dedicated to uncompromised performance and security
- Monitoring Services
From the moment your server is connected to our network it is monitored for connectivity, disk, memory and CPU utilization – as well as hardware failures. Our engineers are alerted to potential issues before they become critical.
- Network
ASPHostPortal has architected its network like no other hosting company. Every facet of our network infrastructure scales to gigabit speeds with no single point of failure.
- Security
Network security and the security of your server are ASPHostPortal’s top priorities. Our security team is constantly monitoring the entire network for unusual or suspicious behavior so that when it is detected we can address the issue before our network or your server is affected.
- Support Services
Engineers staff our data center 24 hours a day, 7 days a week, 365 days a year to manage the network infrastructure and oversee top-of-the-line servers that host our clients’ critical sites and services.



ASP.NET 4 Hosting - ASPHostPortal :: Tutorial - How to Create Chart Control in ASP.NET 4.0

clock June 15, 2011 07:49 by author Jervis

This tutorial will teach you how to Create a Chart Control in ASP.NET 4.0

Creating a basic Chart Control in ASP .NET 4.

The purpose of this tutorial is to explain how to create a simple chart control and have it grab data
from a database. We will create a very simple Table inside our database that will show the productivity
of an imaginary worker. We will then display them on a chart for a better view of how he/she is doing.

For a More Basic Overview of Databases and ASP.NET go
Here

Overview

1. Create the database and table
2. Create the column chart control
3. Tweaking the chart

Create the Database and Table

1. Right click on your project in solution explorer and navigate to à Add à
New Item
2. Select SQL Server Database from the windows that pops up
3. Name the Database Productivity.mdf
4. Open it by double click
5. Add two new columns to your table WeekID(int) and ItemsDone(int)

6. Make the WeekID column is a Primary Key for the table right click on the WeekID column and navigate toà
Set Primary Key
7. Now we can set the identity of the key so that it auto increments itself, so switch (Is Identity) to Yes.

8. Add data to the table so save the table and name it Employee1
9. Right Click on the Employee1 and Navigate to à Show Table Data
10. Now fill out the table to reflect the Data I have filled in below. Once this is complete we are finished Creating the SQL Table and we can then move on to creating a Chart Control.


Create a Column Chart Control

In Order to create a Chart Control we have to have a Page to put it on so let's start with that


1. Right Click on your project and navigate to ->Add->New Item
2. Select Web Form and Name it PayRoll.aspx
3. Open up the page and go to Design View
4. Then we need to go to the Toolbar and Drag a Chart Item from the Data Section of the Toolbox onto our Web Form. This will create a Chart Control, but we need to link it to the database on order for it to get our information.
5. Next we need to click the Smart Tag of our object found here

6. Choose New Data Source from the Data Source Drop Down Box
7. This will bring up a wizard that will let you connect your database to your Chart
                a. On the first Window Choose SQL Database and Name it Employee1
                b. Choose your Connection String or have it create one for you I named mine ConnectionString    
                c. On the window where you select columns you should have the * selected
                 which means all data this is fine
                d. On the final window you can choose to click the Test Query button and you should see
                 these results after a few seconds, if so hit Finish and you are done with linking the Chart
8. After this Click on the Chart's Smart Tag one more time and edit the x Value Member and Y Value Member drop down boxes to appear as below

9. At this point you should be able to run the page and see your chart with all of the data

Tweaking the Chart

Notice that when you view the chart it has no text or labels on it, it could confuse some people so let's put some labels on there for the end user.


1. Right Click on the Chart and navigate to ->Properties
2. Select the Chart Areas Property under Chart and click the ellipses button(...) next to the word (Collection)
3. Then select the ellipses button next to the Axes property on the new popup window
4. This will bring us to where we can add labels for our AxesChange the Label Property Of the X Axis to say Weeks and Change the Label Property of the Y axis to say Items Done.
5. One more step to add a Table Title will Make it look even better so Go back to the Chart Properties and select the ellipses button next to the Titles Property
6. Click the Add button at the bottom Then change the (Text) property to say Productivity of Employee1 Over 7 Weeks
7. Now your table should look much better when you Load the Page

Reasons why you must trust ASPHostPortal.com

Every provider will tell you how they treat their support, uptime, expertise, guarantees, etc., are. Take a close look. What they’re really offering you is nothing close to what ASPHostPortal does. You will be treated with respect and provided the courtesy and service you would expect from a world-class web hosting business.


You’ll have highly trained, skilled professional technical support people ready, willing, and wanting to help you 24 hours a day. Your web hosting account servers are monitored from three monitoring points, with two alert points, every minute, 24 hours a day, 7 days a week, 365 days a year. The followings are the list of other added- benefits you can find when hosting with us:

- DELL Hardware
Dell hardware is engineered to keep critical enterprise applications running around the clock with clustered solutions fully tested and certified by Dell and other leading operating system and application providers.
- Recovery Systems
Recovery becomes easy and seamless with our fully managed backup services. We monitor your server to ensure your data is properly backed up and recoverable so when the time comes, you can easily repair or recover your data.
- Control Panel
We provide one of the most comprehensive customer control panels available. Providing maximum control and ease of use, our Control Panel serves as the central management point for your ASPHostPortal account. You’ll use a flexible, powerful hosting control panel that will give you direct control over your web hosting account. Our control panel and systems configuration is fully automated and this means your settings are configured automatically and instantly.
- Excellent Expertise in Technology
The reason we can provide you with a great amount of power, flexibility, and simplicity at such a discounted price is due to incredible efficiencies within our business. We have not just been providing hosting for many clients for years, we have also been researching, developing, and innovating every aspect of our operations, systems, procedures, strategy, management, and teams. Our operations are based on a continual improvement program where we review thousands of systems, operational and management metrics in real-time, to fine-tune every aspect of our operation and activities. We continually train and retrain all people in our teams. We provide all people in our teams with the time, space, and inspiration to research, understand, and explore the Internet in search of greater knowledge. We do this while providing you with the best hosting services for the lowest possible price.
- Data Center
ASPHostPortal modular Tier-3 data center was specifically designed to be a world-class web hosting facility totally dedicated to uncompromised performance and security
- Monitoring Services
From the moment your server is connected to our network it is monitored for connectivity, disk, memory and CPU utilization – as well as hardware failures. Our engineers are alerted to potential issues before they become critical.
- Network
ASPHostPortal has architected its network like no other hosting company. Every facet of our network infrastructure scales to gigabit speeds with no single point of failure.
- Security
Network security and the security of your server are ASPHostPortal’s top priorities. Our security team is constantly monitoring the entire network for unusual or suspicious behavior so that when it is detected we can address the issue before our network or your server is affected.
- Support Services
Engineers staff our data center 24 hours a day, 7 days a week, 365 days a year to manage the network infrastructure and oversee top-of-the-line servers that host our clients’ critical sites and services.



ASP.NET 4 Hosting - ASPHostPortal :: How to Fix "PageHandlerFactory-Integrated" bad module "ManagedPipelineHandler in IIS7

clock June 3, 2011 05:58 by author Jervis

After setting up a new Windows 7 computer with IIS 7.5 and Visual Studio 2010, I tried to start my ASP.NET 4.0 website using the Local IIS web server.  However, right off the bat I was hit with the following IIS error message:

HTTP Error 500.21 - Internal Server Error

Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list.

I knew the website worked correctly, because it ran fine in the Visual Studio Development Server, just not in IIS 7. Apparently, the reason I was recieving the Internal Server error message was that I had installed SQL Server 2008, after installing Visual Studio 2010, and because of this it corrupted the IIS Machine level configuration files ("If you install VS2010 and then install VS2008 and VS2008 SP1, the configuration files for ASP.NET in IIS only include about 1/2 of the correct .Net 4.0 configuration sections." read more
here). 

To repair this problem I ran a full silent repair of the .NET Framework 4.0.   Here's how on either a 32 bit or 64 bit computer:

1. Click Startà All Programsà Accessoriesà
Run
2. In the Open textbox paste in the following line (see list of all .NET Framework version install, repair and unistall command lines
here):

For silent repair on 32 bit computer with .Net Framework version 4.0.30319 use

%windir%\Microsoft.NET\Framework\v4.0.30319\SetupCache\Client\setup.exe /repair /x86 /x64 /ia64 /parameterfolder Client /q /norestart

For silent repair on 64 bit computer with .Net Framework version 4.0.30319 use:

%windir%\Microsoft.NET\Framework64\v4.0.30319\SetupCache\Client\setup.exe /repair /x86 /x64 /ia64 /parameterfolder Client /q /norestart

3. Click OK to start the repair
4. And then, restarted the IIS 7.5 and you’ll see the magic. J

Some people also seem to be having success correcting this error by running aspnet_regiis.exe. I initially tried this and it did not work for me, but feel free to give it a shot. (Keep in mind for the example below I have .Net Framework version 4.0.3.0319 installed on my computer, but you may need to change directory version to what is installed on your computer):  Here's how to run aspnet_regiis.exe:  

1. Run program command line:

run %windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe –i

If you want to open it using the Run program, just type in "Run" in the Windows 7 search box, then use the following line below in the Open box, then click OK:


%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe –i

Note if your computer is 64 bit, then I would change the line to:

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe –i

Hopefully, these solutions help get you up and running and fix the IIS7 error...  Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list.

Reasons why you must trust ASPHostPortal.com

Every provider will tell you how they treat their support, uptime, expertise, guarantees, etc., are. Take a close look. What they’re really offering you is nothing close to what ASPHostPortal does. You will be treated with respect and provided the courtesy and service you would expect from a world-class web hosting business.

You’ll have highly trained, skilled professional technical support people ready, willing, and wanting to help you 24 hours a day. Your web hosting account servers are monitored from three monitoring points, with two alert points, every minute, 24 hours a day, 7 days a week, 365 days a year. The followings are the list of other added- benefits you can find when hosting with us:

- DELL Hardware
Dell hardware is engineered to keep critical enterprise applications running around the clock with clustered solutions fully tested and certified by Dell and other leading operating system and application providers.
- Recovery Systems
Recovery becomes easy and seamless with our fully managed backup services. We monitor your server to ensure your data is properly backed up and recoverable so when the time comes, you can easily repair or recover your data.
- Control Panel
We provide one of the most comprehensive customer control panels available. Providing maximum control and ease of use, our Control Panel serves as the central management point for your ASPHostPortal account. You’ll use a flexible, powerful hosting control panel that will give you direct control over your web hosting account. Our control panel and systems configuration is fully automated and this means your settings are configured automatically and instantly.
- Excellent Expertise in Technology
The reason we can provide you with a great amount of power, flexibility, and simplicity at such a discounted price is due to incredible efficiencies within our business. We have not just been providing hosting for many clients for years, we have also been researching, developing, and innovating every aspect of our operations, systems, procedures, strategy, management, and teams. Our operations are based on a continual improvement program where we review thousands of systems, operational and management metrics in real-time, to fine-tune every aspect of our operation and activities. We continually train and retrain all people in our teams. We provide all people in our teams with the time, space, and inspiration to research, understand, and explore the Internet in search of greater knowledge. We do this while providing you with the best hosting services for the lowest possible price.
- Data Center
ASPHostPortal modular Tier-3 data center was specifically designed to be a world-class web hosting facility totally dedicated to uncompromised performance and security
- Monitoring Services
From the moment your server is connected to our network it is monitored for connectivity, disk, memory and CPU utilization – as well as hardware failures. Our engineers are alerted to potential issues before they become critical.
- Network
ASPHostPortal has architected its network like no other hosting company. Every facet of our network infrastructure scales to gigabit speeds with no single point of failure.
- Security
Network security and the security of your server are ASPHostPortal’s top priorities. Our security team is constantly monitoring the entire network for unusual or suspicious behavior so that when it is detected we can address the issue before our network or your server is affected.
- Support Services
Engineers staff our data center 24 hours a day, 7 days a week, 365 days a year to manage the network infrastructure and oversee top-of-the-line servers that host our clients’ critical sites and services.



ASP.NET 4 Hosting - ASPHostPortal :: How to FIx "The configuration section 'system.web.extensions' cannot be read because it is missing a section declaration"

clock May 23, 2011 11:24 by author Jervis

Have you seen this error with a Visual Studio 2010 ASP.NET or Silverlight project? 

The configuration section 'system.web.extensions' cannot be read because it is missing a section declaration.

You can see this image below for clearly:



You can also get this error when you go to the Internet Information Services (IIS) Manager for IIS7 when you click on the application directory.



It’s because you’ve deployed your application on to an IIS Server where the application’s AppPool is set to run under the DefaultAppPool.  DefaultAppPool is automatically configured to run under .NET 2.0 rather than .NET 4.0.  This means that the System.Web.Extensions stuff is unavailable to that version of the .NET Framework.

Here’s what the Application Pools configuration looks like in IIS Manager.



To change the Application Pool (AppPool) settings for your web application

1. Select the application directory
2. Under Actions, click Basic Settings…



Your application pool is probably set to DefaultAppPool.



3. Change the Application Pool to ASP.NET v4.0 (or another .NET 4.0 app pool) by clicking on the Select… button.



4. Then, click OK.

5. Please try to run it again and it should work.



ASP.NET 4 Hosting - ASPHostPortal :: Using CultureInfo for Globalization/Localization of an Asp.Net Application

clock May 19, 2011 07:15 by author Jervis

Globalization is the process of making the application able to handle different culture and regions, while localization is the process of customization of the application for a specific culture and region.

You use resource files (.resx) to localize the resources in your application. You use classes in System.Globalization namespace to make your application culture aware.

The main class in Systme.Globalization namespace is the CultureInfo class. It contains many methods and properties to identify different cultures and configure your application to use a specific culture.

You use System.Threading.Thread.CurrentCulture and System.Threading.Thread.CurrentUICulture to configure your application to use a specific culture setting.

So how do you set which culture to use with your application?

The System.Threading.Thread.CurrentCulture property is used to set a specific culture for the application. This property mainly defines how the application will format the datetime string and currency. So if you are manipulating datetime and currency in your application and want you application to correctly format them based on the use's culture then you need to set the System.Threading.Thread.CurrentCulture property.

The System.Threading.Thread.CurrentUICulture property is used to set a neutral culture for the application. This property mainly defines what resource files to use for your application. Say for example, for English user you want display content in your site in English and for French users you want to display your sites in French. So you create different resource files for different languages and set this property and your application will automatically select correct resource file to used based on the culture setting.

There are three types of Culture your application can use. One is InvariantCulture, second is NeutralCulture and the last one is SpecificCulture.

InvariantCulture actually means culture agnostic. You use InvariantCulture when you want to compare strings, display or compare dates in culture agnostic way. By default it uses the en-US culture.

NeutralCulture is actually a language specific culture without regard to the country specific datetime and currency formats. You use this culture to determine which language specific resource file your application will use. You can specify NeutralCulture with two lower case characters identifying the language. For example, 'en' for English, 'fr' for French, 'es' for Spanish.

SpecificCulture is the language and country specific culture which determines the language to use with your application and also the datetime and currency format to use with your application. You specify the specific culture with two lower case characters identifying the language and two upper case characters identifying the country separated by hyphen. For example, 'en-US' for English (US), 'en-GB' for English (UK), 'fr-FR' for French(France) etc.

So while setting the culture to use with you application, you set the CurrentCulture property to a SpecificCulture and the CurrentUICulture property to a NeutralCulture.

Let's see an example to set the culture for an application.

CultureInfo ci = new CultureInfo("en-US);
CultureInfo ciUI = new CultureInfo("en");
System.Threading.Thread.CurrentCulture = ci; System.Threading.Thread.CurrentUICulture = ciUI;

In the above two lines, you are telling your application to use English as the culture. As said before, CurrentCulture property will determines which format to use for displaying datetimes and currency while the CurrentUICulture will determine which resource files to use while displaying strings in your application. You can see that the CurrentCulture property is set to "en-US" which a specific culture for English for United Status, while the CurrentUICulture property is set to "en" which is a neutral culture.



ASP.NET 4 Hosting - ASPHostPortal :: How to Fix "The viewstate is invalid for this page and might be corrupted"

clock May 5, 2011 05:20 by author Jervis

Sometimes, we often find people complain about this error:

"The viewstate is invalid for this page and might be corrupted"

This error is usually caused by the asp worker process or the server recycling. By default, ASP.NET encrypts the viewstate using an Autogenerated Key when the process spins up. The problem comes when a client (browser) sends the request with a viewstate encrypted with the key generated by another worker process. Since the key is different, ASP.NET will not be able to decrypt the viewstate and it will throw the above error.

So, how to see this error message? There are several ways to get around this problem:

1. Host your site on a server that never restarts or recycles. But if you on shared server, it is impossible as the server has never been restarted.

2. Disable ViewstateMac by putting this ?enableViewStateMac='false'? in your web.config. This approach is not 100% secure.

3. Configure ASP.NET to not use Auto-Generated Key but rather a predefined key. This is the preferred method.

To do this, follow these steps:

- Either build your own Key Generator (
http://support.microsoft.com/kb/313091/EN-US/) or use this tool (http://www.aspnetresources.com/tools/keycreator.aspx). I highly recommend you use the online tool. So assuming you will use the online tool:

- In the online tool, simply click on ?Generate?.

- Copy the content in the textbox into your site?s web.config file. The machineKey node should be within <system.web>

eg.

<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<machineKey
validationKey='2EEA416CEFC6D6BE856ED57B97FB9CA7DFA CE17C073125949A1D682C80A44BB2A
D887DDDC13DBFB0954F1000FEE5757E99693F222F8E28CAA2E 6DAB8C4F99E0C'
decryptionKey='877478B2F33A74226ABEF55FDCC1A76E43F 1BBEA6241A592'
validation='SHA1' />
<compilation debug='false'/>
<authentication mode='Windows'/>
<pages enableViewStateMac='true'/>
</system.web>
</configuration>

For more information on viewstate troubleshooting, please visit Microsoft site.

Reasons why you must trust ASPHostPortal.com


Every provider will tell you how they treat their support, uptime, expertise, guarantees, etc., are. Take a close look. What they’re really offering you is nothing close to what ASPHostPortal does. You will be treated with respect and provided the courtesy and service you would expect from a world-class web hosting business.

You’ll have highly trained, skilled professional technical support people ready, willing, and wanting to help you 24 hours a day. Your web hosting account servers are monitored from three monitoring points, with two alert points, every minute, 24 hours a day, 7 days a week, 365 days a year. The followings are the list of other added- benefits you can find when hosting with us:

- DELL Hardware
Dell hardware is engineered to keep critical enterprise applications running around the clock with clustered solutions fully tested and certified by Dell and other leading operating system and application providers.
- Recovery Systems
Recovery becomes easy and seamless with our fully managed backup services. We monitor your server to ensure your data is properly backed up and recoverable so when the time comes, you can easily repair or recover your data.
- Control Panel
We provide one of the most comprehensive customer control panels available. Providing maximum control and ease of use, our Control Panel serves as the central management point for your ASPHostPortal account. You’ll use a flexible, powerful hosting control panel that will give you direct control over your web hosting account. Our control panel and systems configuration is fully automated and this means your settings are configured automatically and instantly.
- Excellent Expertise in Technology
The reason we can provide you with a great amount of power, flexibility, and simplicity at such a discounted price is due to incredible efficiencies within our business. We have not just been providing hosting for many clients for years, we have also been researching, developing, and innovating every aspect of our operations, systems, procedures, strategy, management, and teams. Our operations are based on a continual improvement program where we review thousands of systems, operational and management metrics in real-time, to fine-tune every aspect of our operation and activities. We continually train and retrain all people in our teams. We provide all people in our teams with the time, space, and inspiration to research, understand, and explore the Internet in search of greater knowledge. We do this while providing you with the best hosting services for the lowest possible price.
- Data Center
ASPHostPortal modular Tier-3 data center was specifically designed to be a world-class web hosting facility totally dedicated to uncompromised performance and security
- Monitoring Services
From the moment your server is connected to our network it is monitored for connectivity, disk, memory and CPU utilization – as well as hardware failures. Our engineers are alerted to potential issues before they become critical.
- Network
ASPHostPortal has architected its network like no other hosting company. Every facet of our network infrastructure scales to gigabit speeds with no single point of failure.
- Security
Network security and the security of your server are ASPHostPortal’s top priorities. Our security team is constantly monitoring the entire network for unusual or suspicious behavior so that when it is detected we can address the issue before our network or your server is affected.
- Support Services
Engineers staff our data center 24 hours a day, 7 days a week, 365 days a year to manage the network infrastructure and oversee top-of-the-line servers that host our clients’ critical sites and service
s.



ASP.NET MVC 3 Hosting - ASPHostPortal :: Dependency Injection with Unity 2.0

clock May 3, 2011 06:03 by author Jervis

This blog posts shows a step-by-step instruction how to integrate the Unity 2.0 dependency injection container in an ASP.NET MVC 3 web application.

Create MVC 3 project and add Unity 2.0

Create a new "ASP.NET MVC 3 Web Application" project in Visual Studio 2010. For simplicity, we will use the project template "Internet Application", which adds some some sample controllers and views to the project.

Download Unity 2.0
here from MSDN and run the setup. By default, the setup will extract all Unity files to C:\Program Files (x86)\Microsoft Unity Application Block 2.0\. Copy all dll files from the subfolder bin into your ASP.NET MVC 3 project. It is recommended to save them in a new subfolder (for example "libs") in your project. In detail, the project should now contain the following the dll files:

- Microsoft.Practices.ServiceLocation.dll
- Microsoft.Practices.Unity.Configuration.dll
- Microsoft.Practices.Unity.dll
- Microsoft.Practices.Unity.Interception.Configuration.dll
- Microsoft.Practices.Unity.Interception.dll

In the Solution Explorer, right click on "References" and click on "Add Reference..." and select these five dll files in the tab "Browse" to reference the libraries in your project

Register MVC 3 DependencyResolver

To use the Unity dependency injection container in the newly created ASP.NET MVC 3 project we first need an adapter class, that implements the interface IDependencyResolver and maps the method calls to a concrete Unity dependency injection container (an instance of IUnityContainer, see this post):

public class UnityDependencyResolver : IDependencyResolver
{
  readonly IUnityContainer _container;
  public UnityDependencyResolver(IUnityContainer container)
  {
    this._container = container;
  }
  public object GetService(Type serviceType)
  {
    try
    {
      return _container.Resolve(serviceType);
    }
    catch
    {
      return null;
    }
  }
  public IEnumerable<object>GetServices(Type serviceType)
  {
    try
    {
      return _container.ResolveAll(serviceType);
    }
    catch
    {
      return new List<object>();
    }
  }
}

In the Global.asax.cs file we will set up a Unity dependency injection container in the Application_Start method and use our little adapter class to register the Unity container as the service locator for the ASP.NET MVC application.

protected void Application_Start()
{
  [...] 

  var container = new UnityContainer();
  container.RegisterType<IMessages, Messages>();
  DependencyResolver.SetResolver(new UnityDependencyResolver(container));
}

In the above code, we also register a type with the container using the RegisterType method (you can find detailed information about configuring the Unity container and in the MSDN library).
In this simplified example, we just register the type IMessages with the concrete implementation Messages. The next section shows how this type is implemented and used.

Resolving dependencies

To test the dependency resolving, we modify the HomeController.cs and add a new property Messages which is annotated with the Dependency attribute and use this property in the Index action:

public class HomeController : Controller { 

  [Dependency]
  public IMessages Messages { get; set; } 

  public ActionResult Index()
  {
    ViewBag.Message = Messages.Welcome;
    return View();
   } 

  [...]
}

Of course, before we can build our ASP.NET application we need to implement the IMessages interface and Messages class:

public interface IMessages
{
  String Welcome { get; }
} 

public class Messages : IMessages
{
  string IMessages.Welcome
  {
    get { return "Hello world from Unity 2.0!"; }
  }
}

After building and starting the application the Unity dependency injection container should resolve the dependency that is defined in the HomeController and the application's start page should say "Hello world from Unity 2.0!".

I hope you can enjoy this tutorial. If you’re looking for ASP.NET MVC 3 hosting, you can visit our site at
http://asphostportal.com/Cheap-ASPNET-MVC-3-Hosting.aspx.

Reasons why you must trust ASPHostPortal.com

Every provider will tell you how they treat their support, uptime, expertise, guarantees, etc., are. Take a close look. What they’re really offering you is nothing close to what ASPHostPortal does. You will be treated with respect and provided the courtesy and service you would expect from a world-class web hosting business.


You’ll have highly trained, skilled professional technical support people ready, willing, and wanting to help you 24 hours a day. Your web hosting account servers are monitored from three monitoring points, with two alert points, every minute, 24 hours a day, 7 days a week, 365 days a year. The followings are the list of other added- benefits you can find when hosting with us:

- DELL Hardware
Dell hardware is engineered to keep critical enterprise applications running around the clock with clustered solutions fully tested and certified by Dell and other leading operating system and application providers.
- Recovery Systems
Recovery becomes easy and seamless with our fully managed backup services. We monitor your server to ensure your data is properly backed up and recoverable so when the time comes, you can easily repair or recover your data.
- Control Panel
We provide one of the most comprehensive customer control panels available. Providing maximum control and ease of use, our Control Panel serves as the central management point for your ASPHostPortal account. You’ll use a flexible, powerful hosting control panel that will give you direct control over your web hosting account. Our control panel and systems configuration is fully automated and this means your settings are configured automatically and instantly.
- Excellent Expertise in Technology
The reason we can provide you with a great amount of power, flexibility, and simplicity at such a discounted price is due to incredible efficiencies within our business. We have not just been providing hosting for many clients for years, we have also been researching, developing, and innovating every aspect of our operations, systems, procedures, strategy, management, and teams. Our operations are based on a continual improvement program where we review thousands of systems, operational and management metrics in real-time, to fine-tune every aspect of our operation and activities. We continually train and retrain all people in our teams. We provide all people in our teams with the time, space, and inspiration to research, understand, and explore the Internet in search of greater knowledge. We do this while providing you with the best hosting services for the lowest possible price.
- Data Center
ASPHostPortal modular Tier-3 data center was specifically designed to be a world-class web hosting facility totally dedicated to uncompromised performance and security
- Monitoring Services
From the moment your server is connected to our network it is monitored for connectivity, disk, memory and CPU utilization – as well as hardware failures. Our engineers are alerted to potential issues before they become critical.
- Network
ASPHostPortal has architected its network like no other hosting company. Every facet of our network infrastructure scales to gigabit speeds with no single point of failure.
- Security
Network security and the security of your server are ASPHostPortal’s top priorities. Our security team is constantly monitoring the entire network for unusual or suspicious behavior so that when it is detected we can address the issue before our network or your server is affected.
- Support Services
Engineers staff our data center 24 hours a day, 7 days a week, 365 days a year to manage the network infrastructure and oversee top-of-the-line servers that host our clients’ critical sites and services.



ASP.NET 4 Hosting - ASPHostPortal :: Global.asax in ASP.NET for locking web pages, security and license management system

clock April 27, 2011 07:22 by author Jervis

Introduction

The Global.asax file is an optional file used to declare and handle application and session-level events and objects for an ASP.NET web site running on an IIS Web Server. The file contains ASP.NET program code, and is the .NET counterpart of the Global.asa file used for ASP. The Global.asax file resides in the IIS virtual root of an ASP.NET application.
Default Structure of Global.asax

using
System;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;

namespace TestApplication
{
    public class Global : System.Web.
HttpApplication
    {
       
 
        protected void Application_Start(object sender, EventArgs e)
        {
        }

        protected void Session_Start(object sender, EventArgs e)
        {
          
 
        }
 
        protected void Application_BeginRequest(object sender, EventArgs e)
        {
 
        }
 
protected void Application_AuthenticateRequest(object sender, EventArgs e)
        {
 
        }
 
        protected void Application_Error(object sender, EventArgs e)
        {

        }

         protected void Session_End(object sender, EventArgs e)
        {

        }

        protected void Application_End(object sender, EventArgs e)
        {
 
        }
 
protected void Application_PreRequestHandlerExecute(object sender, EventArgs e)
        {
           
        }
 
        private bool IsUrlInModule(List<string> modules, string url)
        {
           
        }
    }
}

global.asax events

• HttpApplication Events


1. Application_AcquireRequestState

Occurs when ASP.NET acquires the current state (for example, session state) that is associated with the current request.  


2. Application_AuthenticateRequest

Occurs when a security module has established the identity of the user.

3. Application_AuthorizeRequest

Occurs when a security module has verified user authorization.

4. Application_BeginRequest

Occurs as the first event in the HTTP pipeline chain of execution when ASP.NET responds to a request.

5. Application_Disposed

Adds an event handler to listen to the Disposed event on the application.

6. Application_EndRequest

Occurs as the last event in the HTTP pipeline chain of execution when ASP.NET responds to a request.

7. Application_Error

Occurs when an unhandled exception is thrown.

8. Application_PostAcquireRequestState

Occurs when the request state (for example, session state) that is associated with the current request has been obtained.

9. Application_PostAuthenticateRequest

Occurs when a security module has established the identity of the user.

10. Application_PostAuthorizeRequest

Occurs when the user for the current request has been authorized.

11. Application_PostMapRequestHandler

Occurs when ASP.NET has mapped the current request to the appropriate event handler.

12. Application_PostReleaseRequestState

Occurs when ASP.NET has completed executing all request event handlers and the request state data has been stored.

13. Application_PostRequestHandlerExecute

Occurs when the ASP.NET event handler (for example, a page or an XML Web service) finishes execution.

14. Application_PostResolveRequestCache

Occurs when ASP.NET bypasses execution of the current event handler and allows a caching module to serve a request from the cache.

15. Application_PostUpdateRequestCache

Occurs when ASP.NET completes updating caching modules and storing responses that are used to serve subsequent requests from the cache.

16. Application_PreRequestHandlerExecute

Occurs just before ASP.NET begins executing an event handler (for example, a page or an XML Web service).

17. Application_PreSendRequestContent

Occurs just before ASP.NET sends content to the client.

18. Application_PreSendRequestHeaders

Occurs just before ASP.NET sends HTTP headers to the client.

19. Application_ReleaseRequestState

Occurs after ASP.NET finishes executing all request event handlers. This event causes state modules to save the current state data.

20. Application_ResolveRequestCache

Occurs when ASP.NET completes an authorization event to let the caching modules serve requests from the cache, bypassing execution of the event handler (for example, a page or an XML Web service).

21. Application_UpdateRequestCache

Occurs when ASP.NET finishes executing an event handler in order to let caching modules store responses that will be used to serve subsequent requests from the cache.

22. Application_Init

This method occurs after _start and is used for initializing code.

23. Application_Start

As with traditional ASP, used to set up an application environment and only called when the application first starts.

24. Application_End

Again, like classic ASP, used to clean up variables and memory when an application ends.

• Session Events:

1. Session_Start

As with classic ASP, this event is triggered when any new user accesses the web site.  

2. Session_End

As with classic ASP, this event is triggered when a user's session times out or ends. Note this can be 20 mins (the default session timeout value) after the user actually leaves the site.

• Profile Events:

1. Profile_MigrateAnonymous

Occurs when the anonymous user for a profile logs in.

• Passport Events:

1. PassportAuthentication_OnAuthenticate
Raised during authentication. This is a Global.asax event that must be named PassportAuthentication_OnAuthenticate.

Possibly more events defined in other HttpModules

System.Web.Caching.OutputCacheModule
System.Web.SessionState.SessionStateModule
System.Web.Security.WindowsAuthentication
System.Web.Security.FormsAuthenticationModule
System.Web.Security.PassportAuthenticationModule
System.Web.Security.UrlAuthorizationModule
System.Web.Security.FileAuthorizationModule
System.Web.Profile.ProfileModule


Conclusion


In this article we have seen that global.asax file events. So we can use this every web application for application control, state and Application management , locking web pages , security of web application and license management system.

Reasons why you must trust ASPHostPortal.com

Every provider will tell you how they treat their support, uptime, expertise, guarantees, etc., are. Take a close look. What they’re really offering you is nothing close to what ASPHostPortal does. You will be treated with respect and provided the courtesy and service you would expect from a world-class web hosting business.


You’ll have highly trained, skilled professional technical support people ready, willing, and wanting to help you 24 hours a day. Your web hosting account servers are monitored from three monitoring points, with two alert points, every minute, 24 hours a day, 7 days a week, 365 days a year. The followings are the list of other added- benefits you can find when hosting with us:

- DELL Hardware
Dell hardware is engineered to keep critical enterprise applications running around the clock with clustered solutions fully tested and certified by Dell and other leading operating system and application providers.
- Recovery Systems
Recovery becomes easy and seamless with our fully managed backup services. We monitor your server to ensure your data is properly backed up and recoverable so when the time comes, you can easily repair or recover your data.
- Control Panel
We provide one of the most comprehensive customer control panels available. Providing maximum control and ease of use, our Control Panel serves as the central management point for your ASPHostPortal account. You’ll use a flexible, powerful hosting control panel that will give you direct control over your web hosting account. Our control panel and systems configuration is fully automated and this means your settings are configured automatically and instantly.
- Excellent Expertise in Technology
The reason we can provide you with a great amount of power, flexibility, and simplicity at such a discounted price is due to incredible efficiencies within our business. We have not just been providing hosting for many clients for years, we have also been researching, developing, and innovating every aspect of our operations, systems, procedures, strategy, management, and teams. Our operations are based on a continual improvement program where we review thousands of systems, operational and management metrics in real-time, to fine-tune every aspect of our operation and activities. We continually train and retrain all people in our teams. We provide all people in our teams with the time, space, and inspiration to research, understand, and explore the Internet in search of greater knowledge. We do this while providing you with the best hosting services for the lowest possible price.
- Data Center
ASPHostPortal modular Tier-3 data center was specifically designed to be a world-class web hosting facility totally dedicated to uncompromised performance and security
- Monitoring Services
From the moment your server is connected to our network it is monitored for connectivity, disk, memory and CPU utilization – as well as hardware failures. Our engineers are alerted to potential issues before they become critical.
- Network
ASPHostPortal has architected its network like no other hosting company. Every facet of our network infrastructure scales to gigabit speeds with no single point of failure.
- Security
Network security and the security of your server are ASPHostPortal’s top priorities. Our security team is constantly monitoring the entire network for unusual or suspicious behavior so that when it is detected we can address the issue before our network or your server is affected.
- Support Services
Engineers staff our data center 24 hours a day, 7 days a week, 365 days a year to manage the network infrastructure and oversee top-of-the-line servers that host our clients’ critical sites and services.



ASP.NET MVC 3 Hosting - ASPHostPortal :: Global Action Filters in ASP.NET MVC 3

clock April 19, 2011 05:27 by author Jervis

Action Filters are a great way to handle cross-cutting concerns in ASP.NET MVC such as Logging, ExceptionHandling, etc.  In previous versions of MVC3, action filters have to be explicitly added to each controller. 

MVC3 adds the concept of Global Action Filters which allow you to apply action filters globally without the need for explicit declaration.  In this example, we’ll demonstrate how to add a debug action filter attribute that shows debug information for each view using Global Action Filters.

DebugInfoAttribute.cs

/// <summary>
    /// Displays the elapsed time and environment for each executed action in the HTTP Response Stream.
    /// </summary>
    public class DebugInfoAttribute : ActionFilterAttribute
    {
        readonly Stopwatch _startWatch = new Stopwatch();
        private static string _outputFormat = "<h4>Debug Environment Info</h4><div class=\"debuginfo\"><table><tr><td>Web Server:</td><td>{0}</td></tr><tr><td>Browser:</td><td>{1}</td></tr><tr><td>Controller</td><td>{3}</td></tr><tr><td>Action:</td><td>{4}</td></tr><tr><td>Execution Time(ms):</td><td>{5}</td></tr></table></div>";
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            _startWatch.Start();
        } 

        public override void OnResultExecuted(ResultExecutedContext filterContext)
        {
            _startWatch.Stop();
            var browser = filterContext.HttpContext.Request.Browser;
            filterContext.HttpContext.Response.Write(string.Format(_outputFormat,
                                                                   HttpContext.Current.Request.ServerVariables[
                                                                       "SERVER_NAME"],
                                                                   String.Format("{0} ({1})",browser.Browser,browser.Version),
                                                                       filterContext.RouteData.Values["controller"],???????????????
                                                                       filterContext.RouteData.Values["action"],
                                                                       _startWatch.ElapsedMilliseconds));
        }
    }

This action filter uses the StopWatch object to clock how long the action took to execute, and displays that information in a view.

It’s applied normally by adding the “DebugInfo” attribute to the top of a controller class, as below.

[DebugInfo]
    public class HomeController : Controller

This results in the output seen below on our views:



If we click the “LogOn” link on our default application, we won’t see this information as we haven’t applied this filter to the “Account” controller.  Lets see how we can set an action filter to display gloablly.

Registering Global Action Filters

MVC3 adds a new function into our Global.asax called Register Global Filters.  To apply a filter globally, simply add a new line specifying your action filter as below.

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
            filters.Add(new DebugInfoAttribute());
        }

Now, when we click on the “Log On” link, we can see the DebugInfo filter has been automatically applied to the Account controller.



Reasons why you must trust ASPHostPortal.com

Every provider will tell you how they treat their support, uptime, expertise, guarantees, etc., are. Take a close look. What they’re really offering you is nothing close to what ASPHostPortal does. You will be treated with respect and provided the courtesy and service you would expect from a world-class web hosting business.


You’ll have highly trained, skilled professional technical support people ready, willing, and wanting to help you 24 hours a day. Your web hosting account servers are monitored from three monitoring points, with two alert points, every minute, 24 hours a day, 7 days a week, 365 days a year. The followings are the list of other added- benefits you can find when hosting with us:

- DELL Hardware
Dell hardware is engineered to keep critical enterprise applications running around the clock with clustered solutions fully tested and certified by Dell and other leading operating system and application providers.
- Recovery Systems
Recovery becomes easy and seamless with our fully managed backup services. We monitor your server to ensure your data is properly backed up and recoverable so when the time comes, you can easily repair or recover your data.
- Control Panel
We provide one of the most comprehensive customer control panels available. Providing maximum control and ease of use, our Control Panel serves as the central management point for your ASPHostPortal account. You’ll use a flexible, powerful hosting control panel that will give you direct control over your web hosting account. Our control panel and systems configuration is fully automated and this means your settings are configured automatically and instantly.
- Excellent Expertise in Technology
The reason we can provide you with a great amount of power, flexibility, and simplicity at such a discounted price is due to incredible efficiencies within our business. We have not just been providing hosting for many clients for years, we have also been researching, developing, and innovating every aspect of our operations, systems, procedures, strategy, management, and teams. Our operations are based on a continual improvement program where we review thousands of systems, operational and management metrics in real-time, to fine-tune every aspect of our operation and activities. We continually train and retrain all people in our teams. We provide all people in our teams with the time, space, and inspiration to research, understand, and explore the Internet in search of greater knowledge. We do this while providing you with the best hosting services for the lowest possible price.
- Data Center
ASPHostPortal modular Tier-3 data center was specifically designed to be a world-class web hosting facility totally dedicated to uncompromised performance and security
- Monitoring Services
From the moment your server is connected to our network it is monitored for connectivity, disk, memory and CPU utilization – as well as hardware failures. Our engineers are alerted to potential issues before they become critical.
- Network
ASPHostPortal has architected its network like no other hosting company. Every facet of our network infrastructure scales to gigabit speeds with no single point of failure.
- Security
Network security and the security of your server are ASPHostPortal’s top priorities. Our security team is constantly monitoring the entire network for unusual or suspicious behavior so that when it is detected we can address the issue before our network or your server is affected.
- Support Services
Engineers staff our data center 24 hours a day, 7 days a week, 365 days a year to manage the network infrastructure and oversee top-of-the-line servers that host our clients’ critical sites and services.



ASP.NET MVC 3 Hosting - ASPHostPortal :: How to Install ASP.NET MVC 3

clock April 18, 2011 07:22 by author Jervis

Microsoft's release of ASP.NET MVC 3 offers developers a new and improved framework for building web applications in the Model-View-Controller pattern. As expected, ASP.NET MVC 3 comes with many new features that improve on the ones present in MVC 1 and 2. It can also be installed side-by-side with ASP.NET MVC 2. Before we discuss ASP.NET MVC 3's installation process, let's discuss some of the framework's new features first.

The new Razor view engine comes with plenty of useful features within itself, such as HTML helpers.  It is based on well-known languages such as Visual Basic and C#, so its learning curve is minimal.  The view engine also helps to improve efficiency by cutting down on keystrokes with syntax that is short and to the point.  You can unit test Razor views without having to run an application or launch a web server as well.

ASP.NET MVC 3 also offers support for multiple view engines and implements various controller improvements. The new ViewBag property is one controller improvement that is similar to the ViewData property, but offers a simpler syntax.  Other controller improvements in MVC 3 include some new ActionResult types and global action filters.

The realms of JavaScript and Ajax have drawn some improvements as well.  For example, client-side validation is now enabled by default, and JSON binding support has been integrated.  ASP.NET MVC 3's other highlights include better support for dependency injection, model validation improvements, partial-page output caching, sessionless controller support, and more.

Now that you have a preview of some of the improvements that ASP.NET MVC 3 has to offer, it's time to download and install the framework.

To begin installing ASP.NET MVC 3, visit the following link:

http://www.microsoft.com/web/gallery/install.aspx?appid=MVC3

Before you start the download, there are some system requirements to keep in mind.  For the installer to work, you will need to have administrator privileges on your computer.  You will also need to be using one of the following operating systems:

Windows 7, Windows Vista, Windows Vista SP1, Windows XP SP2+, Windows Server 2008, Windows Server 2008 R2, or Windows Server 2003 SP1+.



Begin the installation by clicking on Install Now.  Depending on which internet browser you are using, you may be asked to either save the installer file or run it.  After you have saved the file and it has downloaded, locate it and double-click to begin the installation using Microsoft's Web Platform Installer.



Once the installer appears, click Install.



A window will appear that displays the different components that will be installed.  Once you have looked over the components, click I Accept.  The installation should now begin.  The process could take a while, so give it some time to complete.



After the installation is completed, a congratulations window will appear.  Click Finish to exit the installation.

Reasons why you must trust ASPHostPortal.com

Every provider will tell you how they treat their support, uptime, expertise, guarantees, etc., are. Take a close look. What they’re really offering you is nothing close to what ASPHostPortal does. You will be treated with respect and provided the courtesy and service you would expect from a world-class web hosting business.


You’ll have highly trained, skilled professional technical support people ready, willing, and wanting to help you 24 hours a day. Your web hosting account servers are monitored from three monitoring points, with two alert points, every minute, 24 hours a day, 7 days a week, 365 days a year. The followings are the list of other added- benefits you can find when hosting with us:

- DELL Hardware
Dell hardware is engineered to keep critical enterprise applications running around the clock with clustered solutions fully tested and certified by Dell and other leading operating system and application providers.
- Recovery Systems
Recovery becomes easy and seamless with our fully managed backup services. We monitor your server to ensure your data is properly backed up and recoverable so when the time comes, you can easily repair or recover your data.
- Control Panel
We provide one of the most comprehensive customer control panels available. Providing maximum control and ease of use, our Control Panel serves as the central management point for your ASPHostPortal account. You’ll use a flexible, powerful hosting control panel that will give you direct control over your web hosting account. Our control panel and systems configuration is fully automated and this means your settings are configured automatically and instantly.
- Excellent Expertise in Technology
The reason we can provide you with a great amount of power, flexibility, and simplicity at such a discounted price is due to incredible efficiencies within our business. We have not just been providing hosting for many clients for years, we have also been researching, developing, and innovating every aspect of our operations, systems, procedures, strategy, management, and teams. Our operations are based on a continual improvement program where we review thousands of systems, operational and management metrics in real-time, to fine-tune every aspect of our operation and activities. We continually train and retrain all people in our teams. We provide all people in our teams with the time, space, and inspiration to research, understand, and explore the Internet in search of greater knowledge. We do this while providing you with the best hosting services for the lowest possible price.
- Data Center
ASPHostPortal modular Tier-3 data center was specifically designed to be a world-class web hosting facility totally dedicated to uncompromised performance and security
- Monitoring Services
From the moment your server is connected to our network it is monitored for connectivity, disk, memory and CPU utilization – as well as hardware failures. Our engineers are alerted to potential issues before they become critical.
- Network
ASPHostPortal has architected its network like no other hosting company. Every facet of our network infrastructure scales to gigabit speeds with no single point of failure.
- Security
Network security and the security of your server are ASPHostPortal’s top priorities. Our security team is constantly monitoring the entire network for unusual or suspicious behavior so that when it is detected we can address the issue before our network or your server is affected.
- Support Services
Engineers staff our data center 24 hours a day, 7 days a week, 365 days a year to manage the network infrastructure and oversee top-of-the-line servers that host our clients’ critical sites and services.



Cheap ASP.NET 4.5 Hosting

We’re a company that works differently to most. Value is what we output and help our customers achieve, not how much money we put in the bank. It’s not because we are altruistic. It’s based on an even simpler principle. "Do good things, and good things will come to you".

Success for us is something that is continually experienced, not something that is reached. For us it is all about the experience – more than the journey. Life is a continual experience. We see the Internet as being an incredible amplifier to the experience of life for all of us. It can help humanity come together to explode in knowledge exploration and discussion. It is continual enlightenment of new ideas, experiences, and passions


Author Link

 photo ahp banner aspnet-01_zps87l92lcl.png

 

Corporate Address (Location)

ASPHostPortal
170 W 56th Street, Suite 121
New York, NY 10019
United States

Tag cloud

Sign in