Category Archives: Tech_Friday

Tech Friday: Bento database – First Look

Well, although I’ve managed to not worry about a database for several months, it finally happened and I need to keep track of my “opportunity matrix”, that is, a list of grants, their deadlines and status, the responsible contact person, partners, and whether I’ve created all the necessary collateral: prospectus, project summary, grant application, etc.

Typically this would be done in Access on a Windows machine, and I’ve got Access 2007 installed in my copy of Parallels so that I could run this up pretty quickly.

But, since I want to stay native on the Mac, I poked around at an old favorite, Filemaker Pro. One thing I’ve always thought about FMP is that is relatively expensive, even in an academic edition, especially if you want to share the data using a server. But FileMaker now offers a “home” version called Bento for about $50.00, and this looks promising for my app.

I’ve downloaded the 30 day trial, and installed without fuss. Installation consists of dragging the the file to the applications folder. I started playing with one of the templates, and after ten minutes or so, I’ve ended up with the following data entry screen:

Points of Interest:

  • Bento integrates with iCal, Mail and the Address book. You can eMail from a field which is designated an email field.
  • One to many relationships are supported. For example, you can have a task list for a project, with multiple tasks displayed for a single project. Some relations are already connected; for example the tasks list from iCal can be embedded into a Bento form
  • What one would consider to be a “database” in Access, or, loosely, a “group of tables” in another database program is called a “library” in Bento.
  • What might be called a “recordset” in Access, or a “cursor” in an SQL database is called a “collection” in Bento. Collections are much like playlists in iTunes, they are a subset of records from the entire library.

You can create your own drop down list, so I’ve attempted to capture the workflow in a “status” field which currently contains the following:

Seeking Partner: Since virtually all my projects are with others, this is the first step in any application project.

Developing Project

Application Submitted

Awaiting Feedback from Funder (may be redundant with the previous step)

Under Revision

Revised Submitted

Awarded

Rejected

I was curious about the name, but I think it refers to a Japanese bento box, which are the compartmented dishes for serving Japanese food.

Here’s a review of Bento in MacWorld. They point out a couple of limitations. For one thing, there is no way to export data in anything other than a comma delimited ASCII format. 

Another limitation is that the Bento data libraries are strictly single-user data files for a single machine. Anything larger needs to go into something like Filemaker. So, is is inadvisable to think that we could run a multi-user grant flow application using Bento. That’s OK. For $50.00 we can play with Bento for awhile and work out the data that we need to keep track of. We’ll be that much farther ahead when we’re looking to move up.

Ubuntu Linux rescues Windows XP Embedded

This being summer, we’re back on the Windows XP Embedded kick. After generating an image, the question was..how do we get this on to our target machine?

We wasted a lot of time on this one. As recommended in the docs, we installed “regular” Windows XP on the target machine to make sure that it would run Embedded. No problem there, it installed without problems from CD. We ran the Target Analyzer, to get our device.pmq. Copied device.pmq back to the development machine and generated the image.

At this point, we started fiddling with a second partition on the target machine. We created and formatted this using Acronis Disk Doctor, which comes on a bootable CD. Our plan was to install our target image on this partition, change the ARC listing in boot.ini to point to the second partition as the boot partition. We spent a day fooling with this, including changing the drive letters, hiding the partition, moving stuff around. Didn’t work.

Finally, we reformatted the hard drive on the target machine. Now you’d think that Microsoft would have something like a “LiveCD” for this purpose, which would boot a version of Windows enough to allow copying to an existing hard drive. It doesn’t, but Ubuntu, Suse, and Fedora Linux all have this, and Ubuntu had drivers that would read the USB drive where we stored the image, as well as the NTFS formatted hard drive.

A quick drag and drop, and we’re done!

Have they no shame? (Microsoft that is…) There is a Community Technology Preview out for a new version of Embedded…let’s hope this issue might be addressed with a couple of extra tools.

Tech Friday: Putting Vista Business on a Diet

Last week’s Tech Friday discussed how to remove several enhancements of the Vista interface using Vista business. Today, I’m at it again…and now have supplied the details. Links go to sites where I found a source of the information. This is all basic stuff, but it is hard to find it all at once; and I’m in a situation where I may need to install ten machines with Vista in the next couple of days.

• Turn off Welcome Center
Uncheck on Welcome Center, lower left-hand corner of window

• Turn off Sidebar
Right click Sidebar icon in the system tray and then select exit

