Man what a beautiful day. Sitting outside in the shade after 4 hours of great .net stuff. Here are my notes from the day so far

scottgu@microsoft.com
http://www.scottgu.com

What I am interested in most:
Roles
Localization
Master pages
SQL cache invalidation

Master pages, themes/skins, localization, client scripting??
· I think that themes/skins is used by community server?

System.web.security.Membership namespace… allows the sort of users management system.

System.web.security.??rolemanager allows different levels and roles

Profile object. Is kept in server memory.

Ideas I like:
Html reformatting is gone
Local webserver (students could run website off their thumb drive)
No need to recompile when code behind changes
You can change the code while attached to debugger (but not while actively debugging)
When debugging and a runtime error occurs you get much better helper popup
Web config isnt loaded by default that is to say that the folder in which the project is contained starts out as empty.
You can choose to start from any page, not a start page.
Runs on a local webserver which can be started NOT as admin.

The express edition should support most of this (when released) this would allow the student to work from home on the same project loaded from the thumb drive. This would be much like VB.

Master pages:
Master directive is the only real difference
Add controls etc that each page will have.
Add a content holder. This is where the page that you create later will place everything.
The content control will show there in the content control.

Navigation:
Stored in a database or XML.
Add sitemap file to site.
Standard xml look. You can nest etc.
Add a tree view and bind it to your sitemap.

Roles (security):
Still uses forms authentication
Still uses login page.
If system.web.security.membership.validateuser (this is different) then redirectfromloginpage or setauthcookie
There is now a login control.
Loginstatus control (check out the login section in the tools tab)
First time the membership is used it creates the db etc.
App_data directory has the mdf file(sql server file format).
Createuserwizard control is awesome as well within the same tab.
There is also a password complexity configuration so that you can say 6 characters one alpha numeric.

More Roles:
Loaded the security tool
Add friends within the security tab
Add a role of friends and add users
Rolesgroups is a group you can add/remove UI items and control access to pages.
You can also add meta tags to functions and classes so that you cant call a function if you arent in a role!

Webpartzones:
These are new asp: controls and you can kinda move these around like user controls.
Can I move these around?
Add a customize link button, webpartmanager.displaymode = catalogdisplaymode
This gives you the ability to move the items around.
This will save under your membership. So you must be logged in to do this?

Stephen Sachow
More Roles:
Loaded the security tool
Add friends within the security tab
Add a role of friends and add users
Rolesgroups is a group you can add/remove UI items and control access to pages.
You can also add meta tags to functions and classes so that you cant call a function if you arent in a role!

Webpartzones:
These are new asp: controls and you can kinda move these around like user controls.
Can I move these around?
Add a customize link button, webpartmanager.displaymode = catalogdisplaymode
This gives you the ability to move the items around.
This will save under your membership. So you must be logged in to do this?

Forms authentication was augmented with
Membership and role manager
Membership is about authentication
Role Manager is about authorization

RolePrincipal class represents logged in user
Role Manager can be used independent of Membership

Httpcontext has User that has Roles the API just checks this for you

System.web.Security.membership

Membership user is the main class
It contains the email, username, lastlogin date ec.

You get this from membership.createuser

Membershipuser.isapproved = false
Creates the user but they are not approved or able to login.

Configuration allows you to change the password strength.

Profile Vs. Personalization
Profile is used for global data about a user.
Web parts personalization is used for a user on a control.
Profile would be used for an address or something like that.
WPP would be used to save the last 3 searches that a user performed on a search page.
You define the profile in a config file. YOU define what properties go into the profile.
You can define complex data types as well as scalar. You can not define the datatype and it is defaulted to text.
You can type a property to something like system.drawing.color etc. Not just integer or string.
You can have groups. Like my favorite colors. You cannot nest groups.
If you allowanonymous the profile options defined this way are available to annonymous users.
.getprofile allows you to get the profile for any user.

Webparts personalization:
You don’t have to write a webpart to take advantage of webpart personalization
A web part is that thing we can drag around and move.
Web parts center around a [personalizable()] attribute on each property.
A textbox doesn’t really interact with the webpart. You create the set and get for the properties on the TB you want to change.
Add a web part manager to the consuming page. It is invisible.
Add a web part zone to the consuming page. It is like a panel of sorts
Then drop the usercontrol into the zone. The webpart will then go look at the zone.
Remove the chrome.

So this doesn’t actually allow us to move the part around. It just keeps track of the properties of the controls within the web part. It can make the defaults in the user control maintain throughout days and weeks for that user.