Presentation is loading. Please wait.

Presentation is loading. Please wait.

Portal Development using Microsoft.NET Colgate University Michael Evans, Webmaster, MCP,MCP+I, MCSE,MCT Copyright © Michael B. Evans 2002. This work is.

Similar presentations


Presentation on theme: "Portal Development using Microsoft.NET Colgate University Michael Evans, Webmaster, MCP,MCP+I, MCSE,MCT Copyright © Michael B. Evans 2002. This work is."— Presentation transcript:

1 Portal Development using Microsoft.NET Colgate University Michael Evans, Webmaster, MCP,MCP+I, MCSE,MCT Copyright © Michael B. Evans 2002. This work is the intellectual property of the author. Permission is granted for this material to be shared for non-commercial, educational purposes, provided that this copyright statement appears on the reproduced materials and notice is given that the copying is by permission of the author. To disseminate otherwise or to republish requires written permission from the author.

2 Background Version 2 of our faculty/departmental secretary portal Started as a way to get out Class lists Emailing students Student pictures Calendaring Directory info Textbook adoptions Version 1 for everyone else All done by one web developer spending 20 hours a week over the last 8 months

3

4

5 Mom always told me Don’t talk about religion Servers running Unix/Mac/Windows are better Netscape verses Internet Explorer Don’t talk about Politics Don’t yell “Give me five in church”

6 “Microsoft ’s platform for building, deploying, operating and integrating XML Web services is.NET” Bill Gates Chairman and Chief Software Architect

7 At the heart of.NET All are W3C Open Standards XML (eXtensible Markup Language) Enables developers to describe data being exchanged between PCs, smart devices, applications and web sites. SOAP Enables applications to interoperate via standard internet protocols UDDI Documentation standard to describe services and connect automatically

8 Breaking apart.NET.NET Operating Systems.NET Enterprise Application Servers.NET Development Tools

9 .NET Operating Systems.NET Operating Systems.NET Enterprise Application Servers.NET Development Tools Next versions of Windows (ie. 2000, XP,…)

10 .Net Enterprise Servers.NET Operating Systems.NET Enterprise Application Servers.NET Development Tools Application Center Biztalk Server Content Management Server Exchange Server Host Integration Server IAS Server Mobil Information Server Sharepoint Server SQL Server

11 .Net Enterprise Application Servers Microsoft Application Center 2000 to deploy and manage highly available and scalable Web applications. Microsoft BizTalk Server 2002 to build XML-based business processes across applications and organizations. Microsoft Commerce Server 2002 for quickly building scalable e-commerce solutions. Microsoft Content Management Server 2001 to manage content for dynamic e-business Web sites. Microsoft Exchange Server 2000 to enable messaging and collaboration anytime, anywhere. Microsoft Host Integration Server 2000 for bridging to data and applications on mainframe legacy systems. Microsoft Internet Security and Acceleration Server 2000 for secure, fast Internet connectivity. Microsoft Mobile Information 2001 Server to enable application support by mobile devices like cell phones. Microsoft SharePoint™ Portal Server 2001 to find, share, and publish business information. Microsoft SQL Server™ 2000 to store, retrieve, and analyze structured XML data.

12 .NET Development Tools.NET Operating Systems.NET Enterprise Application Servers.NET Development Tools.NET Framework Visual Studio.NET >20 Supported Languages

13 .Net Developer Tools Built using the.NET Framework Runs the next generation of Active Server Pages A rich set of class libraries for building XML Web Services Visual Studio.NET Tool for building XML Web services and Applications Over 20 languages including J2EE, Visual Basic, C#, Perl, Python, Cobol, Eiffel,…