• Turn off User Account Control
Control Panel | User Accounts | Turn User Account Control On or Off
(requires a restart)

Turn off Balloon Help (requires a registry tweak)

Click Start, Run and type Regedit.exe
Navigate to the following subkey:
HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Advanced
Create a new REG_DWORD (32 bit) value named EnableBalloonTips
Double-click EnableBalloonTips, and then assign a value data of 0
Exit the Registry Editor
Log off Windows, and then log back on.

Turn off Vista automatic searching
This requires stopping the Windows Search Service
1. Type “Services” in the start search box.
2. If User Account Control asks for permission, click Continue. (but turn it off, see above)
3. Locate an service named Windows Search. Right click on Windows Search, and then select Properties on contextual menu.
4. Click on Stop button to stop the indexing service immediately.
5. On the Startup Type dropdown box, select Disabled.
6. Click on OK button.

Set for automatic login – (eliminate the log-in screen)
1. Type netplwiz in the Windows Search box
2. You’ll see the user account window. Make sure your account is highlighted
3. Uncheck “User must enter name and password”
Upon a reboot, the machine will not ask for a name and password. Note, this only works if your machine is not part of a Windows domain or an active directory

• Set Window resolution to 800×600
We’ll use 800×600 because ultimately, we’re sending the output to a tv screen.

Turn off the enhanced graphics and Aero
Rightclick on the desktop and choose Personalize
Windows Color and Appearance| Color Scheme choose “Windows Vista Basic”

Turn off Windows firewall.
Click on the start “orb”
Select the Control Panel
Select Security
Select the Firewall | Turn Windwos Firewall on or off

Tech Friday: Installing Ubuntu on the Mac and the PC

I’ve been drinking a lot of coffee today, and I think it affects my ability to concentrate. So, one thing has been leading to another and another, and I’ve ended up installing the latest version of Ubuntu Linux on both my PC and my MacBook using virtual machine software.

Why Virtual Machines?

A virtual machine allows you to host multiple operating systems on a single physical computer. The classic reason for doing this is to run some form of Windows on the Macintosh OS because you just can’t live without some crucial Windows program. (Think Quickbooks, or OutLook, or in my case OneNote). The Virtual machine program is a thin layer of software which sites between the original OS (on the Mac this is OSX), and one or more “guest” operating systems, (in my case Windows Vista). There are a couple to choose from. The people at our university recommended Parallels. Installing Vista and Parallels went pretty smoothly. So, as I hadn’t seen a Linux desktop for while, I thought I’d try installing the latest and greatest Ubuntu.

Why Ubuntu?

Ubuntu appears to the current favorite for a “desktop” Linux. It is available on some Dell machines. It comes with a large number of applications, and an attractive desktop. There are several versions available for specific purposes. It is well supported.

I started with this step-by-step tutorial, which is available for a couple different combinations of Parallels and Ubuntu.

While waiting for this to install, I fiddled with Microsoft Virtual PC on my Windows box and found that I was using an older version 2004. I downloaded and installed version 2007. Looks just like 2004, but includes support for Vista as reported at Linux.com. After a couple of false starts dealing with the mouse, I was able to get Ubuntu installed.

Once installed there are several additional tweaks that need to happen which required editing the boot loader parameters and some config files to get the mouse working. Then a similar process is required for sound drivers, and network drivers.

