Monday, July 30, 2007

New version of CSS Friendly control adapters for asp.net

As a developer we all love css (Cascading style sheet). Microsoft has significantly updated his css friendly control adapters kit.

The key is to use something that may be new to you: control adapters. These are little chunks of logic that you add to your web site to effectively "adapt" an ASP.NET control to render the HTML you prefer. The ASP.NET 2.0 CSS Friendly Control Adapters kit provides pre-built control adapters that you can easily use to generate CSS friendly markup from some of the more commonly used ASP.NET controls

here is the link to download css friendly adaptors kit.
http://www.asp.net/cssadapters/
Share:
Friday, July 27, 2007

Maximum for objects in sql server

Here are some maximum number of different objects in sql server.
  1. maximum number of character in table name-128
  2. maximum number of character in column name-128
  3. maximum number of table columns per select statement -4096
  4. maximum number of table columns per table-1024
  5. maximum number of foreign key reference per table-253
  6. maximum number of column per index-16
  7. maximum number parameters in stored procedure -1024
  8. maximum number of columns in view-128
Share:

Diffrence between Oracle 9i and sql server 2000

Oracle and sql server both are great database management system and have great features. Often developer need to know what type of DBMS he should use for a particular needs.I have found a great comparison articles for oracle 9i and sql server 2000. Which describe all the feature of both DBMS and compare based on features.

here is the link for that article..
http://www.dotnetspider.com/kb/Article3289.aspx
Share:

Ten Must-Have Tools Every .NET Developer Should Download Now

James Avery created a list of tools that every developer should download.

This list contains .....
Snippet Compiler
Regulator
CodeSmith
Building a Custom Template
NUnit
Writing an NUnit Test
FxCop
Lutz Roeder's .NET Reflector
NDoc
NAnt
NAnt in Action
Switch Tools

here is the link of article that descries the every tools in great details...

http://msdn.microsoft.com/msdnmag/issues/04/07/MustHaveTools/
Share:

Ten Essential Tools - Visual Studio Add-Ins Every Developer Should Download Now

James Avery creates a list of ten add ins a visual studio developer must download.
This contains following add ins.

TestDriven.NET
GhostDoc
Smart Paster
CodeKeep
PInvoke.NET
VSWindowManager PowerToy
WSContractFirst
VSMouseBindings
CopySourceAsHTML
Cache Visualizer
Wrapping It Up

here is the article link for that...

http://msdn.microsoft.com/msdnmag/issues/05/12/VisualStudioAddins/
Share:

Book:Developing More-Secure Microsoft® ASP.NET 2.0 Applications

Microsoft Press has this great book.
this book includes...
• Harden a Web server, operating system, communication protocol, and ASP.NET Validate input data with white listing, regular expressions, sand boxing, and other techniques
•Understand design and security implications of various cryptography approaches
•Integrate with Microsoft Windows security features such as impersonation, delegation and protocol transition
•Implement Web farm, single sign-on, and mixed-mode authentication
•Use provider-based features for user and role management and authentication
•Trace attacks with error-handling, logging, and instrumentation
•Lock down your application with partial trust

here is the link to buy this book...
http://www.microsoft.com/MSPress/books/9989.aspx
Share:

Migrating to asp.net 2.0 videos

Microsoft asp.net team and and http://www.learn2asp.net/ has launched a new web cast series about migrating from other languages to asp.net 2.0.

It's contains following web casts;

Migrating to asp.net 2.0 (2 web casts)
Migrating from asp to asp.net 2.0
Migrating from jsp to asp.net 2.0
Migrating from coldfustion to asp.net 2.0( 2 web casts)
Using PHP on Windows Plateform.

here is link for that
http://www.asp.net/learn/videos/
Share:

New Version of ASP.NET Site.

Microsoft asp.net team has redesigned the asp.net site. Few days back they have beta version of it. Today they have launched full version. It is a great redesign and contents are very much well organized with less images so it's load faster then old version.

do visit new asp.net site.
http://www.asp.net/
Share:

Understanding .NET Framework Architecture.

Lots of developers developing the application using Microsoft.net framework. But most the of developer don't know the underlying architecture.

I have found a great article about .net framework which describes every aspect of .net framework architecture including objective of .net framework, Overview of .net framework,
Roll of .net framework,.NET Assembly, .Net CLR(Common Language Run time),JIT Compiler,
Future of .net framework etc.