14 Example of Web Services/Class Library.NET Presence —This service contains the user's electronic presence information for where the user wants to receive their alerts. For example, users can set their "presence" to Online/Offline/Busy/Away, On-Phone/Off-Phone, and so on..NET Location —This service contains the user's physical presence information. Users could set their "Location" to "At Home" or "At Work" so that others would know where to get in touch with them..NET Services —Keeps track of the services that a user has signed up for..NET Notifications —Allows applications, Web sites, and XML Web services to send a "notification" about an important event to a person on any device, any time, anywhere. Users specify.NET Presence settings to make themselves available to these notifications, if they so choose..NET Calendar —Stores all of a user's calendar information in one place, so that work, family, and personal information can be accessed by the user from any device, at any time. The user can choose to share part or all of their calendar with others—for instance, a spouse might have full access, a boss access to work meeting information, and a ticket- purchasing site might just have access to the user's free/busy data so that it knows whether or not the user would be interested in purchasing tickets on certain dates and times..NET Contacts —Similar to the well-known "buddy list,".NET Contacts lets users store contact information from their personal and professional lives, and enables them to access that information whenever and wherever they like. They can also share this information. For example, if parents are going out of town, they might share their emergency contact (children's doctor information, grandparents' information, and so on) with the caretaker for the length of time that they will be away. Core.NET My Services

15 .NET Inbox —Gives users access to their e-mail from any device. This means that users can check e-mail from Microsoft Hotmail® or other e-mail services on any computer or device from which they sign in to.NET My Services..NET Documents —Provides users with secure storage for personal and professional documents and enables them to access those files from any computer or device..NET Wallet —Allows the user to store information used for purchasing items online. One advantage of this service is that it frees the user from the tiresome task of re-entering credit card and shipping information every time such data is required. By default, this information is only accessible to the end-user. If the end-user wants to make a purchase, he or she can identify a credit card, a ship-to address, and a bill-to address, and.NET My Services will send just that information to the e-commerce Web site, saving the end-user from having to enter that information manually..NET ApplicationSettings —Stores user information such as toolbars, icons, and screensavers, so that any device the user signs on to automatically adjusts itself to those settings..NET Profile —Allows the user to store personal information such as addresses, birthdays, and so on..NET FavoriteWebSites —Gives users access to their favorite links to Web sites from any of their devices, anywhere, and from any application or browser..NET Lists —This service will allow users to store any kind of list they want, for instance, grocery lists, wish lists, or to-do lists..NET Categories —This will be a standardized list of categories that are available across all the user services. Categories are used to group data documents together. The user could group contacts to form a buddy list or they could group calendar events to reflect a holiday. Core.NET My Services (cont)

16 Defining the Basics of.NET From Microsoft.com

17 Why XML web services Easily integrate with other businesses using XML web services Your desktop software will soon be accessible using SOAP Develop applications faster As the pool of web services grows, developers can deliver more software and services Easily implement personalization Integration with external data sources is part of XML web services programming model A new user experience Consumers and Business will benefit

18 Our Portal Development Overview

19 Colgate Portal Development Basics Target Audiences Feature SetsInfrastructure Define all of our possible internal and external audiences

20 Target Audiences Portal Site AlumniFacultyStudentsStaff Prospective Students ParentsOthers

21 Colgate Portal Development Basics Target Audiences Feature SetsInfrastructure List everything our target audiences wish to do Order it by version Order by priority

22 Colgate Portal Development Basics Target Audiences Feature SetsInfrastructure Gigabit Ethernet Full T3 to Internet Windows 2000 DNS DHCP Active Directory LDAP Exchange Mail IIS Servers SQL Servers Terminal Services Full Wireless Underway

23 Colgate’s.Net Environment SQL Server MS Exchange IIS (ASP.NET) with.NET Framework SCT Banner Directory Info Course Info Student Groups Etc… Trade Books Text Books Music GM Current Inventory CS Photos Photo ID’s Mail Contacts Email Addresses Calendars Etc… Mobile Information Server Banner Web For Campus Safety Bookstore (PRISM) Booksite.com.NET Servers PDA Mail Lightly summarized data Network File Storage BlackBoard Mail Room accuweather.com

24 Colgate’s Portal Server Environment SQL Server Student Portfolio Storage Portal Servers Load Balanced http://my.colgate.edu

25 Creating the Portal Content

26 Creating Our Portal Features Reusable XML Web Components Place in Portal and Edit/View Permissions Assigned Portal Module Definition ASP.NET Class Library

27 Portal Cell / Web User Control Portal Cell / Web User Control/ Channel/ Portlet/ module Portal Cell / Web User Control/ Channel/ Portlet/ module Portal Cell / Web User Control/ Channel/ Portlet/ module These are all sitting on a webform Portal Cell / Web User Control/ Channel/ Portlet/ module Portal Cell / Web User Control/ Channel/ Portlet/ module Portal Cell / Web User Control/ Channel/ Portlet/ module