Rather than go through all that, I downloaded VirtualBox and installed it on my workstation. Then I reinstalled Ubuntu. Mouse worked immediately. Networking came right up. The sound card worked as soon as I changed the default VirtualBox configuration to include the sound card. So far, Ubuntu works fine, and is surprisingly fast, and VirtualBox appears to be superior to Microsoft Virtual PC, at least when installing non-Microsoft operating systems.
Meanwhile, back on the Mac, its been more of a struggle. Here a couple issues and solutions:
  1. When choosing which version to install, choose the “alternate” form of the Ubuntu installer. (There is a checkbox for this on the download screen.) This is a text-based installer. Otherwise, it will just hang as you start to do the install, and you’ll get a funny message saying somthing like “Tried 6 times to start the X-Server and something is seriously messed up”.
  2. When you download the .iso file from the mirror, it will appear on the desktop as a disk. However, this is actually, just a pointer to the file ubuntu-7.10-alternate-i386.iso which is located in your download directory. This caused a lot of confusion, because when you attempt to assign an “image” for the installation process through Parallels, you have to point to the actual file with the .iso extension. (If in doubt…just burn it to a physical CD for heaven’s sake; I should have done this and saved myself an hour of futzing. To be honest, my problems with the disk and the .iso are due to unfamiliarity with OSX on the Mac, not the fault of Parallels or Ubuntu.)
  3. When installing, you’ll be given the opportunity to select the screen resolutions that you want to install. The excellently named Muffin Research discussion page suggests selecting two resolutions: 1440×900 for using full screen, and 1280×800 for use when you have Ubuntu running in a window. Once you have installed, if there is still a problem, you can run the following command to start the selection process again:

    sudo dpkg-reconfigure -phigh xserver-xorg

  4. Parallels gives you the opportunity to set up networking to use the existing Mac network addressing, (shared), or the not-so-well-named (bridge). The bridge will treat the Ubuntu VM as a separate machine, so it will get an IP address separate from the Mac. There is an icon in the “system tray”, located in the upper right hand of the Ubuntu desktop window, that shows if you are connected. If not, just click once on the icon and select “Wired Nework”, if that is how you’re connected.

More from LifeHacker on running Parallels on the Mac.

Tech Friday: Troubleshooting Windows Firewall

Tech Friday is the day when we get bogged down in technicalities.

Dynamic DNS Redux

Today I’ve been doing some further research on Dynamic DNS, and indeed I found out that Wednesday, I was actually playing with the Unix/Linux version of the the DynDNS updater. They have a more conventional Windows client available with a nice graphic interface. It still does the same thing as the earlier one does, and it can install as a Windows service.

Firewall Issues

The Windows XP SP2 firewall can be managed locally on the XP Workstation through the Control Panel applet, via the local Group Policy, or via a domain group policy. When running into problems with the firewall, often the first problem is to figure out just where the settings are coming from. Microsoft has provided a handy guide on troubleshooting the Windows firewall, using familiar tools like netstat and netsh. For example, the following command will display the firewall status, and show where the settings are coming from. Note the returned results in my case show that the workstation is controlled from the Domain under the Group Policy.

C:\netsh firewall show state

Firewall status:
-------------------------------------------------------------------
Profile = Domain
Operational mode = Enable
Exception mode = Enable
Multicast/broadcast response mode = Enable
Notification mode = Enable
Group policy version = Windows Firewall
Remote admin mode = Disable

Ports currently open on all network interfaces:
Port Protocol Version Program
-------------------------------------------------------------------
1052 UDP IPv4 C:\WINDOWS\system32\spoolsv.exe
26675 TCP IPv4 (null)
67 UDP IPv4 (null)
135 TCP IPv4 C:\WINDOWS\system32\inetsrv\inetinfo.exe
137 UDP IPv4 (null)
139 TCP IPv4 (null)
138 UDP IPv4 (null)
3389 TCP IPv4 (null)
38293 UDP IPv4 (null)
443 TCP IPv4 C:\WINDOWS\system32\inetsrv\inetinfo.exe
443 UDP IPv4 (null)
445 TCP IPv4 (null)
37674 UDP IPv4 (null)
37675 UDP IPv4 (null)
37674 TCP IPv4 (null)
2869 TCP IPv4 (null)
1900 UDP IPv4 C:\WINDOWS\system32\svchost.exe
2967 UDP IPv4 (null)
990 TCP IPv4 F:\Program Files\Microsoft ActiveSync\rapimgr.exe

Additional ports open on Local Area Connection:
Port Protocol Version
-------------------------------------------------------------------
427 UDP Any

C:\

The Microsoft network troubleshooting white paper describes several additional troubleshooting tactics and is recommended.

For a cookbook approach to the Windows command line, check out the Administrator’s Pocket Consultant series title Microsoft Windows Command-Line by William R. Stanek.

Tiny Computers from Logic Supply

I’m testing a tiny computer from Logic Supply It has the following specs:

Intel Celeron M440 (Yonah) with a Front-side bus of 533Mhz
1 gig of memory
A 2.5″ Hitachi hard disk 5400 rpm
Panasonic DVD/CD reader
No OS
Build and test for additional $45.00

The case is about 7″ x 7″ and maybe 1.5 inches tall.

Total price is $661 before tax.

They gave me an awesome tour of the assembly plant. Dozens of these little guys being assembled, tested and burned in.

