TECH CHAT DISCUSSION FORUM full report
Active In SP
Joined: Sep 2010
20-01-2011, 03:05 PM
TECH CHAT DISCUSSION FORUM.doc (Size: 1.35 MB / Downloads: 168)
Under six months Industrial Training in 7th semester
Under the guidance of
Mr. Karan Sharma
(Training Coordinator and Industrial Supervisor)
Submitted in partial fulfillment of the degree in Bachelor’s of Technology
Computer Science and Engineering
Introduction to the Company
Microsoft .NET overview
The .NET Framework is an integral Windows component that supports building and running the next generation of applications and XML Web services. The key components of the .NET Framework are the common language runtime and the .NET Framework class library, which includes ADO.NET, ASP.NET, and Windows Forms. The .NET Framework provides a managed execution environment, simplified development and deployment, and integration with a wide variety of programming languages.
Overview of .net framework
The .NET Framework is a new computing platform that simplifies application development in the highly distributed environment of the Internet.
The .NET Framework is designed to fulfill the following objectives:
• To provide a consistent object-oriented programming environment whether object code is stored and executed locally, executed locally but Internet-distributed, or executed remotely.
• To provide a code-execution environment that minimizes software deployment and versioning conflicts.
• To provide a code-execution environment that guarantees safe execution of code, including code created by an unknown or semi-trusted third party.
• To provide a code-execution environment that eliminates the performance problems of scripted or interpreted environments.
• To make the developer experience consistent across widely varying types of applications, such as Windows-based applications and Web-based applications.
• To build all communication on industry standards to ensure that code based on the .NET Framework can integrate with any other code
The .NET Framework has two main components:
1. The Common language runtime.
2. The .NET Framework class library.
Common Language Runtime: CLR is the foundation of the .NET Framework. You can think of the runtime as an agent that manages code at execution time, providing core services such as memory management, thread management, and remoting, while also enforcing strict type safety and other forms of code accuracy that ensure security and robustness. In fact, the concept of code management is a fundamental principle of the runtime. Code that targets the runtime is known as managed code, while code that does not target the runtime is known as unmanaged code. The class library, the other main component of the .NET Framework, is a comprehensive, object-oriented collection of reusable types that you can use to develop applications ranging from traditional command-line or graphical user interface (GUI) applications to applications based on the latest innovations provided by ASP.NET, such as Web Forms and XML Web services.
The .NET Framework can be hosted by unmanaged components that load the common language runtime into their processes and initiate the execution of managed code, thereby creating a software environment that can exploit both managed and unmanaged features. The .NET Framework not only provides several runtime hosts, but also supports the development of third-party runtime hosts.
The .NET Framework Library: The .NET Framework class library is a collection of reusable types that tightly integrate with the common language runtime. The class library is Object-Oriented, providing types from which your own managed code can derive functionality. This not only makes the .NET Framework types easy to use, but also reduces the time associated with learning new features of the .NET Framework. In addition, third-party components can integrate seamlessly with classes in the .NET Framework.
For example, the .NET Framework collection classes implement a set of interfaces that you can use to develop your own collection classes. Your collection classes will blend seamlessly with the classes in the .NET Framework.
As you would expect from an object-oriented class library, the .NET Framework types enable you to accomplish a range of common programming tasks, including tasks such as string management, data collection, database connectivity, and file access. In addition to these common tasks, the class library includes types that support a variety of specialized development scenarios. For example, you can use the .NET Framework to develop the following types of applications and services:
a) Console applications.
b) Windows GUI applications (Windows Forms).
c) ASP.NET applications.
d) XML Web services.
e) Windows services.
Client applications are the closest to a traditional style of application in Windows-based programming. These are the types of applications that display windows or forms on the desktop, enabling a user to perform a task. Client applications include applications such as word processors and spreadsheets, as well as custom business applications such as data-entry tools, reporting tools, and so on. Client applications usually employ windows, menus, buttons, and other GUI elements, and they likely access local resources such as the file system and peripherals such as printers.
Another kind of client application is the traditional ActiveX control (now replaced by the managed Windows Forms control) deployed over the Internet as a Web page. This application is much like other client applications: it is executed natively, has access to local resources, and includes graphical elements.
In the past, developers created such applications using C/C++ in conjunction with the Microsoft Foundation Classes (MFC) or with a rapid application development (RAD) environment such as Microsoft® Visual Basic®. The .NET Framework incorporates aspects of these existing products into a single, consistent development environment that drastically simplifies the development of client applications.
The Windows Forms classes contained in the .NET Framework are designed to be used for GUI development. You can easily create command windows, buttons, menus, toolbars, and other screen elements with the flexibility necessary to accommodate shifting business needs.
For example, the .NET Framework provides simple properties to adjust visual attributes associated with forms. In some cases, the underlying operating system does not support changing these attributes directly, and in these cases, the .NET Framework automatically recreates the forms. This is one of many ways in which the .NET Framework integrates the developer interface, making coding simpler and more consistent.
Unlike ActiveX controls, Windows Forms controls have semi-trusted access to a user's computer. This means that binary or natively executing code can access some of the resources on the user's system (such as GUI elements and limited file access) without being able to access or compromise other resources.
In the Microsoft .NET framework, an assembly is a partially compiled code library for use in deployment, versioning and security. There are two types: process assemblies (EXE) and library assemblies (DLL). A process assembly represents a process which will use classes defined in library assemblies. .NET assemblies contain code in CIL, which is usually generated from a CLI language, and then compiled into machine language at runtime by the CLR just-in-time compiler.
An assembly can consist of one or more files. Code files are called modules. An assembly can contain more than one code module and since it is possible to use different languages to create code modules it is technically possible to use several different languages to create an assembly. Visual Studio however does not support using different languages in one assembly.
The name of an assembly consists of 4 parts:
1. The short name. On Windows this is the name of the Portable Executable file without the extension.
2. The culture. This is an RFC 1766 identifier of the locale for the assembly. In general, library and process assemblies should be culture neutral; the culture should only be used for satellite assemblies.
3. The version. This is a dotted number made up of 4 values — major, minor, build and revision.
4. A public key token. This is a 64-bit hash of the public key which corresponds to the private key used to sign the assembly. A signed assembly is said to have a strong name.
The public key token is used to make the assembly name unique. Thus, two strong named assemblies can have the same PE file name and yet .NET will recognize them as different assemblies. The Windows file system (FAT32 and NTFS) only recognizes the PE file name, so two assemblies with the same PE file name (but different culture, version or public key token) cannot exist in the same Windows folder. To solve this issue .NET introduces something called the GAC (Global Assembly Cache) which is treated as a single folder by the .NET CLR, but is actually implemented using nested NTFS1 (or FAT32) folders.
To prevent spoofing attacks, where a cracker would try to pass off an assembly appearing as something else, the assembly is signed with a private key. The developer of the intended assembly keeps the private key secret, so a cracker cannot have access to it nor simply guess it. Thus the cracker cannot make his assembly impersonate something else, lacking the possibility to sign it correctly after the change. Signing the assembly involves taking a hash of important parts of the assembly and then encrypting the hash with the private key. The signed hash is stored in the assembly along with the public key. The public key will decrypt the signed hash. When the CLR loads a strongly named assembly it will generate a hash from the assembly and then compare this with the decrypted hash. If the comparison succeeds then it means that the public key in the file (and hence the public key token) is associated with the private key used to sign the assembly. This will mean that the public key in the assembly is the public key of the assembly publisher and hence a spoofing attack is thwarted.
.NET assemblies can have version information, allowing them to eliminate most conflicts between applications caused by shared assemblies. However, this does not eliminate all possible versioning conflicts between assemblies.
Assemblies and .NET security
.NET Code Access Security is based on assemblies and evidence. Evidence can be anything deduced from the assembly, but typically it is created from the source of the assembly — whether the assembly was downloaded from the Internet, an intranet, or installed on the local machine (if the assembly is downloaded from another machine it will be stored in a sandboxed location within the GAC and hence is not treated as being installed locally). Permissions are applied to entire assemblies, and an assembly can specify the minimum permissions it requires through custom attributes (see .NET metadata). When the assembly is loaded the CLR will use the evidence for the assembly to create a permission set of one or more code access permissions. The CLR will then check to make sure that this permission set contains the required permissions specified by the assembly.
.NET code can perform a code access security demand. This means that the code will perform some privileged action only if all of the assemblies of all of the methods in the call stack have the specified permission. If one assembly does not have the permission a security exception is thrown.
The .NET code can also perform Linked Demand for getting the permission from the call stack. In this case the CLR will look for only one method in the call stack in the TOP position has the specified permission. Here the stack walk-through is bound to one method in the call stack by which the CLR assumes that all the other methods in the CALL STACK have the specified permission.
In general, assemblies should contain culture-neutral resources. If you want to localize your assembly (for example use different strings for different locales) you should use satellite assemblies — special, resource-only assemblies. Satellites are not loaded by Fusion and so they should not contain code. As the name suggests, a satellite is associated with an assembly called the main assembly. That assembly (say, lib.dll) will contain the neutral resources (which Microsoft says is International English, but implies to be US English). Each satellite has the name of the associated library appended with .resources (for example lib.resources.dll). The satellite is given a non-neutral culture name, but since this is ignored by existing Windows file systems (FAT32 and NTFS) this would mean that there could be several files with the same PE name in one folder. Since this is not possible, satellites must be stored in subfolders under the application folder. For example, a satellite with the UK English resources will have a .NET name of "lib.resources Version=0.0.0.0 Culture=en-GB PublicKeyToken=null", a PE file name of lib.resources.dll, and will be stored in a subfolder called en-GB.
Satellites are loaded by a .NET class called System.Resources.ResourceManager. The developer has to provide the name of the resource and information about the main assembly (with the neutral resources). The ResourceManager class will read the locale of the machine and use this information and the name of the main assembly to get the name of the satellite and the name of the subfolder that contains it. ResourceManager can then load the satellite and obtain the localized resource.
One can reference an executable code library by using the /reference flag of the C# compiler.
Delay-signing of an assembly:
The shared assemblies need to give a strong name for uniquely identifying the assembly which might be shared among the applications. The strong naming consists of the public key token, culture, version and PE file name. If an assembly is likely to be used for the development purpose which is a shared assembly, the strong naming procedure contains only public key generation. The private key is not generated at that time. It is generated only when the assembly is deployed.
Visual C# .NET 3.0
Visual C# .NET 3.0 is the next generation of the C, C++ & C# languages from Microsoft. With Visual C#, you can build .NET applications, quickly and easily. Applications made with Visual C# are built on the services of the common language runtime and take advantage of the .NET Framework.
Visual C# has many new and improved features such as inheritance, interfaces, and overloading that make it a more powerful object-oriented programming language. Other new language features include free threading and structured exception handling. Visual C# fully integrates the .NET Framework and the common language runtime, which together provide language interoperability, garbage collection, enhanced security, and improved versioning support. Visual C# supports single inheritance and creates Microsoft intermediate language (MSIL) as input to native code compilers.
ADO.NET (Activex Directory Objects)
ADO.NET is a set of computer software components that can be used by programmers to access data and data services. It is a part of the base class library that is included with the Microsoft .NET Framework. It is commonly used by programmers to access and modify data stored in relational database systems, though it can also be used to access data in non-relational sources. ADO.NET is sometimes considered an evolution of ActiveX Data Objects (ADO) technology, but was changed so extensively that it can be considered an entirely new product.
ADO.NET and Visual Studio
Functionality exists in the Visual Studio IDE to create specialized subclasses of the DataSet classes for a particular database schema, allowing convenient access to each field through strongly-typed properties. This helps catch more programming errors at compile-time and makes the IDE's Intellisense feature more beneficial.
ADO.NET Entity Framework is a set of data access APIs for the Microsoft .NET Framework, similar to the Java Persistence API, targeting the version of ADO.NET that ships with .NET Framework 3.5. ADO.NET Entity Framework is included with .NET Framework 3.5 Service Pack 1 and Visual Studio 2008 Service Pack 1, released on 11 August 2008. An Entity Framework Entity is an object which has a key representing the primary key of a logical datastore entity. A conceptual Entity Data Model (Entity-relationship model) is mapped to a datastore schema model. Using the Entity Data Model, the Entity Framework allows data to be treated as entities independently of their underlying datastore representations.
Entity SQL is a SQL-like language for querying the Entity Data Model (instead of the underlying datastore). Similarly, Linq extension Linq-to-Entities provides typed querying on the Entity Data Model. Entity SQL and Linq-to-Entities queries are converted internally into a Canonical Query Tree which is then converted into a query understandable to the underlying datastore (e.g. into SQL in the case of a Relational database). The entities can be using their relationships, and their changes committed back to the datastore.
Microsoft SQL Server 2005
Microsoft SQL Server 2000 is a family of products that meet the data storage requirements of the largest data processing systems and commercial Web sites, yet at the same time can provide easy-to-use data storage services to an individual or small business.
The data storage needs of a modern corporation or government organization are very complex. Online Transaction Processing (OLTP) systems must be capable of handling thousands of orders placed at the same time. Increasing numbers of corporations are implementing large Web sites as a mechanism for their customers to enter orders, contact the service department, get information about products, and for many other tasks that previously required contact with employees. These sites require data storage that is secure, yet tightly integrated with the Web. Organizations are implementing off-the-shelf software packages for critical services such as human resources planning, manufacturing resources planning, and inventory control. These systems require databases capable of storing large amounts of data and supporting large numbers of users.
Organizations have many users who must continue working when they do not have access to the network. Examples are mobile disconnected users, such as traveling sales representatives or regional inspectors. These users must synchronize the data on a notebook or laptop with the current data in the corporate system, disconnect from the network, record the results of their work while in the field, and then finally reconnect with the corporate network and merge the results of their fieldwork into the corporate data store.
MS SQL Server 2000 Architecture
MS SQL Server 2000 data is stored in databases. The data in a database is organized into the logical components visible to users. A database is also physically implemented as two or more files on disk.
When using a database, you work primarily with the logical components such as tables, views, procedures, and users. The physical implementation of files is largely transparent. Typically, only the database administrator needs to work with the physical implementation.
Each instance of SQL Server has four system databases (master, model, tempdb, and msdb) and one or more user databases. Some organizations have only one user database, containing all the data for their organization. Some organizations have different databases for each group in their organization, and sometimes databases used by a single application.
ASP.NET(Active Server pages )
ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites, web applications and web services. It was first released in January 2002 with version 1.0 of the .NET Framework, and is the successor to Microsoft's Active Server Pages (ASP) technology. ASP.NET is built on the Common Language Runtime (CLR), allowing programmers to write ASP.NET code using any supported .NET language. The ASP.NET SOAP extension framework allows ASP.NET components to process SOAP messages.
History of ASP.Net
After the release of Internet Information Services 4.0 in 1997, Microsoft began researching possibilities for a new web application model that would solve common complaints about ASP, especially with regard to separation of presentation and content and being able to write "clean" code. Mark Anders, a manager on the IIS team, and Scott Guthrie, who had joined Microsoft in 1997 after graduating from Duke University, were tasked with determining what that model would look like. The initial design was developed over the course of two months by Anders and Guthrie, and Guthrie coded the initial prototypes during the Christmas holidays in 1997.
The initial prototype was called "XSP"; Guthrie explained in a 2007 interview that, "People would always ask what the X stood for. At the time it really didn't stand for anything. XML started with that; XSLT started with that. Everything cools seemed to start with an X, so that's what we originally named it."
The initial prototype of XSP was done using Java but it was soon decided to build the new platform on top of the Common Language Runtime (CLR), as it offered an object-oriented programming environment, garbage collection and other features that were seen as desirable features that Microsoft's Component Object Model platform didn't support. Guthrie described this decision as a "huge risk", as the success of their new web development platform would be tied to the success of the CLR, which, like XSP, was still in the early stages of development, so much so that the XSP team was the first team at Microsoft to target the CLR.
With the move to the Common Language Runtime, XSP was re-implemented in C# (known internally as "Project Cool" but kept secret from the public), and the name changed to ASP+, as by this point the new platform was seen as being the successor to Active Server Pages, and the intention was to provide an easy migration path for ASP developers.
Mark Anders first demonstrated ASP+ at the ASP Connections conference in Phoenix, Arizona on May 2, 2000. Demonstrations to the wide public and initial beta release of ASP+ (and the rest of the .NET Framework) came at the 2000 Professional Developers Conference on July 11, 2000 in Orlando, Florida. During Bill Gates' keynote presentation, Fujitsu demonstrated ASP+ being used in conjunction with COBOL, and support for a variety of other languages was announced, including Microsoft's new Visual Basic .NET and C# languages, as well as Python and Perl support by way of interoperability tools created by ActiveState.
Once the ".NET" branding was decided on in the second half of 2000, it was decided to rename ASP+ to ASP.NET. Mark Anders explained on an appearance on The MSDN Show that year that, "The .NET initiative is really about a number of factors, it's about delivering software as a service, it's about XML and web services and really enhancing the Internet in terms of what it can do ... we really wanted to bring its name more in line with the rest of the platform pieces that make up the .NET framework."
After four years of development, and a series of beta releases in 2000 and 2001, ASP.NET 1.0 was released on January 5, 2002 as part of version 1.0 of the .NET Framework. Even prior to the release, dozens of books had been written about ASP.NET, and Microsoft promoted it heavily as part of their platform for web services. Guthrie became the product unit manager for ASP.NET, and development continued apace, with version 1.1 being released on April 24, 2003 as a part of Windows Server 2003. This release focused on improving ASP.NET's support for mobile devices.
.NET pages, known officially as "web forms", are the main building block for application development. Web forms are contained in files with an ".aspx" extension; these files typically contain static (X) HTML markup, as well as markup defining server-side Web Controls and User Controls where the developers place all the required static and dynamic content for the web page. Additionally, dynamic code which runs on the server can be placed in a page within a block <% -- dynamic code -- %> which is similar to other web development technologies such as PHP, JSP, and ASP, but this practice is generally discouraged except for the purposes of data binding since it requires more calls when rendering the page.
Microsoft recommends dealing with dynamic program code by using the code-behind model, which places this code in a separate file or in a specially designated script tag. Code-behind files typically have names like MyPage.aspx.cs or MyPage.aspx.vb while the page file is MyPage.aspx (same filename as the page file (ASPX), but with the final extension denoting the page language). This practice is automatic in Microsoft Visual Studio and other IDEs. When using this style of programming, the developer writes code to respond to different events, like the page being loaded, or a control being clicked, rather than a procedural walk through the document.
ASP.NET's code-behind model marks a departure from Classic ASP in that it encourages developers to build applications with separation of presentation and content in mind. In theory, this would allow a web designer, for example, to focus on the design markup with less potential for disturbing the programming code that drives it. This is similar to the separation of the controller from the view in model-view-controller frameworks.
An event bubbling mechanism provides the ability to pass an event fired by a user control up to its containing page.
Programmers can also build Custom controls for ASP.NET applications. Unlike User controls, these controls don't have an ASCX markup-file, having all their code compiled into a DLL-file. Such Custom controls can be used across multiple web-applications and Visual Studio project and implimentations (which is not allowed with User controls). By using a Register directive, the control is loaded from the DLL.
ASP.NET uses a visited composites rendering technique. During compilation, the template (.aspx) file is compiled into initialization code which builds a control tree (the composite) representing the original template. Literal text goes into instances of the Literal control class, and server controls are represented by instances of a specific control class. The initialization code is combined with user-written code (usually by the assembly of multiple partial classes) and results in a class specific for the page. The page doubles as the root of the control tree.
Actual requests for the page are processed through a number of steps. First, during the initialization steps, an instance of the page class is created and the initialization code is executed. This produces the initial control tree which is now typically manipulated by the methods of the page in the following steps. As each node in the tree is a control represented as an instance of a class, the code may change the tree structure as well as manipulate the properties/methods of the individual nodes. Finally, during the rendering step a visitor is used to visit every node in the tree, asking each node to render itself using the methods of the visitor. The resulting HTML output is sent to the client.
After the request has been processed, the instance of the page class is discarded and with it the entire control tree. This is usually a source of confusion among novice ASP.NET programmers that rely on class instance members that are lost with every page request/response cycle.
ASP.NET applications are hosted by a web server and are accessed using the stateless HTTP protocol. As such, if an application uses stateful interaction, it has to implement state management on its own. ASP.NET provides various functions for state management. Conceptually, Microsoft treats "state" as GUI state; problems may arise if an application needs to keep track of "data state", for example, a finite state machine which may be in a transient state between requests (lazy evaluation) or which takes a long time to initialize.
Application state is held by a collection of shared user-defined variables. These are set and initialized when the Application_OnStart event fires on the loading of the first instance of the applications and are available till the last instance exits. Application state variables are accessed using the Applications collection, which provides a wrapper for the application state variables. Application state variables are identified by name.
Server-side session state is held by a collection of user-defined session variables, which are persisted during a user session. These variables, accessed using the Session collection, are unique to each session instance. Then variables can be set to be automatically destroyed after a defined time of inactivity, even if the session does not end. Client-side user session is maintained by either a cookie or by encoding the session ID in the URL itself.
ASP.NET supports three modes of persistence for session variables:
In Process Mode
When using In Process Mode, the session variables are maintained within the ASP.NET process. This is the fastest way; however, in this mode the variables are destroyed when the ASP.NET process is recycled or shut down.
In this mode, ASP.NET runs a separate Windows service that maintains the state variables. As state management happens outside the ASP.NET process and .NET Remoting must be utilized by the ASP.NET engine to access the data there is a negative impact on performance compared to the In Process mode. This mode allows an ASP.NET application to be load-balanced and scaled across multiple servers and because the state management service runs independently of ASP.NET, the session variables can persist across ASP.NET process shutdowns. However, since session state server runs as a single instance it is still a single point of failure so far as session state is concerned. The session-state service cannot be load balanced and there are restrictions on types that can be stored in a session variable.
In this mode, the state variables are stored in a database allowing session variables to be persisted across ASP.NET process shutdowns. The main advantage of this mode is that it allows the application to balance load on a server cluster, sharing sessions between servers. This is the slowest method of session state management in ASP.NET.
View state refers to the page-level state management mechanism, utilized by the HTML pages emitted by ASP.NET applications to maintain the state of the web form controls and widgets. The state of the controls is encoded and sent to the server at every form submission in a hidden field known as __VIEWSTATE. The server sends back the variable so that when the page is re-rendered, the controls render at their last state. At the server side, the application may change the viewstate, if the processing requires a change of state of any control. The states of individual controls are decoded at the server, and are available for use in ASP.NET pages using the ViewState collection.
The main use for this is to preserve form information across postbacks. View state is turned on by default and normally serializes the data in every control on the page regardless of whether it is actually used during a postback. This behavior can (and should be) modified, however, as View state can be disabled on a per-control, per-page, or server-wide basis.
Developers need to be wary of storing sensitive or private information in the View state of a page or control, as the base64 string containing the view state data can easily be de-serialized. By default, View state does not encrypt the __VIEWSTATE value. Encryption can be enabled on a server-wide (and server-specific) basis, allowing for a certain level of security to be maintained.
ASP.NET offers a "Cache" object that is shared across the application and can also be used to store various objects. The "Cache" object holds the data only for a specified amount of time and is automatically cleaned after the session time-limit elapses.
Other means of state management that are supported by ASP.NET are cookies, caching, and using the query string.
When first released, ASP.NET lacked a template engine. Because the .NET framework is object-oriented and allows for inheritance, many developers would define a new base class that inherits from "System.Web.UI.Page", write methods here that render HTML, and then make the pages in their application inherit from this new class. While this allows for common elements to be reused across a site, it adds complexity and mixes source code with markup. Furthermore, this method can only be visually tested by running the application - not while designing it. Other developers have used include files and other tricks to avoid having to implement the same navigation and other elements in every page.
Child pages use those ContentPlaceHolder controls, which must be mapped to the place-holder of the master page that the content page is populating. The rest of the page is defined by the shared parts of the master page, much like a mail merge in a word processor. All markup and server controls in the content page must be placed within the ContentPlaceHolder control.
When a request is made for a content page, ASP.NET merges the output of the content page with the output of the master page, and sends the output to the user.
The master page remains fully accessible to the content page. This means that the content page may still manipulate headers, change title, configure caching etc. If the master page exposes public properties or methods (e.g. for setting copyright notices) the content page can use these as well.
Brief Introduction to the project and implimentation
The Discussion Forum provides you the opportunity to tap the knowledge and experience of peers worldwide by creating an on-going roundtable discussion on a topic that interests you. The Forum contains separate categories for examination-related topics and actuarial research topics, as well as for non-actuarial discussion. If you would like to begin a discussion on an examination category not listed, you may send an e-mail to suggest a new category to be added to the Forum. For an overview on using the Discussion Forum, review the Discussion Forum Orientation page.
An Internet forum, or message board, is an online discussion site where people can hold conversations in the form of posted messages. They differ from chat rooms in that messages are not shown in real-time, to see new messages the forum page must be reloaded. Also, depending on the access level of a user and/or the forum set-up, a posted message might need to be approved by a moderator before it becomes visible.
Forums have their own language; e.g. A single conversation is called a 'thread'. A forum is hierarchical or tree-like in structure: forum - subforum - topic - thread - reply.
Depending on the forum set-up, users can be anonymous or have to register with the forum and then subsequently log in in order to post messages. Usually you do not have to log in to read existing messages.
Rules and policies on forums
Forums are governed by a set of individuals, collectively referred to as staff, made up of administrators and moderators, which are responsible for the forums' conception, technical maintenance, and policies (creation and enforcing). Most forums have a list of rules detailing the wishes, aim and guidelines of the forums creators. There is usually also a FAQ section contain basic information for new members and people not yet familiar with the use and principles of a forum (generally tailored for specific forum software).
Rules on forums usually apply to the entire user body and often have preset exceptions, most commonly designating a section as an exception. For example, in an IT forum any discussion regarding anything but computer programming languages may be against the rules, with the exception of a general chat section.
Forum rules are maintained and enforced by the moderation team, but users are allowed to help out via what is known as a report system. Most American forum software contains such a system. It consists of a small function applicable to each post (including one's own). Using it will notify all currently available moderators of its location, and subsequent action or judgment can be carried out immediately, which is particularly desirable in large or very developed boards. Generally, moderators encourage members to also use the private messagesystem if they wish to report behavior. Moderators will generally frown upon attempts of moderation by non-moderators, especially when the would-be moderators do not even issue a report. Messages from non-moderators acting as moderators generally declare a post as against the rules, or predict punishment. While not harmful, statements which attempt to enforce the rules are discouraged.
When rules are broken several steps are commonly taken. First a warning is usually given; this is commonly in the form of a private messagebut recent development has made it possible for it to be integrated into the software. Subsequently, if the act is ignored and warnings do not work, the member is – usually – first exiled from the forum for a number of days. Denying someone access to the site is called a ban. Bans can mean the person can no longer log in or even view the site anymore. If the offender, after the warning sentence, repeats the offense, another ban is given, usually this time a longer one. Continuous harassment of the site eventually leads to a permanent ban. However, in most cases this simply means the account is locked. In extreme cases where the offender – after being permanently banned – creates another account and continues to harass the site, administrators will apply an IP ban (this can also be applied at the server level): if the IP is static, the machine of the offender is prevented from accessing the site. In some extreme circumstances, IP range bans or country bans can be applied; however, this is usually for political, licensing or other reasons. See also: Block (internet), IP blocking, Internet censorship.
Offending content is usually deleted. Sometimes if the topic is considered the source of the problem, it is locked; often a poster may request a topic expected to draw problems to be locked as well, although the moderators decide whether to grant it. In a locked thread, members cannot post anymore. In cases where the topic is considered a breach of rules it – with all of its posts – may be deleted.
Forum trolls are users that repeatedly and deliberately breach the netiquette of an established online community, posting inflammatory, extraneous, or off-topic messages to bait or excite users into responding or to test the forum rules and policies, and with that the patience of the forum staff. Their provocative behavior may potentially start flame wars (see below) or other disturbances. Responding to a troll's provocations is commonly known as 'feeding the troll' and is generally discouraged, as it can encourage their disruptive behavior.
The term sock puppet refers to someone who is simultaneously registered under different pseudonyms on a particular message board or forum. The analogy of a sock puppet is of a puppeteer holding up both hands and supplying dialogue to both puppets simultaneously. A sock puppet will create multiple accounts over a period of time, using each user to debate or agree with each other on a forum. Sock puppets are usually found when an IP check is done on the accounts in forums.
Forum spamming is a breach of netiquette where users repeat the same word or phrase over and over, but differs from multiple posting in that spamming is usually a willful act which sometimes has malicious intent. This is a common trolling technique. It can also be traditional spam, unpaid advertisements that are in breach of the forum's rules. Spammers utilize a number of illicit techniques to post their spam, including the use of botnets.
Some forums consider concise, comment-oriented posts spam, for example Thank you, Cool or I love it.
One common faux pas on Internet forums is to post the same message twice. Users sometimes post versions of a message that are only slightly different, especially in forums where they are not allowed to edit their earlier posts. Multiple posting instead of editing prior posts can artificially inflate a user's post count. Multiple posting can be unintentional; a user's browser might display an error message even though the post has been transmitted or a user of a slow forum might become impatient and repeatedly hit the submit button. Multiple posting can also be used as a method of trolling or spreading forum spam. A user may also send the same post to several forums, which is termedcrossposting. The term derives from Usenet, where crossposting was an accepted practice; however, it causes problems in web forums, which lack the ability to link such posts, so replies in one forum are not visible to people reading the post in other forums.
A word censoring system is commonly included in the forum software package. The system will pick up words in the body of the post or some other user editable forum element (like user titles) and if they partially match a certain keyword (commonly no case sensitivity) they will be censored. The most common censoring is letter replacement with an asterisk character; for example: in the user title it is deemed inappropriate for users to use words such as "admin", "moderator", "leader" and so on, if the censoring system is implemented a title such as "forum leader" may be filtered to "forum ******". Rude or vulgar words are common targets for the censoring system. But such auto-censors can make mistakes, for example censoring "wristwatch" to "wris****ch" and "Scunthorpe" to "S****horpe."
A forum consists of a tree like directory structure containing at the lowest end topics (commonly called threads) and inside them posts. Logically forums are organised into a finite set of generic topics (usually with one main topic) driven and updated by a group known asmembers, and governed by a group known as moderators All message boards will use one of three possible display formats. Each of the three basic message board display formats: Non-Threaded/Semi-Threaded/Fully Threaded, has its own advantages and disadvantages. If messages are not related to one another at all a Non-Threaded format is best. If you have a message topic and multiple replies to that message topic a semi-threaded format is best. If you have a message topic and replies to that message topic, and replies to replies, then a fully threaded format is best.
Internally, Western-style forums organise visitors and logged in members into user groups. Privileges and rights are given based on these groups. A user of the forum can automatically be promoted to a more privileged user group based on criteria set by the administrator. A person viewing a closed thread as a member will see a box saying he does not have the right to submit messages there, but a moderator will likely see the same box granting him access to more than just posting messages.
An unregistered user of the site is commonly known as a guest or visitor. Guests are typically granted access to all functions that do not require database alterations or breach privacy. A guest can usually view the contents of the forum or use such features as read marking, but occasionally an administrator will disallow visitors to read their forum as an incentive to become a registered member A person who is a very frequent visitor of the forum, a section or even a thread is referred to as a lurker and the habit is referred to as lurking. Registered members often will refer to themselves as lurking in a particular location, which is to say they have no intention of participating in that section but enjoy reading the contributions to it.
The moderators (short singular form: "mod") are users (or employees) of the forum who are granted access to the posts and threads of allmembers for the purpose of moderating discussion (similar to arbitration) and also keeping the forum clean (neutralizing spam and spambotsetc.). Because they have access to all posts and threads in their area of responsibility, it is common for a friend of the site owner to be promoted to moderator for such a task. Moderators also answer users' concerns about the forum, general questions, as well as respond to specific complaints. They also can do anything to lend a helping hand to a user in need Moderators themselves may have ranks: some may be given mod privileges over only a particular topic or section, while others (called 'global' or 'super') may be allowed access anywhere. Common privileges of moderators include: deleting, merging, moving, and splitting of posts and threads, locking, renaming, stickying of threads, banning, suspending, unsuspending, unbanning, warning the members, or adding, editing, removing the polls of threads. 'Junior Modding' or 'Backseat Modding' can refer negatively to the behavior of ordinary users who take a moderator-like tone in criticizing other members.
Essentially, it is the duty of the moderator to manage the day-to-day affairs of a forum or board as it applies to the stream of user contributions and interactions. The relative effectiveness of this user management directly impacts the quality of a forum in general, its appeal, and its usefulness as a community of interrelated users.
The administrators (short form: "admin") manage the technical details required for running the site. As such, they may promote (and demote)members to moderators, manage the rules, create sections and sub-sections, as well as perform any database operations (database backupetc.). Administrators often also act as moderators. Administrators may also make forum-wide announcements, or change the appearance (known as the skin) of a forum.
The term prune used extensively in administration panels is synonymous with delete or remove. The term comes from pruning, the practice of removing diseased, non-productive, or otherwise unwanted portions from a plant.
A post is a user submitted message enclosed into a block containing the user's details and the date and time it was submitted. Members are usually allowed to edit or delete their own posts. Posts are contained in threads, where they appear as boxes one after another. The first post starts the thread; this may be called the TS (thread starter) or OP (original post). Posts that follow in the thread are meant to continue discussion about that post, or respond to other replies; it is not uncommon for discussions to be derailed.
On Western forums, the classic way to show a member's own details (such as name and avatar) has been on the left side of the post, in a narrow column of fixed width, with the post controls located on the right, at the bottom of the main body, above the signature block. In more recent forum software implementations the Asian style of displaying the members' details above the post has been copied.
Posts have an internal limit usually measured in characters. Often one is required to have a message of minimum length of 10 characters. There is always an upper limit but it is rarely reached – most boards have it at either 10,000, 20,000, 30,000 or 50,000 characters.
Most forums keep track of a user's postcount. The postcount is a measurement of how many posts a certain user has made. Users with higher postcounts are often considered more reputable than users with lower postcounts. However, some forums have disabled postcounts in the hopes that doing so will reduce the emphasis on quantity over quality of information.
A thread (sometimes called a topic) is a collection of posts, usually displayed from oldest to latest, although this is typically configurable: options for newest to oldest and for a threaded view (a tree-like view applying logical reply structure before chronological order) can be available. A thread is defined by a title, an additional description that may summarize the intended discussion, and an opening or original post (common abbreviation 'OP', which can also mean original poster) which opens whatever dialogue or makes whatever announcement the poster wished. A thread can contain any number of posts, including multiple posts from the same members, even if they are one after the other.
A thread is contained in a forum, and may have an associated date which is taken as the date of the last post (options to order threads by other criteria are generally available). When a member posts in a thread it will jump to the top since it is the latest updated thread. Similarly, other threads will jump in front of it when they receive posts. When a member posts in a thread for no reason but to have it go to the top, it is referred to as a bump or bumping. Threads which are important but rarely receive posts are stickyed (or, in some software, 'pinned'). A sticky thread will always appear in front of normal threads, often in its own section.
A thread's popularity is measured on forums in reply (total posts minus one – the opening post) counts. Some forums also track page views. Threads meeting a set number of posts or a set number of views may receive a designation such as "hot thread" and be displayed with a different icon compared to others threads. This icon may stand out more to emphasize the thread.
Comparison with other Web applications
One significant difference between forums and electronic mailing lists is that mailing lists automatically deliver new messages to the subscriber, while forums require the member to visit the website and check for new posts. Because members may miss replies in threads they are interested in, many modern forums offer an "e-mail notification" feature, whereby members can choose to be notified of new posts in a thread, and web feeds that allow members to see a summary of the new posts using aggregator software. The main difference between newsgroups and forums is that additional software, a newsreader, is required to participate in newsgroups. Visiting and participating in forums normally requires no additional software beyond the web browser.
Wikis, unlike conventional forums, typically allow all users to edit all content, including each other's messages. This level of content manipulation is reserved for moderators or administrators on most forums. Wikis also allow the creation of other content outside the talk pages. On the other hand, weblogs and generic content management systems tend to be locked down to the point where only a few select users can post blog entries, although many allow other users to comment upon them.
Forums differ from chat rooms and instant messaging in that forum participants do not have to be online simultaneously to receive or send messages. Messages posted to a forum or Usenet are publicly available for some time, which is uncommon in chat rooms that maintain frequent activity.
One rarity among forums is the ability to create your own picture album. Forum participants can upload personal pictures onto the site, add descriptions to the pictures, and choose album covers. Pictures are in the same format as posting threads, and contain the same options such as "Report Post" and "Reply to Post".
Features of my website
By default to be an Internet forum, the web application needs an ability to submit threads and replies. Forum software may sometimes allow categories or subforums. The chronological older-to-newer view is generally associated with forums (the newer to older being associated more akin to blogs).
Tripcodes and capcodes
Main article: Tripcode
In a tripcode system, a secret password is added to the user's name following a separator character (often a number sign). This password, or tripcode, is hashed into a special key, or trip, distinguishable from the name by HTML styles. Tripcodes cannot be faked but on some types of forum software they are insecure and can be guessed. On other types, they can be brute forced with software designed to search for tripcodes such as Tripcode Explorer.
Moderators and administrators will frequently assign themselves capcodes, or tripcodes where the guessable trip is replaced with a special notice (such as "# Administrator"), or cap.
Main article: Personal message
A private message, or PM for short, is a message sent in private from a member to one or more other members. The ability to send so-calledcarbon copies is sometimes available. When sending a carbon copy (cc), the users to whom the message is sent directly will not be aware of the recipients of the carbon copy or even if one was sent in the first place.[example 1]
Private messages are generally used for personal conversations. They can also be used with tripcodes—a message is addressed to a public trip and can be picked up by typing in the tripcode.
An attachment can be almost any file. When someone attaches a file to a post they are uploading the file to the forums' server. Forums usually have very strict limit on what can be attached and what cannot (among which the size of the files in question). Attachments can be part of a thread, social group, etc.
BBCode and HTML
HyperText Markup Language (HTML) is sometimes allowed but usually its use is discouraged or when allowed it is extensively filtered. Modern bulletin board systems will have it disabled altogether or allow only Administrators use it, as allowing it on any Normal User level is considered a security risk due to a high rate of XSS vulnerabilities. When HTML is disabled Bulletin Board Code (BBCode) is the most common preferred alternative. BBCode usually consists of a tag, similar to HTML only instead of < and > the tagname is enclosed within square brackets (meaning: [ and ]). Commonly is used for italic type, is used for bold, [u] for underline, [color="value"] for color and
Emoticon or smiley is a symbol or combination of symbols used to convey emotional content in written or message form. Forums implement a system through which some of the text representations of an emoticons (e.g. XD, :p) are rendered as a small image. Depending on part the world the forum's topic originates (since most forums are international) smilies can be replaced by other forms of similar graphics, an example would be kaoani
Most forums implement an opinion poll system for threads. Most implementations allow for single-choice or multi-choice (sometimes limited to a certain number) when selecting options as well as private or public display of voters. Polls can be set to expire after a certain date or in some cases after a number of days from its creation. Members vote in a poll and a statistic is displayed graphically.
RSS and ATOM
RSS and ATOM feeds allow a minimalistic means of subscribing to the forum. Common implementations only allow RSS feeds listing the last few threads updated for the forum index and the last posts in a thread.
Other forum features
An ignore list allows members to hide posts of other members that they do not want to see or have a problem with. In most implementations they are referred to as foe list or ignore list. Usually the posts are not hidden, but minimized with only a small bar indication a post from the user on the ignore list is there. Internet forums include a member list, present in almost all forums it allows display of all forum members, with integrated search feature. Some forums will not list members with 0 posts, even if they have activated their accounts.
Signature-state your signature picture that validifies that you're the one who created that thread/post
Common on forums, a subscription is a form of automated notification integrated into the software of most forums. It usually notifies either by email or on the site when the member returns. The option to subscribe is available for every thread while logged in. Subscriptions work withread marking, namely the property of unread which is given to the content never served to the user by the software.
Recent development in some popular implementations of forum software has brought social network features and functionality. Such features include personal galleries, pages as well as a social network like chat systems.
Most forum software is now fully customizable with "hacks" or "modifications" readily available to customize your forum to yours and your members needs.
Objectives of the Project
a. Understanding the various concept of web engineering.
b. The project and implimentation contains the different modules which need to be integrated for the same. so project and implimentation integration management needs to be studied which will help me to enhance my skills
c. Learning the concept of C#, Ajax;
d. Understanding the concept of Webml and Uml
Data Flow Diagrams:
DFD show the flow of data through the system . it uses a system as a function that transform the inputs to desired outputs. A data will typically undergo a series of transformations that take place within a system to the inputs data so that eventually the outputs data is produced. Various symbols are used while depicting a DFD which are as follows:
Bubble represents transformations of data from one place to another. Naming this bubble or circle represents this transformation.
Data flows are represented by named arrows entering or leaving the bubbles.
An open rectangle is a data store-data at rest, or a temporary repository of data.
A square defines a source or designation of system data.
some conventions while drawing dfds are:
1. All external files should always be shown in the DFD as labeled straight line.
2. The need for multiple dataflow by the process is represented by * between the dataflow. Similarly, the ‘or’ relationships is represented by ‘+’ between the data flows.
3. DFD should not present procedural information. So, while drawing a DFD one must not involved in the procedural details.
Rules for constructing a dfd:
Several thumb rules are used in drawing DFDs:-
1. Processes should be named and numbered for easy reference. Each name should be representative of the process.
2. The direction of flow is from top to bottom and from left to right. One way to indicate this is to draw a long flow line back to the source. An alternative way is to repeat the source symbol as a destination. Since, it is marked with a short diagonal in the lower right corner.
3. When a process is exploded into lower-level details, they are numbered.
4. The names of the data stores, sources and destinations are written in capital letters. Process and data flow names have the first letter to each word capitalized.
5. Work your way consistently from the inputs to the outputs or vice-versa.
6. Never try to show control logic like loops or decisions.
7. Label each arrow with proper data elements
Overview to the Stored Procedure
A stored procedure is a set of one or more SQL statements that are stored together in database. To create a stored procedure use CREATE PROCEDURE statement. To use the stored procedure you send a request for it to be executed. When server recieves the request, it executes the stored procedure.
Stored procedures assist in achieving a consistent implementation of logic across applications. The SQL statements and logic needed to perform a commonly performed task can be designed, coded, and tested once in a stored procedure. Each application needing to perform that task can then simply execute the stored procedure. Coding business logic into a single stored procedure also offers a single point of control for ensuring that business rules are correctly enforced.
Stored procedures can also improve performance. Many tasks are implemented as a series of SQL statements. Conditional logic applied to the results of the first SQL statements determines which subsequent SQL statements are executed. If these SQL statements and conditional logic are written into a stored procedure, they become part of a single execution plan on the server. The results do not have to be returned to the client to have the conditional logic applied; all of the work is done on the server.
Some concepts of stored procedures.
• A stored procedure is one or more SQL statements that have been compiled and stored with database. A stored procedure can be started by application code on the client.
• Stored procedure can improve database performance because the SQL statements in each procedure are only compiled and optimized the first time they are executed. In sontrast SQL statements that are sent from a client to the server have to be compiled and optimized everytime ther are executed.
• In addition to SELECT statement, a stored procedure can contain othe SQL statements such as INSERT,UPDATE,DELETE. It also contain control-of-flow language.
• A trigger is a special type of procedure that executes when rows are inserted, updated or deleted from table.
• A user defined function(UDF) is a special type of procedure that can return a value or a table.
Overview to the Dynamic link library
‘Dynamic Link Library’ implies DLLs are libraries that contain code and data that can be used across multiple applications at the same time. For example the USER32.dll or the KERNEL32.dll are the DLLs that every windows program