28

29

30

31 ' NavigateUrl='<%# "ListStudents.aspx?term=" & DataBinder.Eval(Container.DataItem,"term") & "&crn=" & DataBinder.Eval(Container.DataItem,"CRN")%>' CssClass="Normal" runat="server" /> Sample Web User Control / HTML View

32 ' NavigateUrl='<%# "ListStudents.aspx?term=" & DataBinder.Eval(Container.DataItem,"term") & "&crn=" & DataBinder.Eval(Container.DataItem,"CRN")%>' CssClass="Normal" runat="server" /> Sample Web User Control

33 ' NavigateUrl='<%# "ListStudents.aspx?term=" & DataBinder.Eval(Container.DataItem,"term") & "&crn=" & DataBinder.Eval(Container.DataItem,"CRN")%>' CssClass="Normal" runat="server" /> Sample Web User Control

34 ' NavigateUrl='<%# "ListStudents.aspx?term=" & DataBinder.Eval(Container.DataItem,"term") & "&crn=" & DataBinder.Eval(Container.DataItem,"CRN")%>' CssClass="Normal" runat="server" /> Sample Web User Control

35 ' NavigateUrl='<%# "ListStudents.aspx?term=" & DataBinder.Eval(Container.DataItem,"term") & "&crn=" & DataBinder.Eval(Container.DataItem,"CRN")%>' CssClass="Normal" runat="server" /> Sample Web User Control

36 Programming Code Behind Web User Control/Display Level Programming Public MustInherit Class ListCourses Inherits ASPNetPortal.PortalModuleControl Protected WithEvents myCourseListDG As System.Web.UI.WebControls.DataGrid Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim myCourses As New ASPNetPortal.CoursesDB() myCourseListDG.DataSource = myCourses.GetCourses(Context.User.Identity.Name) myCourseListDG.DataBind() End Sub End Class

37 Class Code to Call Database/Class Module Public Class CoursesDB … Public Function GetCourses(ByVal ProfessorId As String) As DataSet ' Create Instance of Connection and Command Object Dim myConnection As New SqlConnection(ConfigurationSettings.AppSettings("connectionString")) Dim myCommand As New SqlDataAdapter("GetCourses", myConnection) ' Mark the Command as a SPROC myCommand.SelectCommand.CommandType = CommandType.StoredProcedure ' Add Parameters to SPROC Dim parameterProfessorId As New SqlParameter("@ProfessorId", SqlDbType.VarChar, 90) parameterProfessorId.Value = ProfessorId myCommand.SelectCommand.Parameters.Add(parameterProfessorId) ' Create and Fill the DataSet Dim myDataSet As New DataSet() myCommand.Fill(myDataSet) ' Return the DataSet Return myDataSet End Function ….. End Class

38 CREATE PROCEDURE GetCourses ( @ProfessorId varchar(90) ) AS SELECT * FROM Courses WHERE Instructor1_email_address =@Professorid OR Instructor2_email_address=@Professorid OR Instructor3_email_address=@Professorid OR ( Instructor1_email_address in ( select sirdpcl_email_address from sirdpcl inner join department on ( (dbo.department.deptabbrev1 = dbo.sirdpcl.sirdpcl_dept_code and dbo.department.deptabbrev is not null) or (dbo.department.deptabbrev2 = dbo.sirdpcl.sirdpcl_dept_code and dbo.department.deptabbrev2 is not null) or (dbo.department.deptabbrev3 = dbo.sirdpcl.sirdpcl_dept_code and dbo.department.deptabbrev3 is not null) ) WHERE secretary_email_address = @professorid ) and Instructor1_email_address <> 'No Colgate Mailbox') OR ( Instructor2_email_address in ( select sirdpcl_email_address from sirdpcl inner join department on ( (dbo.department.deptabbrev1 = dbo.sirdpcl.sirdpcl_dept_code and dbo.department.deptabbrev is not null) or (dbo.department.deptabbrev2 = dbo.sirdpcl.sirdpcl_dept_code and dbo.department.deptabbrev2 is not null) or (dbo.department.deptabbrev3 = dbo.sirdpcl.sirdpcl_dept_code and dbo.department.deptabbrev3 is not null) ) WHERE secretary_email_address = @professorid ) and Instructor2_email_address <> 'No Colgate Mailbox') OR ( Instructor3_email_address in ( select sirdpcl_email_address from sirdpcl inner join department on ( (dbo.department.deptabbrev1 = dbo.sirdpcl.sirdpcl_dept_code and dbo.department.deptabbrev is not null) or (dbo.department.deptabbrev2 = dbo.sirdpcl.sirdpcl_dept_code and dbo.department.deptabbrev2 is not null) or (dbo.department.deptabbrev3 = dbo.sirdpcl.sirdpcl_dept_code and dbo.department.deptabbrev3 is not null) ) WHERE secretary_email_address = @professorid ) and Instructor3_email_address <> 'No Colgate Mailbox') OR ( @professorid in ( select email from users inner join userroles on dbo.users.userid = dbo.userroles.userid inner join roles on dbo.userroles.roleid = dbo.roles.roleid WHERE RoleName = 'Registrars Office' ) ) ORDER BY TERM,TITLE GO CREATE PROCEDURE GetCourses ( @ProfessorId varchar(90) ) AS SELECT * FROM Courses WHERE Instructor1_email_address =@Professorid OR Instructor2_email_address=@Professorid OR Instructor3_email_address=@Professorid ……. Order by Term, Title SQL Call