It is a great article. Every .net developer must read it.

here is the link for that article.

Share:

Enumeration in C#.NET,VB.NET

Enumeration is a great user defined data type in C#.Net and VB.NET. It is very useful in code readability. It greatly increases the readability of code.

here is the example of the enumeration that contains the weekdays.

In C#.NET...

public enum weekdays
{
Sunday=1,
Monday=2,
Tuesday=3,
Wednesday=4,
Thursday=5,
Friday=6,
Saturday=7
}

In VB.NET...

public enum weekdays
Sunday=1,
Monday=2,
Tuesday=3,
Wednesday=4,
Thursday=5,
Friday=6,
Saturday=7,
end enum
here is the code that we can use in VB.NET

Imports System.ComponentModel
Imports System.Diagnostics
Dim enumWeekday As weekdays
Dim i As Integer
i=2
enumWeekDay=Ctype(i,weekdays)
debug.writeline(enumWeekdays.ToString())

Same way we can write in C#.NET

using System.ComponentModel;
using System.Diagnostics;

Weekdays enumWeekDays;
int i;
i=2;
enumWeekday=(Weekdays) i;
debug.writeline(enumWeekdays.ToString());



So you can see the it greatly increase readability also saves time to write code with switch case and if else
Share:

SQL Server Joins

Sql server joins are used to combine result data from two or more tables. Often we need to display data from two tables. Where sql server joins are very useful.

There are three types of sql server joins.

1) Inner Join
2) Outer Join
3) Cross Join


1. Inner Join:
Inner join will display data based on common columns of two tables. It will find
the data from both tables based on join condition.This join take every records of left table and looks in right table based on join conditions.

2. Outer Joins:

There are there types of outer joins.

2.1 Left Outer Join
2.2 Right Outer Join
2.3 Full Outer Join

2.1 Left Outer Join:

Left outer join will display all the rows from left table of join and display data from right table based on join condition. First it will display every row of left table and looks into the right table to display data based on join condition. If matching records are found then it will display data of right table with left table data otherwise put a null values instead of right table data.


2.2 Right Outer Join:

Right outer join will display all the rows from right table of join and display data from left table based on join condition. First It will display every row of right table and looks into the left table to display data based on join condition. If matching records are found then it will display data of left table with right table data otherwise put a null value instead of left table data.


2.3 Full Outer Join:

This joins are combination of both left outer join and right outer join. First it will put data like left outer join and it will put data like right outer join. If respective records are found in opposite table then it will display data otherwise it will display null values.


3 Cross Join:

Cross join is slightly different then full outer join. It does not have join condition it is not required in cross join. It will display data like Cartesian product of the tables. For example if table 1 have 3 rows and table 2 have 7 rows. Then it will display 21 rows from both tables.

First it will select first row of table 1 and first row of table 2
then it will select first row of table 1 and second row of table 2
then it will select first row of table 1 and third row of table 2


so on it will display data.
Share:
Thursday, July 26, 2007

Diffrenece Between Function and Procedure in SQL Server

Following are the main differences between sql server stored procedure and sql server user defined function.

Stored procedure does not return values but it returns a integer value indicates that stored procedure executed successfully. While user defined function in sql server must return a single value. You can not return more than one value in user defined function.

You can call user defined function in stored procedure while you can not call extended stored procedure in user defined function in sql server.
Share:
Tuesday, July 24, 2007

Cool link for OOP in C#.NET

Share:

Advantages of inheritance in C#.NET,VB.NET

Following are some advantages of inheritance.

1. No need to write code from scratch. You can start coding with existing classes.
2. Through inheritance you can very easily convert small system into large systems
3. You can lots of classes with the same root but have different implementations of classes.
4. Code reusablity through inheritance increased.
5. Good at representing the objects
6. Inheritance provide a clear model structure which is easy to understand without much
complexity.
7. code are easy to manage and divided into parent and child classes.
Share:

Sealed class and abstract class in C#.NET and VB.NET

Sealed Class:

A sealed class is a class the does not allow inheritance . Means you can not inherit the sealed class . In VB.NET sealed class is represented as Non Inheritable class.

Abstract class:

Abstraction is process of identifying common patterns that have semantic variations . An abstraction represents the common patterns and provide means of variations you can use.