The one caveat that I would bear in mind is that the ones without fans can run hot…really hot, like hard to hold your hand on to them hot. This was the case at least when they were running the test program which exercises the processor.

I ordered mine with a fan; and the noise is acceptable, just a low swoosh (so far).

It came without an OS, so I’m installing Vista just for grins.

So far the buying experience has been terrific. They are really helpful on the phone. They specialize in small machines using mini-ITX motherboards using either Intel, AMD or Via systems. This unit is a candidate platform for our embedded application, and a successor to our beloved Pundit pizza-box sized system.

Tech Friday: Amazon’s Web Services – Database

Every so often somebody makes a prediction which at the time seems plausible, but maybe somewhat out in front of things. They always with start with the word “Someday…” For example:

  • Someday, you will be able to go to a machine and withdraw money from your checking account.
  • Someday, there will be a little box that knows where it is at all times.
  • Someday we’ll all buy our computing power just like we buy electricity.

So it was interesting to see an announcement by Amazon yesterday about the Amazon SimpleDB database, a sort of do-it-yourself pennies per hour Oracle database. Well, maybe not Oracle, but a substantial database back end that can be used to host a major application. Actually, the SimpleDB appears to be primarily a querying component; for hosting a large dataset, Amazon offers S3, the Simple Storage Service.

Just a quick browse around shows support for C# and Ruby-on-Rails, among other development languages. In addition, Red Hat is offering Red Hat Enterprise servers as part of the Amazon offering. Their FAQ about “cloud computing” is located here.

This is something to keep an eye on, perhaps the next logical step after virtualization of existing servers in your machine room. Why have any servers at all? Why have a machine room?

Windows 2008 Server: Joining my existing domain

Or not. I attempted to join my existing domain with this server being a member server, and received a message:

An attempt to resolve the DNS name of a DC in the domain being joined has failed. Please verify that this client is configured to reach a DNS server that can resolve DNS names in the target domain.

OK…I actually know how to fix this, I think… when configuring IP addresses, I didn’t put the local address of my domain controller in as one of the DNS possibilities. Once this change was made…it worked.

So far so good. Now I’m trying to promote the Win 2008 server to a domain controller; it will be interesting to see if this works with Small Business Server as the master domain controller; I recall that one of the restrictions of SBS was that it could be the only DC.

So I can run this remote desktop. I change the permissions to allow logging in under Remote Desktop. Now I can watch this run from my main workstation, with full video support, and avoid the maddening mess on the native monitor screen.

Before actually running the upgrade wizard, there is a utility called adprep which is provided win Win2008. This version is run on the master DC (ie the SBS 2003) to upgrade the AD database to match the level of the Win2008 database. A message suggests that this upgrade takes the existing AD level 30 to AD level 40.
So, I copy the entire adprep folder from the Win2008 machine to the SBS2003 machine, then on SBS2003, I run the following commands:

adprep /forestprep

adprep /domainprep

Then in response to a message from the result of the domain prep, I run the following to update permissions on the group objects:
adprep /domainprep /gpprep

There is a nice help screen which explains this process.

Now, in on the new machine, running the AD Domain Services Installation Wizard, I will “Add a domain controller to an existing domain.”

Now I get an error: “You will not be able to install a read-only DC in this domain because adprep /rodcprep was not yet run. Do you want to continue?” Since I don’t want a RO DC here, that is fine, and I just continue.

It asks to select a site:
Defualt-First-Site-Name

It now asks if I want to install additional services; a DNS server, and a Global catalog. This dialog includes some additional stuff about a Read-Only domain controller, that is irrelevant because I don’t want to install a Read Only domain controller.

So, while I would prefer not to install the DNS server and Global catalog, since eventually I want to promote the Win2008 machine to the master domain controller, I’ll allow these two items to be installed. I hit the “next” button.

Now an error message comes up:

A delegation for this DNS Server will not be created because the authoritative parent zone cannot be found or it does not support dynamic updates. To ensure this DNS Server can be resolved as authoritative for the domain mxdesign.local, you can create a delegation to this DNS Server manually in the parent zone. Do you want to continue?

Well, OK…let’s continue.

Now it asks for locations for the database, log files and SYSVOL, suggesting that these should be on separate volumes. Ain’t gonna happen. Next.

The Directory Services Restore Mode Administrator account is different from the domain Administrator account. Assign a password for the Administrator account that will be used when this domain controller is started in Directory Services Restore Mode.

