CIS 342: Networked Application Systems
Spring 2005
Welcome to CIS 618. Your instructor is David Lefkovitz. I can be reached at
· Office 315 Wachman Hall
· Telephone 215-204-5550
· e-mail d.lefkovitz@temple.edu
The TA's name is Venugopal Rajagopal (Venu Raja). We also have a consultant for the course who can meet with you for further assistance. His name is Khanh Lu, and you can make appointments with him.
Ø
Course Objective
This course takes a technology-based approach to the software engineering of networked application systems design and programming. Normally a course does not predicate itself upon a particular proprietary system, but the new Microsoft .NET technology inherently contains so many implications for new software engineering paradigms that it cannot be ignored. This course, therefore, will draw upon this new technology for its theoretical, architectural, and system design foundations. If one were to view the Microsoft evolution of its application development tools over the past 20 years, 3 characteristics would be revealed: (1) Improvement of developer productivity through coding aids and automation, (2) response to accepted (and competing) open technologies like Unix and Java, and (3) response to the ubiquitous use of the internet. An evolutionary time line might appear as:
MS-DOS
Windows
Office
VB/Access/SQLServer
OLE/COM/COM+
ASP
.NET
.NET is the current and most advanced stage of this evolution, drawing together the three above mentioned characteristics into a system that bridges:
Abstract and Conceptual Concrete and Pragmatic
![]()
Software Engineering
Principles Design Methodolgy and Programming Technique

The course thus uses .NET as a model for the software engineering of enterprise applications primarily intended for networked and distributed deployment and takes its cue from these 3 characteristics:
Ø How to optimize productivity of the software engineer
Ø How to integrate the best that open technologies have to offer
Ø How to build large scale systems that operate most efficiently on the internet.
Ø
ASP.NET and VB.NET
Languages and Course Resources
The basic prerequisite knowledge of the course is
the use of web based client/server language systems involving HTML and
VBscript or Javascript for client side processing and ASP/VB or JSP/Java for server side processing. The corresponding .NET technologies that we
will be learning are syntactically more similar to ASP/VB but structurally more
similar to JSP/Java, because they are more purely object oriented
languages. These languages are ASP.NET and VB.NET.
Resources for learning and using these languages are:
(1) The website that you are currently reading, referred to as the WebNotes.
(2) The TextBook
(5) VB.NET online Class definitions
(6) The Help system embedded in VS.NET
(7) Intellisensing within VS.NET
Ø
Course Structure and
Textbook
There are 3 major segments to the course.
1. Learning the relationship of .NET structure to Software Engineering principals and system architectures
2. Learning the basics of ASP.NET and VB.NET through the course resources discussed above, exercises found in the textbooks, examples within these WebNotes that serve as code models, and the lab exercises. The actual coded solutions for all of the book examples are available to you on the class Board. You can examine and run them as you study the corresponding chapters of the two books. Many other examples will be presented and discussed in detail in the lectures.
3. Development of a Term Project. This includes design, coding and testing of the project.
1. The basic textbook for learning .NET is:
Moving to ASP.NET: Web Development with VB.NET, by Steve Harris and Rob Macdonald, Apress, 2002. ISBN:1-59059-009-0.
The
code for the book is to be found at corona.cis.temple.edu/Users1/Textbook
Code.
2. The second textbook is optional. It provides advanced material on distributed applications:
ASP.NET Distributed Applications, by Alex Homer and Dave Sussman, WROX Press 2002. ISBN: 1-861004-92-3.
The code for the book is to be found at corona.cis.temple.edu/Users1/Textbook Code, or can be downloaded from http://daveandal.com/books/misc/code/7035-vb.zip
The course is very lab intensive. 70% of the grade will be based upon assigned programming exercises and the term project. A midterm exam comprises 10% and a final exam the remaining 20%.
The
six lab assignments are each weighted by difficulty. Each assignment will be given a letter grade
based on a curve. These are then
converted to the GPA numeric equivalent from 0 to 4, weighted by the Assignment
Weight shown in the Project
Schedule, summed and divided by 22, which is the
total of the Assignment Weights, and multiplied by 0.7. The exam is graded in the same way, making up
the other 30%, and is added to the numeric score of the projects. The result is a number from 0 to 4, which is
converted back to a letter grade for the course. The formula is:
0.7*(Swigi)/22 + 0.1*m + 0.2*f
where
wi is the weight of the lab assignment i, gi
is the numeric grade of Lab Assignment i, m is the numeric grade of the midterm exam, and f is the numeric grade of the final
exam.
Each
assignment has a deadline, shown in the Due Date
column of the Project Schedule. Submission policy is that an assignment
turned in by the Due Date gets the full letter
grade. It can be turned in up to one
week late but will be downgraded by 1 letter grade. It will not be accepted after the Late Date. Note
that Project 6.4 has no Late Date.
Ø
Development Tools
We will use the following development tools, all of which are available in the lab and which can also be provided to you for installation on your home computer:
· Visual Studio (VS) .NET for development of aspx web pages, VB code behinds, and VB components.
· Microsoft Enterprise Manager for SQL Server
Ø
The Course Map
Most of the information that you will need for this course can be obtained by a navigation process through the Course Map. This map contains the following sections:
·
WebBoard Setup
·
Syllabus
·
Schedules
o
Lecture
o
Project Assignment
o
Accounts
·
Reference Material
·
The WebBoard
We will use a bulletin board product called the WebBoard for most of our multilateral class communication. The WebBoard enables the instructor and anyone in the class to post messages for the rest of the class. Use the WebBoard Setup for instructions on how to register yourself into the WebBoard. It is extremely important for you to do this; otherwise you may miss important announcements from the instructor or TA, and they will not be able to communicate with you individually via e-mail. In the setup you should choose the option that automatically e-mails all postings to you, so that you don't have to rely on going to the WebBoard to get the latest messages. For bilateral communication there is, of course, e-mail. Certain pages, like this home page, will contain a blue button at the top labeled Class Interaction, that will take you immediately to the WebBoard. The Course Map also has such a button at the top. You might also want to create a browser bookmark to the WebBoard (interact.cis.temple.edu/~cis668) and to the Course Map pages.
· Schedules and Accounts
The Lecture Schedule presents a series of Lecture units, textbook readings and links to more detailed lecture material.
The Project Schedule presents the 7 lab assignments and their due dates. These have been described above under Grading.
The Accounts describe 4 account types on 4 server machines.
(1) An NT account, c3421nn, is assigned on Theater to each student where documentation and miscellaneous files can be stored. A shared directory, called Board provides a means for the Instructor to distribute programs or files to the class.
(2) Each student will have a virtual
web root for Web Applications on
(3) Each student will have a virtual web root for Web Services on Blackhole. The name of the web is WSc3421nn. A subdirectory structure can be developed under the web root for various web service projects.
(4) The DBMS is SQL Server, which runs on Dwarf. Each student will be assigned a Database, named c3421nn.
· Reference Material
Finally, the Reference
Material section will give you links to OnLine references and some
hard copy references. The OnLine
references are classified by major topics, such as HTML, ASP VBScript, VB,
Java, JSP, etc.
You should also search the web
for additional, and possibly better, references for languages in the
course. If you find better references
than the ones provided, or links that are no longer available, please send the
urls to the Instructor.
Good Luck and enjoy the course.