Abstract class methods does not have implementation. It just contain a structure.

Abstract class is equivalent to must inherit class in vb.net
Share:

Access Modifier in .net class

Following are the access modifier in class of .net framework.

1. Public

Allow access to class member from any other class.

2. Private

Allow access to class member from same class only.

3. Protected

Allow access to class member from same class and inherited classes.

4. Internal

Allow access to the class member in same Assembly.

5. Protected Internal

Allow access to class member in same class,inherited classes and classes in same Assembly.

6. Static

Indicates member can be called without instantiating the class.
Share:
Monday, July 23, 2007

SSW Rules to write better software and website.

Do you believe in standards ? Lots of people like me believe in maintaining standards, How to write software, how to write code and how to write stored procedure.

I have found a great link that contains almost all the links for every standards beginning from project management to email and phone communication. They have achieved great success by following this great standards.

here is the link for that article...
http://www.ssw.com.au/SSW/Standards/Default.aspx
Share:

Silverlight resouces articles and links.

Microsoft Silverlight is one of the hottest technology that ever produce on web. It is a Microsoft answers to macro media flash and action script. You can develope rich web user interace and dashing site with the use of Microsoft silver light and asp.net.

I have found a great link that contains lots of silverlight resources and tutorial links.
You can find almost all information and links about silver light from here.

http://www.plentyofcode.com/2007/07/what-is-microsoft-silverlight.html
Share:

Build SQL Server Stored Procedure with C#.NET

Traditionally from many year we have build sql server stored procedure with the transact sql. Microsoft framework 2.0 and sql server 2005 allows us to write stored procedure with other languages like C#.NET,VB.NET etc.

Microsoft sql server 2005 provide integrated support with .net common language run time so we can create stored procedure in C#.NET,VB.NET also. It has several advantages over using transact sql like compiled execution,security and type safety.

I have found a great articles that describes all the way to develop stored procedure with c#.net.

Mr. Bipin joshi describes all the tips and tracks of how to develop stored procedure with c#.net
here is the link for that article.

http://www.dotnetbips.com/articles/70eff218-3da0-4f6f-8f8d-eeea65193f2c.aspx
Share:

New version of ASP.NET site release.

Microsoft asp.net team has launched the new version of the asp.net site. It is more faster and more user friendly build with recent technologies.

Microsoft invite community to visit site and send it feedback.

here is the link for that site.
http://publicbeta.asp.net/
Share:
Friday, July 13, 2007

http://www.aspnettutorials.com- Great Resource for ASP.NET Developers

I have found a great sites that hosts great asp.net tutorials. It is http://www.aspnettutorials.com/.

It contains tutorial in following categories.


Advanced Technologies
AJAX
Internet Browsers
Controls
Database
Email
Error Handling
File
Graphics
Network
Performance
User Interface/Themes
Validation
Visual Web Developer
XML
Suggest Tutorial

Please do visit this site. You will find lost of tutorial there...
Share:

SilverLight Video Links

Share:

ASP.NET 2.0 Folders

ASP.NET 2.0 allows us to create some folders via right clicking project. But lots of people are don't know why we need to create that folder.

Here are the description for the each folder in asp.net 2.0 that we have to create for diffrent purpose.

App_Code:

App_code folder contains the code files for the classes, structures,enums etc. It also contains .wsdl files for web services. Typed data set files are also reside in this folder.Any of this item automatically available to whole application.

App_Themes

ASP.NET supports themes to enable visual styles on web page. This folder contains the themes skin and .css(Cascading Style Sheet) files.

App_Data

App_Data contains the database for a application and other data files like .mdf,xml,text and .csv files used in web application.This folder are used to stored data related entities.

App_GlobalResources

ASP.NET allows us to create resource files. There are two types of resources files one is global and another one is local. The global resources files are available to whole application. While local resouces files are available to specific page only. This folder store global resource files with .resx extensions.

App_LocalResources

This folder stored local resources files.

App_WebReferences

This folder store web reference of web service from a asp.net 2.0 application. You can web reference via right click project in solutions explorer and then click add web reference.

App_Browsers

The App_Browsers folder holds browser files, which are XML files used to describe characteristics and capabilities of these browsers

Bin

This folder contains assembly files for controls and web pages.Assembly files are basically a .dll files. Any .dll files found this folder automatically links to whole application.