I give it my normal admin password. There is this talk about the password being the correct complexity and length, and conforming to the correct history.

So far so good, the DNS install goes ahead and completes in about two minutes. This requires a reboot, so I’m psyched to see how this will work when it comes back up.

Windows Server 2008

I’ve installed a beta of Windows Server 2008 on a new partition that I carved out on my secondary workstation. Installation went fairly smoothly, but both my sound card and the onboard Intel graphics chipset are not supported, so I’m stuck with the generic VGA driver which, frankly, looks like hell. Still, since most server management will take place remotely, this shouldn’t be a show stopper.

The install creates a dual-boot menu at startup, which allows me to choose betweein Win 2008 or a “legacy windows system”…that is, my existing Windows XP workstation.

The beta is good until April 2008. After about 20 minutes, everything is copied to the hard drive, and you can start playing.

A major advantage of 2008 is that the wizards previously available on small business server have been added to 2008 to provide “accidental network managers” some additional support.

I quickly changed the default IP address obtained from the DHCP server on my router to a fixed IP4 address. I also nailed down the admin password.

Right out of the box the server doesn’t do a thing; you have to assign “roles” from the extensive list provided:

  • Active Directory (several items)
  • Application Server
  • DHCP server
  • DNS server (and is this required for AD as in previous versions?)
  • Fax server (the application that apparently will never die)
  • File Services (our first role)
  • Network Policy and Access services (functionality provided by the previous add-on application, including VPN services and fewalling)
  • Print Services (shared printers)
  • Terminal Services
  • IIS
  • SharePoint
  • Windows Deployement Services

Picking one of the roles above then allows you to pick additional functionality related to the main role.

Roles that require other roles as a prerequisite will automatically let you know.For example you can’t install Sharepoint without installing IIS and the Net Framework 3.0. Makes sense, of course.

For starters, I’ve installed print services and file services. Once the installation is complete, I received a message saying I had to restart the server.

Tech Friday: Notes & Visual Studio 2008

 

Bob and Chris MSDN Road Show

Spent yesterday, Thursday at the Bob and Chris MSDN Roadshow. They had introductions for Visual Studio 2008 and Microsoft’s suite of “Adobe Killers”…. the expression series. Imagine a day-long master class, or set of high-level lectures, (for free!) and you’ll have an idea of what these days are like. Because of the amount of time available, it is possible to talk about issues in more depth than during most of the half-day TechNet/MSDN days. Recommended. They provided pizza and soft drinks for lunch. At 4:00 we went directly into this month’s meeting for the .NET Developer’s Group, and they provided us with Visual Studio Professional 2008 installation CDs. Everyone who came close to completing an installation was included in a drawing for a Zune. The really good news is that they provided install IDs which we can use for obtaining a full copy of VS2008 professional. My rough notes follow:

08 AP/Honors Accelerated Class
cbowen@microsoft.com http://blogs.msdn.com/cbowen

Multi-Targeting: found under new project and new web site
Choose the version of the framework enable and disable features of the IDE.
WCF – for example does not appear when you choose a framework <3.0
Need to maintain two versions of the solution file if you are using 2008 and 2005.
Rick Strahl does a nice walk-through of the project and solution files.
New controls in Ajax 3.5
You may have to go to the AJAX CodePlex to get the latest controls.
Anything that is in a referenced assembly, it gives you the oportunity to add the call the “using system” call at the top
Expression Web design sufaces shared with VS2008
Ajax is native
Javascript is really well integrated
Sliverlight focused on javascript

Idea of master pages with content in particular rectangles within a page
IDE now supports the idea of “nested” master pages.

Has a “design view” which shows the image
Has a split view with code and design view like Dreamweaver.
There is a very nice GRID view which allows you to align
Turn on formatting marks (like tags and formatting, kind of like a paragraph mark within Word)
A lot easier to work with CSS in 2008. There is a CSS properties view that show the hierarchy of the CSS values.
Manage Styles View – a higher level way of managing CSS styles and there is a really neat “CSS preview” (like in Word 2007) which shows what something would look like if you apply the CSS style.
There is a kind of “refactoring” thing which will move the CSS reference from an inline to a CSS style sheet page.

Formatting and Validation – two new features (not in the Orcas betas)
You can treat validations as warnings instead of errors. (which would normally stop the app from running if they are errors). Validate html, xml, accessibility, different browsers/versions etc.