39 XML/HTML View Display Level Programming Class Module SQL Statement Architecture module

40 Portal Framework Framework sample is found at http://www.ibuyspy.com by Vertigo Software – Microsoft Gold Partner http://www.ibuyspy.com Sample is FREE List Serves contain module updates http://www.aspalliance.com/ http://www.aspnetportal.com/ http://msdn.microsoft.com/net/ http://www.asp.net

41 Modifications of Sample Personalization (Personal Preferences) Tab level permissions (view, edit) Cell level permissions (view, edit) Multi Level Tabs Added Top & Bottom Panes Auto Feeds of Data from Internal Data Sources General College Module Definitions Ties to Internal Data Sources (Banner, Prism (Bookstore), Campus Safety, Mail Room, etc. Ties to External Data Sources (Accuweather, Booksite, Moreover.com, etc..) Reformat Portal Design Mulit-level Security Overhaul (Administrator, Author, Browse, Opt In, Auto fed Datasets Ties to Microsoft Infrastructure (Active Directory (LDAP), File Systems, Exchange, etc…)

42 Show Portal

43 Lessons Learned….. This is a process, not a project…. Making systems communicate is work (Political, Data clean-up, Meta-tables,…) Political buy in is key Nothing like one-on-one with users Users cannot conceptualize (products must be delivered then modified) Portal System gets complex quickly as features are added (especially tab, module and cell security) be careful who you give it too. Avoid Creeping Featuritis (keep V1,V2,etc separate) PDA’s Palm needs Pocket PC type Browser-the one I have redisplays the entire page How / What data is displayed Tricky to keep working outside of the wireless difficulties

44 What’s Next….. Tie public calendars into MS Exchange Calendaring Event Management (view only) More business related modules Complete personalization of style sheet Full personal/Group Authoring & administration of their content pages Full search capabilities Parents of students (tied into one card release) More non-university modules using standard formats for Channels Academic and administrative staff to determine Role Administrators Student Activities and Student Groups

45 “Our way of life has been influenced by the way technology has developed. In the future, it seems to me, we ought to try to reverse this and so develop our technology that it meets the needs of the sort of life we wish to lead.“ PRINCE PHILIP, Men, Machines and Sacred Cows, 1984. (S&S)

46 Related Resources Products: Microsoft.NET Enterprise Servers Microsoft Windows.NET Server Family Tech-Ed 2002: Microsoft extends XML Web services support across.NET Enterprise Server Family Tech-Ed 2002: Microsoft extends XML Web services support across.NET Enterprise Server Family For Developers: MSDN®.NET Development Center.NET road map for developers GotDotNet tutorials and code samples.NET infrastructure and services Introduction to Windows XP and Windows.NET Server Books about.NET from Barnes & Noble.com


Download ppt "Portal Development using Microsoft.NET Colgate University Michael Evans, Webmaster, MCP,MCP+I, MCSE,MCT Copyright © Michael B. Evans 2002. This work is."

Similar presentations


Ads by Google