This folder structure are basically supported by asp.net 2.0. You can also create your own folder structure by right click project name in solution explorer. and add new folder.

Share:

Acropolis Videos

Share:

New Version of Microsoft Acropolis it out

The Microsoft code name “Acropolis” Community Technology Preview is a set of components and tools that make it easier for developers to build and manage modular, business focused, client .NET applications. Acropolis is part of the “.NET Client Futures” wave of releases, our preview of upcoming technologies for Windows client development.

Microsoft Announces new version ctp of Microsoft acropolis. For more details and download
ctp of Microsoft Acropolis please visit following link:

http://windowsclient.net/acropolis/
Share:
Thursday, July 12, 2007

Sql Server 2000,2005 DataType and Ranges

As developer in Microsoft technology we all need to know about data types supported by the sql server 2000 and sql serve 2005. We also have to know what is there ranges and where it should use.

I have found a cool link that describes all the things above.

here is the link for that article...
http://www.teratrax.com/sql_guide/data_types/sql_server_data_types.html
Share:

Transfering data with sql server integration services...

If we want to transfer data from one database table to another database we need to write complex code and queries. But with sql server 2005 integration services you can do it sometimes. You have to use sql server business intelligence studio(bundled with sql server 2005 developer edition).

I have found a great article that descries all the thing that how you can create a package with sql server 2005 and how you can excute this package with sql server 2005 business intelligence studio.

here is the link for that cool article..
http://www.codeguru.com/cpp/data/mfc_database/sqlserver/article.php/c9631__3/
Share:

What is SQL Server Integration Services

The ability to transform corporate data into meaningful and actionable information is the single most important source of competitive advantage in today’s business world. Harnessing the data explosion to better understand the past and get direction for the future has turned out to be one of the most challenging ventures for enterprise Information Technology departments in global organizations. There are three broad categories of issues associated with data integration:


•Technology challenges
•Organizational issues
•Economic challenges

In this paper, we will explore these challenges in detail and discuss how to address them with Microsoft® SQL Server™ 2005 Integration Services (SSIS). First, let’s view them in the context of a real-world scenario.

Microsoft sql server 2005 integration services is just like dts services in sql server 2000 but now it is called integration services with Microsoft sql server 2005

here is the link for more details.

http://www.microsoft.com/technet/prodtechnol/sql/2005/intro2is.mspx

Share:

Unraveling the Mysteries of .NET 2.0 Configuration

I have found a great link that desbries .net 2.0 configuration api in details. It is very easy handly and cool article.

here is the link for aritcle..
http://www.codeproject.com/dotnet/mysteriesofconfiguration.asp
Share:

Introducing Windows Presentation Foundation

The primary goal of Windows Presentation Foundation (WPF) is to help developers create attractive and effective user interfaces. Learn how the WPF unified platform helps make designers active participants in creating user interfaces, and provides a common programming model for standalone and browser applications

I have found a cool link from msdn that will describe all the things for Windows presentation foundation.

The articles contains:
Describing Windows Presentation Foundation
Illustrating the Problem
Addressing the Problem: What Windows Presentation Foundation ProvidesUsing Windows Presentation Foundation
The Technology of Windows Presentation Foundation
Applying Windows Presentation Foundation Tools for Windows Presentation Foundation
For Developers: Visual Studio
For Designers: Expression Interactive DesignerWindows Presentation Foundation and Other Microsoft Technologies
Windows Presentation Foundation and Windows Forms
Windows Presentation Foundation and Win32/MFC
Windows Presentation Foundation and Direct3D
Windows Presentation Foundation and AJAX/"Atlas"
Windows Presentation Foundation and "WPF/E"Conclusion


here is link for that whole article...
http://msdn2.microsoft.com/en-us/library/aa663364.aspx
Share:

Access proxy / firewall restricted internet sites using tunelling or onion routing

I have found a great link from http://www.codeproject.com/. that describes the how to Access proxy / firewall restricted Internet sites using tunnelling or onion routing.

The article was written by Anup Shinde and he has explained all the details including what is the problem .. The solution form problem... Implementation.

here is the link for that article...
http://www.codeproject.com/internet/OnionRouting.asp
Share:

Most Popular Blog on the Earth with blogger and typead

