Seminar Links

May 5th, 2010

Windows XP Pro

MSSQL or MySQL

Internet Access

Day 1

.NET Framework Background

  1. What is it?
    1. The Microsoft .NET Framework is a software framework that is available with several Microsoft Windows operating systems. It includes a large library of pre-coded solutions to common programming problems and a virtual machine that manages the execution of programs written specifically for the framework. The .NET Framework is a key Microsoft offering and is intended to be used by most new applications created for the Windows platform.
      1. What is a framework? A software framework, in computer programming, is an abstraction in which common code providing generic functionality can be selectively overridden or specialized by user code providing specific functionality. Frameworks are a special case of software libraries in that they are reusable abstractions of code wrapped in a well-defined API, yet they contain some key distinguishing features that separate them from normal libraries.
      2. What is a virtual machine?  A process VM, sometimes called an application virtual machine, runs as a normal application inside an OS and supports a single process. It is created when that process is started and destroyed when it exits. Its purpose is to provide a platform-independent programming environment that abstracts away details of the underlying hardware or operating system, and allows a program to execute in the same way on any platform.A process VM provides a high-level abstraction — that of a high-level programming language (compared to the low-level ISA abstraction of the system VM). Process VMs are implemented using an interpreter; performance comparable to compiled programming languages is achieved by the use of just-in-time compilation.This type of VM has become popular with the Java programming language, which is implemented using the Java virtual machine. Other examples include the Parrot virtual machine, which serves as an abstraction layer for several interpreted languages, and the .NET Framework, which runs on a VM called the Common Language Runtime.
    2. The pre-coded solutions that form the framework’s Base Class Library cover a large range of programming needs in a number of areas, including user interface, data access, database connectivity, cryptography, web application development, numeric algorithms, and network communications.  The class library is used by programmers, who combine it with their own code to produce applications.
    3. Programs written for the .NET Framework execute in a software environment that manages the program’s runtime requirements. Also part of the .NET Framework, this runtime environment is known as the Common Language Runtime (CLR). The CLR provides the appearance of an application virtual machine so that programmers need not consider the capabilities of the specific CPU that will execute the program. The CLR also provides other important services such as security, memory management, and exception handling. The class library and the CLR together compose the .NET Framework.
    4. Version 3.0 of the .NET Framework is included with Windows Server 2008 and Windows Vista. The current version of the framework can also be installed on Windows XP and the Windows Server 2003 family of operating systems. A reduced “Compact” version of the .NET Framework is also available on Windows Mobile platforms, including smartphones.
    5. The core aspects of the .NET Framework lie within the Common Language Infrastructure, or CLI. The purpose of the CLI is to provide a language-neutral platform for application development and execution, including functions for exception handling, garbage collection, security, and interoperability. Microsoft’s implementation of the CLI is called the Common Language Runtime or CLR.
    6. The intermediate CIL code is housed in .NET assemblies. As mandated by specification, assemblies are stored in the Portable Executable (PE) format, common on the Windows platform for all DLL and EXE files. The assembly consists of one or more files, one of which must contain the manifest, which has the metadata for the assembly. The complete name of an assembly (not to be confused with the filename on disk) contains its simple text name, version number, culture, and public key token. The public key token is a unique hash generated when the assembly is compiled, thus two assemblies with the same public key token are guaranteed to be identical from the point of view of the framework. A private key can also be specified known only to the creator of the assembly and can be used for strong naming and to guarantee that the assembly is from the same author when a new version of the assembly is compiled (required to add an assembly to the Global Assembly Cache).
    7. All CLI is self-describing through .NET metadata. The CLR checks the metadata to ensure that the correct method is called. Metadata is usually generated by language compilers but developers can create their own metadata through custom attributes. Metadata contains information about the assembly, and is also used to implement the reflective programming capabilities of .NET Framework.
    8. .NET has its own security mechanism with two general features: Code Access Security (CAS), and validation and verification. Code Access Security is based on evidence that is associated with a specific assembly. Typically the evidence is the source of the assembly (whether it is installed on the local machine or has been downloaded from the intranet or Internet). Code Access Security uses evidence to determine the permissions granted to the code. Other code can demand that calling code is granted a specified permission. The demand causes the CLR to perform a call stack walk: every assembly of each method in the call stack is checked for the required permission; if any assembly is not granted the permission a security exception is thrown.
    9. When an assembly is loaded the CLR performs various tests. Two such tests are validation and verification. During validation the CLR checks that the assembly contains valid metadata and CIL, and whether the internal tables are correct. Verification is not so exact. The verification mechanism checks to see if the code does anything that is ‘unsafe’. The algorithm used is quite conservative; hence occasionally code that is ’safe’ does not pass. Unsafe code will only be executed if the assembly has the ’skip verification’ permission, which generally means code that is installed on the local machine.
    10. .NET Framework uses appdomains as a mechanism for isolating code running in a process. Appdomains can be created and code loaded into or unloaded from them independent of other appdomains. This helps increase the fault tolerance of the application, as faults or crashes in one appdomain do not affect rest of the application. Appdomains can also be configured independently with different security privileges. This can help increase the security of the application by isolating potentially unsafe code. The developer, however, has to split the application into subdomains; it is not done by the CLR.
  2. C# (10 minutes)
    1. C# (pronounced C Sharp) is a multi-paradigm programming language that encompasses functional, imperative, generic, object-oriented (class-based), and component-oriented programming disciplines. It was developed by Microsoft as part of the .NET initiative and later approved as a standard by ECMA (ECMA-334) and ISO (ISO/IEC 23270). C# is one of the programming languages supported by the .NET Framework’s Common Language Runtime.
    2. C# is intended to be a simple, modern, general-purpose, object-oriented programming language. Its development team is led by Anders Hejlsberg, the designer of Borland’s Object Pascal language. It has an object-oriented syntax based on C++ and is heavily influenced by Java. It was initially named Cool, which stood for “C like Object Oriented Language.” However, in July 2000, when Microsoft made the project public, the name of the programming language was given as C#. The most recent version of the language is 3.0 which was released in conjunction with the .NET Framework 3.5 in 2007. The next proposed version, 4.0, is in development.
    3. In 1996, Sun Microsystems released the Java programming language with Microsoft soon purchasing a license to implement it in their operating system. Java was originally meant to be a platform independent language, but Microsoft, in their implementation, broke their license agreement and made a few changes that would essentially inhibit Java’s platform-independent capabilities. Sun filed a lawsuit and Microsoft settled, deciding to create their own version of a partially compiled, partially interpreted object-oriented programming language with syntax closely related to that of C++.During the development of .NET Framework, the class libraries were originally written in a language/compiler called Simple Managed C (SMC). In January 1999, Anders Hejlsberg formed a team to build a new language at the time called Cool, which stood for “C like Object Oriented Language”. Microsoft had considered keeping the name “Cool” as the final name of the language, but chose not to do so for trademark reasons. By the time the .NET project was publicly announced at the July 2000 Professional Developers Conference, the language had been renamed C#, and the class libraries and ASP.NET runtime had been ported to C#.

      C#’s principal designer and lead architect at Microsoft is Anders Hejlsberg, who was previously involved with the design of Turbo Pascal, Borland Delphi, and Visual J++. In interviews and technical papers he has stated that flaws in most major programming languages (e.g. C++, Java, Delphi, and Smalltalk) drove the fundamentals of the Common Language Runtime (CLR), which, in turn, drove the design of the C# programming language itself. Some argue that C# shares roots in other languages.

    4. By design, C# is the programming language that most directly reflects the underlying Common Language Infrastructure (CLI). Most of its intrinsic types correspond to value-types implemented by the CLI framework. However, the language specification does not state the code generation requirements of the compiler: that is, it does not state that a C# compiler must target a Common Language Runtime, or generate Common Intermediate Language (CIL), or generate any other specific format. Theoretically, a C# compiler could generate machine code like traditional compilers of C++ or FORTRAN. However, in practice, all existing compiler implementations target CIL.Some notable C# distinguishing features are:
    5. There are no global variables or functions. All methods and members must be declared within classes. It is possible, however, to use static methods/variables within public classes instead of global variables/functions.
    6. Local variables cannot shadow variables of the enclosing block, unlike C and C++. Variable shadowing is often considered confusing by C++ texts.
    7. C# supports a strict Boolean datatype, bool. Statements that take conditions, such as while and if, require an expression of a boolean type. While C++ also has a boolean type, it can be freely converted to and from integers, and expressions such as if(a) require only that a is convertible to bool, allowing a to be an int, or a pointer. C# disallows this “integer meaning true or false” approach on the grounds that forcing programmers to use expressions that return exactly bool can prevent certain types of programming mistakes such as if (a = b) (use of = instead of ==).
    8. In C#, memory address pointers can only be used within blocks specifically marked as unsafe, and programs with unsafe code need appropriate permissions to run. Most object access is done through safe object references, which are always either pointing to a valid, existing object, or have the well-defined null value; a reference to a garbage-collected object, or to random block of memory, is impossible to obtain. An unsafe pointer can point to an instance of a value-type, array, string, or a block of memory allocated on a stack. Code that is not marked as unsafe can still store and manipulate pointers through the System.IntPtr type, but cannot dereference them.
    9. Managed memory cannot be explicitly freed, but is automatically garbage collected. Garbage collection addresses memory leaks. C# also provides direct support for deterministic finalization with the using statement (supporting the Resource Acquisition Is Initialization idiom).
    10. Multiple inheritance is not supported, although a class can implement any number of interfaces. This was a design decision by the language’s lead architect to avoid complication, avoid dependency hell and simplify architectural requirements throughout CLI.
    11. C# is more typesafe than C++. The only implicit conversions by default are those which are considered safe, such as widening of integers and conversion from a derived type to a base type. This is enforced at compile-time, during JIT, and, in some cases, at runtime. There are no implicit conversions between booleans and integers, nor between enumeration members and integers (except for literal 0, which can be implicitly converted to any enumerated type). Any user-defined conversion must be explicitly marked as explicit or implicit, unlike C++ copy constructors (which are implicit by default) and conversion operators (which are always implicit).
    12. Enumeration members are placed in their own scope.
    13. C# provides syntactic sugar for a common pattern of a pair of methods, accessor (getter) and mutator (setter) encapsulating operations on a single attribute of a class, in the form of properties.
    14. Full type reflection and discovery is available.
  3. Visual Basic (10 minutes)
    1. Like the BASIC programming language, Visual Basic was designed to be easily learned and used by beginner programmers. The language not only allows programmers to create simple GUI applications, but can also develop complex applications. Programming in VB is a combination of visually arranging components or controls on a form, specifying attributes and actions of those components, and writing additional lines of code for more functionality. Since default attributes and actions are defined for the components, a simple program can be created without the programmer having to write many lines of code. Performance problems were experienced by earlier versions, but with faster computers and native code compilation this has become less of an issue.Although programs can be compiled into native code executables from version 5 onwards, they still require the presence of runtime libraries of approximately 1 MB in size. This runtime is included by default in Windows 2000 and later, but for earlier versions of Windows like 95/98/NT it must be distributed together with the executable.

      Forms are created using drag-and-drop techniques. A tool is used to place controls (e.g., text boxes, buttons, etc.) on the form (window). Controls have attributes and event handlers associated with them. Default values are provided when the control is created, but may be changed by the programmer. Many attribute values can be modified during run time based on user actions or changes in the environment, providing a dynamic application. For example, code can be inserted into the form resize event handler to reposition a control so that it remains centered on the form, expands to fill up the form, etc. By inserting code into the event handler for a keypress in a text box, the program can automatically translate the case of the text being entered, or even prevent certain characters from being inserted.

      Visual Basic can create executables (EXE files), ActiveX controls, or DLL files, but is primarily used to develop Windows applications and to interface database systems. Dialog boxes with less functionality can be used to provide pop-up capabilities. Controls provide the basic functionality of the application, while programmers can insert additional logic within the appropriate event handlers. For example, a drop-down combination box will automatically display its list and allow the user to select any element. An event handler is called when an item is selected, which can then execute additional code created by the programmer to perform some action based on which element was selected, such as populating a related list.

      Alternatively, a Visual Basic component can have no user interface, and instead provide ActiveX objects to other programs via Component Object Model (COM). This allows for server-side processing or an add-in module.

      The language is garbage collected using reference counting, has a large library of utility objects, and has basic object oriented support. Since the more common components are included in the default project template, the programmer seldom needs to specify additional libraries. Unlike many other programming languages, Visual Basic is generally not case sensitive, although it will transform keywords into a standard case configuration and force the case of variable names to conform to the case of the entry within the symbol table. String comparisons are case sensitive by default, but can be made case insensitive if so desired.

      The Visual Basic compiler is shared with other Visual Studio languages (C, C++), but restrictions in the IDE do not allow the creation of some targets (Windows model DLLs) and threading models.

    2. Visual Basic has the following traits which differ from C-derived languages:
      • Multiple assignment available in C language is not possible. A = B = C does not imply that the values of A, B and C are equal. The boolean result of “Is B = C?” is stored in A. The result stored in A could therefore be false(0) or true(-1)
      • Boolean constant True has numeric value −1.[3] This is because the Boolean data type is stored as a 16-bit signed integer. In this construct −1 evaluates to 16 binary 1s (the Boolean value True), and 0 as 16 0s (the Boolean value False). This is apparent when performing a Not operation on a 16 bit signed integer value 0 which will return the integer value −1, in other words True = Not False. This inherent functionality becomes especially useful when performing logical operations on the individual bits of an integer such as And, Or, Xor and Not.[4] This definition of True is also consistent with BASIC since the early 1970s Microsoft BASIC implementation and is also related to the characteristics of CPU instructions at the time.
      • Logical and bitwise operators are unified. This is unlike some C-derived languages (such as Perl), which have separate logical and bitwise operators. This again is a traditional feature of BASIC.
      • Variable array base. Arrays are declared by specifying the upper and lower bounds in a way similar to Pascal and Fortran. It is also possible to use the Option Base statement to set the default lower bound. Use of the Option Base statement can lead to confusion when reading Visual Basic code and is best avoided by always explicitly specifying the lower bound of the array. This lower bound is not limited to 0 or 1, because it can also be set by declaration. In this way, both the lower and upper bounds are programmable. In more subscript-limited languages, the lower bound of the array is not variable. This uncommon trait does exist in Visual Basic .NET but not in VBScript.
      • Relatively strong integration with the Windows operating system and the Component Object Model. The native types for strings and arrays are the dedicated COM types, BSTR and SAFEARRAY.
      • Banker’s rounding as the default behavior when converting real numbers to integers with the Round function. ? Round(2.5, 0) gives 2, ? Round(3.5, 0) gives 4.
      • Integers are automatically promoted to reals in expressions involving the normal division operator (/) so that division of an odd integer by an even integer produces the intuitively correct result. There is a specific integer divide operator (\) which does truncate.
      • By default, if a variable has not been declared or if no type declaration character is specified, the variable is of type Variant. However this can be changed with Deftype statements such as DefInt,DefBool, DefVar, DefObj, DefStr. There are 12 Deftype statements in total offered by Visual Basic 6.0. The default type may be overridden for a specific declaration by using a special suffix character on the variable name (# for Double, ! for Single, & for Long, % for Integer, $ for String, and @ for Currency) or using the key phrase As (type). VB can also be set in a mode that only explicitly declared variables can be used with the command Option Explicit.
    3. OPTION BASE was introduced by ANSI, with the standard for ANSI Minimal BASIC in the late 1970s.

  4. Projects Referenced (5 minutes)

    1. Mono. An open source, cross-platform, implementation of C# and the CLR that is binary compatible with Microsoft.NET
    2. HtmlAgilityPack. This is an agile HTML parser that builds a read/write DOM and supports plain XPATH or XSLT (you actually don’t HAVE to understand XPATH nor XSLT to use it, don’t worry…). It is a .NET code library that allows you to parse “out of the web” HTML files. The parser is very tolerant with “real world” malformed HTML. The object model is very similar to what proposes System.Xml, but for HTML documents (or streams).
    3. ZedGraph.  ZedGraph is a set of classes, written in C#, for creating 2D line and bar graphs of arbitrary datasets. The classes provide a high degree of flexibility — almost every aspect of the graph can be user-modified. At the same time, usage of the classes is kept simple by providing default values for all of the graph attributes. The classes include code for choosing appropriate scale ranges and step sizes based on the range of data values being plotted.
  5. Being a Developer (15 minutes)
    1. Dealing with your Community (Clients and Team mates)
    2. Understanding the Question/Problem/System
    3. Finding the Solution/Making the Plan
    4. Knowing the Language

Console example   Basic Syntax and Concepts

  1. References (Project References and using syntax). (5 minutes)
    1. Name spaces
    2. Standard References in Visual Studio 2008
      1. System
      2. System.Core
      3. System.Data
      4. System.Data.DataSetExtensions
      5. System.Deployment
      6. System.Xml
      7. System.Xml.Linq
  2. Hello World Console Application (5 minutes)  (http://pastebin.com/wV7AjDUy)
    1. Declaring a variable of type string
    2. WriteLine
    3. ReadLine
  3. Method definition (10 minutes) (http://pastebin.com/7ycj4Ty7)
    1. Command line parameters
    2. Comments
    3. If Then Else conditional logic
    4. While loops
    5. String concatenation
    6. Integer addition
  4. Grabbing a Web Page (15 minutes) (http://pastebin.com/WRerZTN0)
    1. Utilizing a url from the command line
    2. WebRequest
    3. Object Properties:  Timeout and UserAgent
    4. Stream
    5. StreamReader
    6. ReadToEnd
    7. WebException
    8. Exception
  5. Grabbing images (5 minutes)  (http://pastebin.com/RVsKMiB0)

    1. WebClient client = new WebClient();
    2. client.DownloadFile

Asynchronous Web Retrieval and basic XML 

  1. Asynchronous data fetching (http://pastebin.com/eaeNB2Aj)
  2. Extracting the data from the XML
    1. XML (http://pastebin.com/datGpNJd)
      1. Organize your data (PSPad)
      2. Get to know your data
    2. XPath
      1. Extracting a single piece of information (http://pastebin.com/PgHjepYZ)
      2. Extracting many pieces of information (http://pastebin.com/tN8q9jX6)
    3. HtmlAgilityPack ()
      1. Grabbing Data from a web page ()
    4. Regular Expressions ()

.NET and Databases

  1. MySQL + MSSQL (5 minutes)
    1. Microsoft SQL Server Management Studio (download)
    2. Creating a table
    3. Creating Columns
  2. SQL itself (5 minutes)
    1. Building SQL string
    2. Stored Procedures
  3. Accessing a database (5 minutes) http://pastebin.com/rAMpbcdw
    1. Imports System.Data.SqlClient
    2. ConnectionString  ConnString = “Data Source=MATHEW-PC\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True”
    3. Dim SQLConn As New SqlConnection() ‘The SQL Connection
    4. Dim SQLCmd As New SqlCommand() ‘The SQL Command
    5. SQLConn.ConnectionString = ConnString ‘Set the Connection String
    6. SQLConn.Open() ‘Open the connection
    7. SQLCmd.Connection = SQLConn ‘Sets the Connection to use with the SQL Command
    8. SQLCmd.CommandText = SQLStr ‘Sets the SQL String
    9. SQLCmd.ExecuteNonQuery() ‘Executes SQL Commands Non-Querys only
    10. SQLConn.Close() ‘Close the connection
  4. Sending data (5 minutes)
    1. INSERT
    2. UPDATE http://pastebin.com/BYvLauWQ
  5. Retrieving Data  http://pastebin.com/XaPaKHe5
    1. SELECT
    2. DataReader
  6. Data structures  http://pastebin.com/U72N5V56
    1. DataSet
    2. DataTable
    3. Pros and cons
  7. Stored Procedures
    1. INSERT
      1. Stored Procedure Source (http://pastebin.com/SMmZgvL4)
      2. Visual Basic Code (http://pastebin.com/EkWsyt9V)
    2. UPDATE
      1. Stored Procedure Source (http://pastebin.com/MKA74u8M)
      2. Visual Basic Code (http://pastebin.com/fWTqmMWA)
    3. DELETE
      1. Stored Procedure Source (http://pastebin.com/qf4nyDAU)
      2. Visual Basic Code (http://pastebin.com/VeFjTCxg)
    4. SELECT
      1. Source (http://pastebin.com/ZBbqSdnA)
      2. VB Code (http://pastebin.com/K6dbqEnY)
  8. Different methods of building code
    1. Simplification through Encapsulation
      1. What we want to do …
      2. Database Class
        1. Making a basic class (http://pastebin.com/kpGaDwn3)
        2. Private Fields (http://pastebin.com/MqmiDbLn)
        3. Constructor (http://pastebin.com/X5YDdvx7)
        4. Properties (http://pastebin.com/qRQvWGPc)
        5. Methods ()
        6. Completed Example (http://pastebin.com/Cj6TwgYV)
      3. Table Class
        1. Base (Private Fields, Public Properties, Constructor stubs) (http://pastebin.com/1TkJFKbp)
        2. load method with side trip to configuration files (http://pastebin.com/P6ZNAnzy)
      4. Examples Applying Class
        1. LOAD
          1. Source SQL (http://pastebin.com/e5s2HiiH)
          2. Console example (http://pastebin.com/pTwt2usu)
        2. INSERT
          1. Table class improvement (http://pastebin.com/RcVBGmB8)
          2. Console example (http://pastebin.com/Bb8YXPwm)
        3. UPDATE
          1. Table class improvement (http://pastebin.com/ChxxxPYV)
          2. Console example (http://pastebin.com/z25EFubs)
        4. DELETE
          1. Table class improvement (http://pastebin.com/Yr9sLVUe)
          2. Console example (http://pastebin.com/0QUKbdRW)
        5. SELECT
          1. Table class improvement (http://pastebin.com/nTX7CLu7) for SqlDataReader output
          2. Console example (http://pastebin.com/rqPDYq8g)
          3. Table class improvement (http://pastebin.com/qD0Q0pp1) for DataSet output
          4. Console example (http://pastebin.com/S91NSaDq)

Day 2

Windows Forms Introduction

  1. A different project to set up.
  2. Visual Studio …
    1. Toolbox
    2. Debugger
  3. A tour through the components of a Windows Form project.
  4. Building a basic Entry form
    1. Layout (http://screencast.com/t/OGQxMzUzYmY)
      1. Form
        1. Application Title (Text property)
        2. Dimensions (Width and Height properties)
        3. MinimumSize / MaximumSize
        4. Background color (http://pastebin.com/n5iBKUd9)
        5. Form_Load ()
        6. Resize (http://pastebin.com/bRJd8jYY)
          1. Compare to ResizeBegin
          2. Compare to ResizeEnd
        7. Drawing on a Form (http://pastebin.com/Zbvzr2MK)
        8. FormClosing (http://pastebin.com/V30CivVA)
        9. FormClosed (Registry Writes)
      2. TextBox
        1. Naming (txt<Name for data>)
        2. Tab index
        3. ToolTip (http://pastebin.com/Em9J52T3)
          1. Naming
        4. Validating event (http://pastebin.com/gaQL45uv)
      3. Label
        1. Naming
      4. DateTimePicker
      5. Button
        1. Naming (btn<Name of what it does>)
        2. Tab index
        3. Click event
          1. btnExit_click (http://pastebin.com/BfrDgJCk)
          2. btnSave_click (http://pastebin.com/0FaL3qz9)
        4. Converting text to other types
          1. text to integer (http://pastebin.com/fATGsikA)
  5. Saving data from a simple form
    1. File Dialog (http://pastebin.com/pLW2Nfjf)
    2. Convert to a Rich Text Box (http://pastebin.com/zsw9KKTh)

Windows Forms

  1. DataGridView
    1. Manual Setup
      1. Filling (http://pastebin.com/BPzArAKQ)
      2. Add / Edit (http://pastebin.com/av8yt2rN)
      3. Sorting
    2. From the Database (http://pastebin.com/eFnMtFVC)
    3. From XML (http://pastebin.com/apEvZpRP)
Windows Forms with Advanced Classes
  1. IClassifier (http://pastebin.com/xGZcvmG6)
  2. ICategory (http://pastebin.com/8MR66cRM)
  3. PhraseCount (http://pastebin.com/tAVHeKen)
  4. ExcludedWords (http://pastebin.com/KrmAj7tc)
  5. EnumerableCategory (http://pastebin.com/1cjDDtte)
  6. Classifer (http://pastebin.com/xq6iwzBB)
  7. Category (http://pastebin.com/vZdpnGXA)
  8. Putting it in a form … ??

ASP.NET Background

  1. xHTML

    1. DOCTYPE
    2. HEAD
      1. Title
      2. META
        1. <meta name=”description” content=”Free Web tutorials on HTML, CSS, XML, and XHTML” />
        2. <meta name=”keywords” content=”HTML, DHTML, CSS, XML, XHTML, JavaScript” />
      3. SCRIPT
      4. LINK
    3. BODY
      1. Headings (http://pastebin.com/1zv0ic10)
      2. Paragraphs
        1. Simple paragraphs (http://pastebin.com/Hhdzyztt)
        2. Line breaks (http://pastebin.com/jDSsv7Rb)
      3. Formatting (http://pastebin.com/UbGb9eSg)
      4. Styles (http://pastebin.com/9yT1Ms2H)
      5. Links (http://pastebin.com/j0GgGWMQ)
      6. Images (http://pastebin.com/fLU5N2XC)
      7. Tables (http://pastebin.com/3DT8EH04)
      8. Lists (http://pastebin.com/6kVHYEgQ)
      9. Forms
        1. Text boxes (http://pastebin.com/sUkrd5iF)
        2. Radio buttons (http://pastebin.com/nYqkEnUQ)
        3. Checkboxes (http://pastebin.com/ARJw7sr7)
        4. Action (http://pastebin.com/FgWN8Fac)
      10. DIV ()
    4. CSS
      1. Example 1 (http://pastebin.com/av2CG2rT)
      2. Id selector (http://pastebin.com/ynLDQ9h5)
      3. Class selector (http://pastebin.com/Fd3tye2D)
      4. Class selector by specific tag (http://pastebin.com/9aYQtya6)
      5. Background color (http://pastebin.com/D3xPYYJT)
      6. Text color (http://pastebin.com/jfPjHAXE)
      7. Text alignment (http://pastebin.com/A5pttxZ2)
      8. Text decoration (http://pastebin.com/09k0YApw)
      9. Text decoration 2 (http://pastebin.com/HUVMYENH)
      10. Text transformation (http://pastebin.com/aTAmsvim)
  2. JavaScript
    1. Including JavaScript in a page
      1. On the page (http://pastebin.com/KkvxtdQa)
      2. In a separate file
        1. HTML (http://pastebin.com/XwcQyLQP)
        2. Script file (http://pastebin.com/j632542g)
    2. Variables
      1. Single variables
      2. Collections
    3. Processing Data
    4. DOM & JavaScript
      1. Accessing
      2. Extending
  3. Network Introduction
    1. TCP/IP
      1. The TCP/IP model is a description framework for computer network protocols created in the 1970s by DARPA, an agency of the United States Department of Defense. It evolved from ARPANET, which was the world’s first wide area network and a predecessor of the Internet. The TCP/IP Model is sometimes called the Internet Model or the DoD Model.The TCP/IP model, or Internet Protocol Suite, describes a set of general design guidelines and implementations of specific networking protocols to enable computers to communicate over a network. TCP/IP provides end-to-end connectivity specifying how data should be formatted, addressed, transmitted, routed and received at the destination. Protocols exist for a variety of different types of communication services between computers.
    2. HTTP/HTTPS.
      1. HTTP is a request-response standard typical of client-server computing. In HTTP, web browsers or spiders typically act as clients, while an application running on the computer hosting the web site acts as a server. The client, which submits HTTP requests, is also referred to as the user agent. The responding server, which stores or creates resources such as HTML files and images, may be called the origin server. In between the user agent and origin server may be several intermediaries, such as proxies, gateways, and tunnels.
  4. Internet Information Service

    1. Internet Information Services (IIS) – formerly called Internet Information Server – is a web server application and set of feature extension modules created by Microsoft for use with Microsoft Windows. It is the world’s second most popular web server in terms of overall websites behind the industry leader Apache HTTP Server. As of March 2010, it served 24.47% of all websites according to Netcraft. The protocols supported in IIS 7 include: FTP, FTPS, SMTP, NNTP, and HTTP/HTTPS

Day 3

ASP.NET Part 1 Basic ASP.NET Page

  1. A Default Web Site
  2. The “Post Back” Event :: Watch this using the debugger to see how it fits into the flow of processing
  3. Text box control with Click Event
    1. ASPX (http://pastebin.com/kUFvgu5v)
    2. Code Behind (http://pastebin.com/N2mA9UJb)
  4. GridView Basic (http://pastebin.com/mWMr4LzZ)
    1. With Sorting (http://pastebin.com/in6JANPF)
    2. With Edit (http://pastebin.com/u4TA7T86)
    3. Add new
      1. ASPX (http://pastebin.com/62esrsAA)
      2. Code behind (http://pastebin.com/KaVCavJ4)
    4. With Paging (http://pastebin.com/YWX0wGaz)
  5. FileUpload
    1. ASPX (http://pastebin.com/mgDyHY92)
    2. Code Behind (http://pastebin.com/zUq5VTp0)

ASP.NET Part 2

  1. Bulleted List (http://pastebin.com/4YqYHfXd)
  2. CheckBoxList
    1. ASPX (http://pastebin.com/s3zUeJQf)
    2. Code Behind (http://pastebin.com/U2ix8Cd7)
  3. DropDownList
    1. ASPX (http://pastebin.com/ZnAebpQ6)
    2. Code Behind (http://pastebin.com/6aS4ewVB)
  4. Calendar
    1. ASPX (http://pastebin.com/JjEYcT1U)
    2. Code Behind (http://pastebin.com/tz2q9inD)

April 25th, 2010

A good friend (who is also a business associate) and I were having a discussion about what has made Anomalist successful: Communication.

Over the last decade a great deal of my time has been spent developing relationships with my contractors and honing my skills as a communicator.

This isn’t simple a matter of getting a good vocabulary, writing volumes, and giving hundreds of speeches.  It is also a matter of learning to listen and differentiating assumptions from real understanding.

Our group works in a multi-cultural community in at least three dimensions:

  • Country of origin.  Clients and crew span three continents, two major human traditions (Eastern and Western influenced), and six minor human tradition zones (South East Asia, Australia, Canada, United States, United Kingdom, and Continental Europe).
  • Types of work.  We’ve worked with people focused purely with traditional businesses (individual, small, medium, and large), large corporations, government agencies, and specifically the scientific publishing industry.  The contact people have been a mixture of self-trained to highly educated (multiple PhDs).
  • Personalities.  We have dealt with fire-brands, hyperactive, and the totally rational.

These experiences have allowed us to generate not only the technical skills necessary to successfully implement projects but also the inter-personal skills.

In fact, the technical part is usually only 1% of the actual difficulty.  The inter-personal part is 99%.

Introducing Anomalist Blog

April 22nd, 2010

We’ve discussed and planned for a company blog for a couple years but work and life always got in the way.

I’ll be echoing here the posts I am making on our fan page at FaceBook.

Thanks to Dale for skinning Wordpress to match our site layout!