Ajax minimizes the full page refresh. Only a small part of the form updates. This is a feature of Ajax. Stock Ticker, Scoreboards, etc.

Ajax master page, Ajax web form, etc. The only difference in these project pages is that the Ajax library code is already includes the Ajax Script Manager. The S.M. control is key for Ajax.

Javascript Suport
Intellisense support for Javascript
for example, type document. and a full list of properties called up.
Drag and Drop script referencing . Just drag a snippet into the editor and the editor will create the references to the library. This is similar to C# and VB.

Javascript is loosly typed. The IDE will tell you if you change a type definition in the code. Changes are automatically detected in the IDE. So the loose typing is supported…

Debugging Javascript
You can set breakpoints.
VB uses IE script debugger. Tools| Options| Advanced — enable script debugging. so that VB can talk to IE. So when a script goes bad it pops right back into VB.

Stepping.

“Visualizer” allows you to see full code when expanding a tool-tip.
“Dataset visualizer” shows a grid of the current record set, for example.

Web Deployment Projects – separate download.

Windows Forms- user settings on the web
“Click Once” will now work with FireFox.

WWPF /Windows Forms InterOp
Add WPF to existing Windows Forms (“Crossbow”) allows you to WPF with WinForms and vice-versa.
There are controls for InterOp.
WPF: WindowsFormsHost
WinForms: ElementHost

Client Application Services
Share user authentication and authorization between Client and Web applications
Store user settings on the web
Handles web services communication

WCF Services
Secure, reliable, transacted and interoperable distributed applications
“Contracts”

Tools for Office
Visual designers for Ribbon, Task and Action Pane
Workflow and SharePoint Support
Application-level add-ins for most client programs
Document level add-ins for Excel and Word 2007
Projects for OutLook Add-in, PowerPoint Addin, In OutLook, it automatically docks a form at the bottom of a particular eMail.
This is now integrated directly into 2008.

Team System
AJAX support
Data-driven
Easy to use wizard
Bind XML and CSV files
Deployment assistance

Load Testing – Take any non-manual test and beat on it.
Unit Testing – Available in Pro!
You can right-click on a class, and there is an option to “unit test”. Automatically creates the framework for a unit test for the class. An example of a data-driven test would be run this

Mobile Development
Smart Devices
Device Emulation

Resources
http://www.msdn.com/vstudio
White Paper: 14 page overview (non-technical) of the feature sets

================================
Bob:

Software + Services
Example:
XBox Live – device, has a community aspect, allows for multi-user gaming, there is a web component, combination of device+data center services. The New York Times has a WPF client for reading the Times offline.

What is Software + Services
Software deployed as a hosted service accessible over the internet + a mobile device

Multi-tenant data architecture (single instance)
Similar to a conventional three-tier database client/server
Metadata Services are the unique addition…..allows: configurability, authentication, branding (logo), unique fields/reports, etc. Custom Business Rules

Authentication:
Centralized: ASP.NET membership, profile storage, groups of users with roles and authorization.
Decentralized: Federated approach/allow the customer to manage their own authentication via the customer’s Active Directory

Separate Databases

Shared Database /Separate Schemas (each tenant has their own tables within a single database)
Restoring a single tenant is a problem. – additional maintenance costs

Shared Database/ Shared Schemas
Tenant ID/UserID/RoleID

Regularity Issues: SOX requirements

Implmenting the Configurabilty
Extension Table
Fixed Columns
XML Columns

Extension Table
Example: Employee table offered with base set of fields. Extra fields are added by the customer.
Create a View for Each Tenant . Table Employee, Table Employee_Extension.

White Papers
Published on the road show
All code is available LitWare HR CodePlex

Multi-Headed Client:
Browser
WinForms
Offline with Synchronization
Mobile

Example: Salesforce.com

======================================
Bob
Silverlight 2.0
Scott Gutherie’s blog
bob.familiar@microsoft.com
http://blogs.msdn.com/bobfamiliar

Takes a subset of Windows Presentation Foundation
Vector Graphics, Animation, Streaming Video, Vector fonts

Silverlight is cross platform

Version 2.0 will include a subset of the .NET framework

Tools for developing in Silverlight include Expression Blend, and VS.
Remix07Boston.com

SkyDrive = 500 megs of storage in the cloud. Currently In beta available for those with an Windows Live ID. Try this out!

======================================
Chris Bowen
LinQ