One of my friend Amit Agrawal(Microsoft Blogstar winner) provide a collection of most popular blogs on earth from blogger and typepad. here is the link from his blog.

http://labnol.blogspot.com/2007/05/most-popular-blogs-on-blogger-and.html
Share:

Telerik Rad Controls 2007 Release Editor Bug

Telerik Rad Controls latest release Telerik Rad Controls Q1 2007 have bug in their editor controls. Whenever you try to load editor in your web browser they are giving the error:

the RadControl Folder not found.

I have searched a lot and found that one file content need to replace by the simple code.

goto the webapplication root of your webapplication then goto
RadControls\Editor\Dialogs\blank.html

replace it's content with

<root></root>



then it will work fine.

for more details here is link:

http://www.telerik.com/community/forums/thread/b311D-mhdga.aspx
Share:

Microsoft Enterprise library 3.1 released.

Enterprise Library 3.1 – May 2007 is a new release of the Microsoft patterns & practices Enterprise Library. The Enterprise Library is a collection of application blocks. These are reusable software components designed to assist developers with common enterprise development challenges. This release of the Enterprise Library includes two new application blocks, a software factory for creating application blocks and providers, and other new features and enhancements.

Here are the application blocks that are given with Microsoft enterprise library 3.1

  1. Caching Application Block
  2. Cryptography Application Block
  3. Data Access Application Block
  4. Exception Handling Application Block
  5. Security Application Block
  6. Logging Application Blcok
  7. Validation Application Block
  8. Policy Injection Application Block
  9. Application Block Software Factory

Microsoft Enterprise library works with .net framework 2.0 and 3.0

For more details about Microsoft enterprise 3.1 and other release version of Microsoft enterprise library. Please visit following link

http://msdn2.microsoft.com/en-us/library/aa480453.aspx

To download Microsoft enterprise library please visit following link:

http://www.microsoft.com/downloads/details.aspx?familyid=4c557c63-708f-4280-8f0c-637481c31718&displaylang=en

System requirements for Microsoft enterprise library 3.1 is as following:

Microsoft .net framework 2.0 or 3.0 (some application block does not work with .net framework 2.0)

Microsoft Visual Studio 2005 development system (any of the following editions):


Microsoft Visual Studio 2005 Standard Edition
Microsoft Visual Studio 2005 Professional Edition
Microsoft Visual Studio 2005 Team Edition for Software Developers
Microsoft Visual Studio 2005 Team Edition for Software Testers
Microsoft Visual Studio 2005 Team Edition for Software Architects
Microsoft Visual Studio 2005 Team Suite

To use the Application Block Software Factory and the Strong-Naming Guidance Package, you need the Guidance Automation Extensions (GAX). To modify these guidance packages, you also need the Guidance Automation Toolkit (GAT).

Share:

C#.NET Business Logic Layer Class example

//here is the example of business logica layer class

public class UserBll
{
#region Private Memebers
private DashBoardData.UserData _objUserData;
private DashBoardCollection.UserCollection _objUserCol;
#endregion
#region Methods
public UserBll()
{
}
public UserBll(DashBoardCollection.UserCollection obj)
{
_objUserCol = obj;
}
#endregion
#region Methods
public void Add()
{
_objUserData = new DashBoardData.UserData(this._objUserCol);
_objUserData.Operation(DashBoardData.OpertaionType.Add);
}
public void Update()
{
_objUserData = new DashBoardData.UserData(this._objUserCol);
_objUserData.Operation(DashBoardData.OpertaionType.Update);
}
public void Delete()
{
_objUserData = new DashBoardData.UserData(this._objUserCol);
_objUserData.Operation(DashBoardData.OpertaionType.Delete);
}
public Boolean CheckUserLogin()
{
_objUserData = new DashBoardData.UserData(this._objUserCol);
return _objUserData.CheckUserLogin();
}
#endregion
}
Share:

C#.NET 2.0 class example for data acess layer using microsoft enterpise library

here is the data layer class example.....

///here is the enum


public enum OprationType
{
Add = 1,
Update = 2,
Delete = 3
}


//here is the Interfae
public interface IDataStatndard
{
void Operation(OperationType enumOperationType);
}



//here is the user data class
public class UserData : IDataStatndard
{
#region PrivateMemeber
private DashBoardCollection.UserCollection _objUserCol;
private Database _db;
private string _commandName;
private DbCommand _dbCommand;
#endregion
#region Constructors
public UserData()
{
}
public UserData(DashBoardCollection.UserCollection obj)
{
_objUserCol = obj;
}
#endregion
#region Methods
public void Operation(OpertaionType enumOperationType)
{
switch (enumOperationType)
{
case OperationType.Add:
this.Add();
break;
case OperationType.Update:
this.Update();
break;
case OperationType.Delete:
this.Delete();
break;
}
}
private void Add()
{
}
private void Update()
{
}
private void Delete()
{
}
public bool CheckUserLogin()
{
_db = DatabaseFactory.CreateDatabase("SopraConnect");
_commandName = "usp_CheckUserLogin";
_dbCommand = _db.GetStoredProcCommand(_commandName);
_db.AddInParameter(_dbCommand, "username", DbType.String, this._objUserCol.UserName);
_db.AddInParameter(_dbCommand, "password", DbType.String, this._objUserCol.Password);
_db.AddOutParameter(_dbCommand, "isvalid", DbType.Byte, 1);
_db.ExecuteNonQuery(_dbCommand);
Byte isValid = Convert.ToByte( _db.GetParameterValue(_dbCommand, "isvalid"));
if (isValid == 1)
return true;
else
return false;
}
#endregion
}
Share:
Monday, July 9, 2007

C#.NET 2.0 Generics Class collection

C#.NET 2.0 provide great features with generics collection. Now you don't have to write code for the coding for adding,removing objects. It all contains by the generics colleciton. here the sample user level class

using System;
using System.Collections.Generic;




public class UserLevelCollection
:System.Collections.Generic.List<userlevelcollection>

{
#region Private Members
private int _intUserLevelID;
private Guid _guidUserLevelGUID;
private string _strDescription;
private int _intCreatedBy;
private DateTime _dtCreatedDate;
private int _intLastModifiedBy;
private DateTime _dtLastModifiedDate;
#endregion
#region Public Properties
public int UserLevelId
{
get { return _intUserLevelID;}
set { _intUserLevelID = value; }
}
public Guid UserLevelGUID
{
get { return _guidUserLevelGUID; }
set {_guidUserLevelGUID=value; }
}
public string Description
{
get { return _strDescription;}
set { _strDescription = value; }
}
public int CreatedBy
{
get { return _intCreatedBy; }
set { _intCreatedBy = value; }
}
public DateTime CreatedDate
{
get { return _dtCreatedDate; }
set { _dtCreatedDate = value; }
}
public int LastModifiedBy
{
get { return _intLastModifiedBy; }
set { _intLastModifiedBy = value; }
}
public DateTime LastModifiedDate
{
get { return _dtLastModifiedDate;}
set { _dtLastModifiedDate = value; }
}
#endregion

}
}
Share:
Friday, July 6, 2007

Except operator SQL Server 2005 -Find Duplicate values in multiple tables.

I have found a great way to find duplicate values with two tables in sql server. Suppose we have two tables t1 and t2 both have same fields like id,name.

And both table have following data.

T1 Data:
ID NAME
1 abc
2 xyz
3 pqr

T2 Data:
ID NAME
2 xyz

We need to find rows from table t1 which is not there in table t2.

Here is the simple way to do it.

select * from t1
except
select * from t2

Except operator return result by comparing two queries. It returns row of left query which are not in right query. So result for above queries will be as following

ID NAME
1 abc
3 pqr




NOTE:
The basic rules for combining the result sets of two queries that use EXCEPT are the following:
The number and the order of the columns must be the same in all queries.
The data types must be compatible.
Share:

How Much Is Your Blog Worth?

I have found a great link that will calculate your blogs worth? How much cost you should take when you sell your blog to other peoples.

Inspired by Tristan Louis's research into the value of each link to Web logs Inc,Dan Carlon's have created this little applet using Technorati's API which computes and displays your blog's worth using the same link to dollar ratio as the AOL-Webblogs Inc deal.

It is very good link you must visit at least once.

here is the link for that:http://www.business-opportunities.biz/projects/how-much-is-your-blog-worth/
Share:

Support this blog-Buy me a coffee

Buy me a coffeeBuy me a coffee
Search This Blog
Subscribe to my blog

  

My Mvp Profile
Follow us on facebook
Blog Archive
Total Pageviews