Allow data expressions and SQL queries within VB and C#… LinQ is an evolution of ADO
How have the languages been enhanced to incorporate this stuff

Type inferencing
Compiler infers the correct type from variables which are initialized in-line.
Only works for local variables, not parameters or return variables

Class and Collection Initializers
Shorter Form of Object Creation Syntax
Anonymous Types
You can create an object which is not typed. Compiler creates the type anonymous
Frequently used by Linq
Extension Methods
Extend existing type without having to subclass it
Add Methods without Derivation
Accesses Public Members of Extended Types
Must be:
public and status
housed within a static class
Use this keyword before parameter of extended type
Lambda Expressions
Inject code into something else. Formerly delegates, or C# anonymous methods
Reduces code needed to write
Based on anonymous methods
Might be used to translate syntax.
Predicate “(p) => p.Gender == “F”
“All persons p, such that person’s Gender is F”
Projection
Query Expressions
Embedded SQL within native VB and C# syntax.

Question LK — What is Reflection, or reflector?

5 types of LinQ

LINQ to Objects (in memory)
LINQ to DataSets, SQL, or Entities. (Julie is one of the experts on Entites).
LINQ to XML

Deferred query evaluation, – means that the query is really executed during foreach

Deferred Query Execution – is huge…because the query itself isn’t actually run until the foreach

SEveral extension methods are really helpful working with data including:
intersection
in A but not in B
Except B
Union

100 useful examples in LINQ

LINQ to SQL
ORM Designer
Maps Relational Structures to Classes

Listview is a new control in 3.5

Use the ENTITY FRAMEWORK as a way to create an abstract mapping between the relational data and object-based applications. This is better than LinktoSQL because it will allow you to mess with the back-end database .

Scott Guthrie’s Blog

Bob
=====================
Microsoft Expression Studio
New product line from Microsoft
Set of tools used primarily by web designers
Import and Export capabilities for Adobe products
The goal is to help the designer be a first-class citizen with Microsoft development prodcuts.
5 products
Media, Encoder, Web, Design, Blend

Media
Manage all graphic assets
How does this integrate with source-code control?
Searching for metadata
Makes a lot of sense when you have a lot of assets
Creates a metadata dictionary with pointers to the actual data
Create web galleries, slide shows, videos, etc.
Looks a lot like Outlook…allows the classification of objects. Allows you to give the items ratings. You can add custom people to a file or custom fields
Includes a thumbnail viewer (videos play as well)
“Light table”
You can share the catalogs with Mac users (how? requires a download for the Mac)

Encoder
Encode Video for use with Silverlight
VC1 codec
Sony Vegas Pro or Finalcut for editing although you can
Add a leader, add a trailer
Scrub the beginning or end.
Import .AVI, QuickTime, MPEG, WMV
Will encode in real-time for streaming for live video broadcast
HiDef 720p
You can do an AB compare = see the original video and compare it with the compressed version
There is a batch mode, or batch job definition. encode a bunch of things in a folder.

Markers can be set within a video. Example: Guy riding around London, markers trigger a javascript call to virtual earth to show the guy’s position on a map. They can also generate thumbnails to go to the beginning of each stream.

You can generate a WMV file, or to full Silvelight application with templates. classic, glassy, expression,

Web
=Dreamweaver
Follow on to FrontPage? Yuck
Fully integrated with ASP.NET
Same/similar Visual Studio IDE
For the person who wants to spin up an html site without a lot of work… there are templates included.
Master Pages – parts that are editable and parts that are not.
Understands data bindinding and ASP.NET controls

LK Question: what is a div?

Good for creating style sheets
Targeted at the designer/end-user

Design
= Ilustrator ?
Can it do color separations?

Blend (December CTP)
= Flash? no actually, that is Silverlight.

When should I use WPF instead of WinForms – when you need to differentiate your user interface, think about using WPF, or when you are using Windows Media or Documents.

http://www.microsoft.com/expression
Training http://www.totaltraining.com for self-paced training
also training for expression defalt.apsx
Wintelect or Pluralsite

Silverlight
VS 2008
Silverlight Tools for VS2008
Blend CTP (December)

======== end of notes =========
Swag was available too….pens, squishy balls, tee-shirts, and a Silverlight book. They came in with two giant screens and put up four-player versions of Halo-3 for the breaks. They also provided sandwiches while we did our installations of VS2008. If you are able to get to one of the cities they are visiting, be sure to check out the Roadshow.