This conference has 85 pictures. We display 12 randomly selected pictures here. You may click here to view the album thumbnails.
A new part of the extensibility story is reflected within the new Visual Studio 2008 Shell. The free VS Shell runtime can be installed independently without having any version of Visual Studio 2008. This isolated mode will use an msi to install any utility within minutes. It provides the flexibility to deploy applications based on the Visual Studio IDE shell royalty free, for tools and applications that are free or for sale, opening up a new market for applications on the VS platform. The VS Shell runtime may be used to target applications on any platform and may also target non-developers as well by using the DSL (Domain-Specific Language) modeling design tools included in the VS SDK..
As the SDK drives the VS ecosystem the VS extensions will continue to
grow. The Visual Studio 2008 SDK will always be enhanced, as other people will continuously extend it.
Stephen proclaimed himself to be a .COM survivor and recently sold his former company Corzan.
Design patterns on the most basic level provide common solutions to common problems in software design. They are proven techniques whose origins date back to the urban planning of the 1950's. They're design templates that are never invented but discovered.
Design patterns are widely considered to be based upon the foundation of the
"Gang of Four". Referring to the four authors of the now famous text : Design Patterns: Elements of Reusable Object-Oriented Software.
These patterns speed up the design process by mitigating the risks when doing something new and unfamiliar. This creates a predictability factor between projects
Design patterns can be applied to databases since its logic applies just as it would with software. It must be stressed that a developer should not underrate architectural database design. Database design patterns can thus be generalized into two categories:
OLTP is basically any data model which saves data. A regular OLTP will have a regular design if there are no transactions. They are comprised of standard database normalization forms.
SCD's are anything that may consist of OLTP data and then have it pushed in to something else such as another database, for reporting or a web view. Since this the data is published, it is highly indexed. A common mistake developers make with utilizing the slowly changing design pattern is to attempt to merge everything into one system.
The industry has discovered it's a better practice to segregate databases by having one that is strictly read only. Amazon.com uses OLTP for all of its ordering transactions and SCD for its product catalogue.
Vertical Partitioning is a lot of stuff one desires to store in a table but with not all information required. In other words it contains the same amount of rows but with fewer columns. Horizontal partitioning can only be achieved if the partition is moved to another disk.
Utilizing the best design patterns, which are tried and tested greatly aid developers to find optimal solutions. As they continue to be discovered developers who adhere to them will only continue to reap the benefits.
Wednesday, November 28
Ajaxing your Applications
Rod Paddack
by Ruby Parmar
Rod Paddack is an active local user group speaker along with being president of Dashpoint software. Following his introduction of himself, he explained to the audience some reasons a developer should consider using ASP.NET Ajax.
Asynchronous Java and XML (Ajax) is a way to develop web pages that behave more like native clients. The intent behind Ajax is to enhance web pages usability, interactivity and functionality. Ajax is also browser independent and may be used on many different operating system.
In the past when refreshing a page to update information the entire page would have to reload. Using Ajax, partial parts of a page can be updated without having to go through a complete page refresh. Every time a change is made to a web page data is exchanged with the server, which to the user seems very responsive. The update panel control is central to create the Ajax interactivity. This update panel can be wrapped around any part of the webpage you would like refreshed, avoiding a total page refresh and postback.
It is simple to create an Ajax enabled page in ASP.NET. After opening a new Ajax enabled application you must create a page with the script manager and update panel controls, both of which can be dragged onto your page in design view. It is recommended that master pages be used so the script manager will not have to be added to every page. Once the page is setup autopostback must be set equal to true.
Rod showed the group an excellent example of how Ajax works in the most basic sense. He created a web page with a timer which increments every second. The timer without Ajax functionality was refreshing the entire page every second in order to increment the timer. When the clock was wrapped in an update panel the timer appeared to be incrementing without the entire page reloading every second, avoiding the page flicker.
Microsoft has developed ASP.NET Ajax which is comprised of client-script libraries and gui tools to harness this technique under the .NET 2.0 platform. In order to utilize ASP.NET Ajax you need: Visual Studio 2005, ASP.NET AJAX Toolkit and ASP.NET AJAX Control Toolkit. The tool kits are available at http://ajax.asp.net . The installer then should be run in the toolkit.
The Ajax control toolkit is a framework to build Ajax enabled controls. By default it is bundled with over twenty controls with their full source code. A sample webpage with the implementation of controls is included.
Ajax will increase interactivity within applications. The user experience will be enhanced as web pages will fell more responsive. Ajax increases applications usability, interactivity and functionality.
Introduction to Entity Framework
Julia Lerman
by Perry Grewal
Julia Lerman has been active in development for over 20 years. She is a member of Microsoft`s data programmability team and originates from Vermont. Julia opened the session by explaining that the ADO.NET Entity Framework is going to become the core of Microsoft`s own data platform.
The Entity framework is a new way of working with data access. It does not however, replace ADO.Net altogether but rather is a new part of it. Predominately this framework is geared towards enterprise development. At the moment, Microsoft has written a data provider for the Entity Framework but other database venders are currently in the process of writing their own.
ADO.NET has not been revolutionized within .NET 3.5, rather it has evolved so a developer doesn't have to relearn what they already know. This evolution is comprised of 3 major things which are illustrated in figure 2.
The ADO.NET Entity Framework includes a client side query engine whose input is written is in Entity SQL. This query language similar to the traditional T-SQL but is specialized because it is aware of the entity framework and is independent of any data store.
Currently when asked to build a database we must have an intimate understanding of the database and write a lot of data access code. Which means a developer will be dealing with a lot of languages to handle the new features in ADO.NET. The Entity framework inserts a conceptual layer in between the logic layer and object layer. A schema one can code against that makes sense to us.
- LOGICAL LAYER : The database, rows/columns
- CONCEPTUAL LAYER: Entities
- OBJECT LAYER
- PRESENTATION LAYER: forms, reports
Julie demonstrated the Entity Data Framework when she opened up Visual Studio 2008 and added an item by selecting
"ADO.NET Entity Data Model". She was prompted to choose to generate from an existing database or an empty model. It was recommended to choose an existing one. Everything found from the database by the wizard is treated as an entity although views are read only entities. An important note which came out of the demonstration is that foreign keys are not gone but are just deeper inside the model.
The Entity Framework can utilize 3 ways of querying:
- LINQ to Entities
- Object Services + Entity SQL
- Entity Client + Entity SQL
One should first try querying with LINQ to Entities and move on to Object Services + Entity Sql. For special cases Entity Client + Entity SQL can be used because one can utilize provider specific functions.
As the evolution of ADO.NET continues, code can be written against a conceptual data model under the Entity Framework. This provides views that are unavailable in data stores that would otherwise most likely conflict with a DBA's goals.
Thursday, November 29
Open Source on the Microsoft Platform
Shaun Walker
by Perry Grewal
Shaun introduced himself as the creator, chief architect and CEO of DotNetNuke. DotNetNuke is an open source web application framework for the .NET platform. It is currently the most active and successful open source project for Microsoft platforms and is used around the world in many languages.
Microsoft's stance on the idea of open source and its eventual evolution into an opposing force as
"a direct, short-term revenue and platform threat to Microsoft, particularly in server space" was overviewed. The above quote is from an internal report which was leaked to the public. Public criticism has been harsh upon Microsoft Corporation sprouting from unflattering comments and sometimes derogatory statements by Steve Balmer as well as Bill Gates himself.
In the past 5 years Microsoft has acknowledged the open source world in a more positive light such as the launch of WiX (windows installer xml). This is a toolset that builds Windows installation packages from XML source code.
Microsoft and DotNetNuke both have a mutually beneficial relationship. Shaun explained how Microsoft benefits financially with the framework encouraging the sale of Microsoft products and at the same time cultivating a strong developer community.
DotNetNuke of course has the benefit of Microsoft's immense market share with the added bonus of their cooperation by giving Shaun's team direct access program managers and developers for technical issues.
The building blocks of the open source platform are software stacks, a set of software components that deliver a fully functional solution. One of the most popular and known stacks is LAMP (Linux, Apache, MySql, Php/Perl). The images below from Shaun's slides illustrate the lamp stack and a Window's stack. Notice image 3 is comprised of all open source components while the windows stack includes proprietary components.
The traditional open source community carries animosity and gives little acceptance towards Windows open source. This is based on the argument that an application cannot be termed open source unless it composed completely of open source components. This antagonism towards Microsoft causes it to be excluded from open source channels such as websites and magazines. Shaun noted this can be seen as unfair since it has been reported that some of the biggest open source venders generate up to 50% of their revenue on Microsoft platforms.
Intellectual Property, Licensing and Copyrights become the main areas presented during the latter half of the session.
Open Source Licensing is an important thing for developers and managers alike to understand. A non profit entity named the
"Open Source Initiative" (www.opensource.org) certifies open source licences which are granted if they comply with certain criteria. These criteria are defined on their website. The new most widely used open source licences are the GPL and BSD/MIT.
Trademarks are also very important things for open source projects. These should always be explicitly published and enforced to protect the validity of the projects
"brand".
A question that Shaun has frequently come across during DevTeach is how exactly does DotNetNuke generate revenues? He went on to explain two models which are finding success in today's marketplace.
- Service Model : support, documentation, training channels
- Dual Licensing : Offering professional support alongside a commercially licensed version of a current open source product.
DotNetNuke has recently introduced service level agreements for their platform.
It was definitely an excellent opportunity to gain some insight on open source under the Microsoft umbrella. We hope to see DotNetNuke to continue growing and expanding their reach in the years to come.
Grand Tour of (some) the new IDE features
Guy Barrette
by Ruby Parmar
Guy started the session by introducing Visual Studio 2008 (VS 2008). He
took us on a grand tour of some of the new IDE features found in Visual Studio 2008.
Multitargetting is a great new feature in Visual Studio 2008. It allows VS 2008 to target version 2.0, 3.0 and 3.5 s of the .NET framework.
When creating a new project a dropdown box provides the user the option of choosing one of the three available .NET frameworks. If the user is using version 2.0 the IDE will prevent them from selecting any new options from version 3.5. Depending on the framework the user has selected there will be an increase or decrease in project templates. The user may use the properties of the project to migrate to a higher framework version e.g. 2.0 to 3.5. A 2005 solution file (container of projects) is not compatible with a 2008 solution file. If your team is split between 2005 and 2008 then the answer would be to create two project files.
Visual Studio Tools for Office (VSTO) is primarily for building Microsoft Office applications. VSTO is built to target Office 2003, 2007 and SharePoint. Guy demonstrated creating an Office Excel 2007 Workbook project. After connecting with a database he had the choice of adding a Ribbon or Action Panes control. Guy then added a button click event using following code:
private void button1_Click(object sender, RibbonControlEventArgs e)
{
MyActionsPaneControl ctrl = new MyActionsPaneControl();
Globals.ThisWorkbook.ActionsPane.Controls.Add(ctrl);
Globals.ThisWorkbook.ActionsPane.Controls.Show();
}
He then added a button that would add data to the spreadsheet when clicked on using the following code:
using:
Microsoft.Office.Interop.Excel;
private void toolStripButton1_Click(object sender, EventArgs e)
{
Worksheet ws = (Worksheet)Globals.ThisWorkbook.ActiveSheet;
Range a1 = (Range)ws.Cells[1, 1];
a1.Value2 = "Hello " + contactNameTextBox.Text;
}
All communication technology such as .NET Remoting, Enterprise Services, WSE and Messaging all are developed in Windows Communications Foundation (WCF). The WCF is built into VS 2008, allowing the user to build and run service oriented applications using managed code. Services are exposed as endpoints; there are four service templates
- Sequential Workflow Services Library
- State Machine Workflow Library
- Syndication Service Library
- WCF Service Library
Every endpoint has three components:
A Contract defines what the endpoint will communicate such as queues. Binding defines how the endpoints communicate allowing a choice of different elements such as TCP, HTTP, MSMQ and named pipes. The address describe the endpoint location. The user may edit setting by right clicking on the App.config file and selecting Edit WCF Configuration. Your service is hosted locally using WcfSvcHost but in production you must provide your own host.
Windows Workflow Foundation creates sequential workflow applications. Like services a workflow needs a host to run. The project file contains the plumbing to launch the application. Guy demonstrated creating a basic application. He opened a new project selecting Sequential Workflow Console Application. In Design view he simply dragged and dropped activities. With a right click on a code activity he generated the event handler adding the following code
Code: Console.WriteLine("Hello Workflow");
Console.ReadLine();
Guy then simply ran the application.
VS 2008 contains a new built in designer. It has the ability to display a split screen between code and design. Also in comparison to VS 2005 the switch between design view and code is very quick. Styles can now be applied by simply selecting an element and then picking the style you wish to apply from the Apply Styles window. Leaving the mouse over a specific style will show in a window all style code information. The CSS Properties window provides the ability apply styles, allowing the user to define if the updates will occur in the current page or in a stylesheet. Users also now have the ability to nest Masterpages.
VS 2008 now has a JavaScript debugger with intellisense. The user can extend the intellisense by adding metadata for example:
///<summary>This is a cool function</summary>
///<param name="theValue">Well, you pass the value here!</param>
///returns type="String" />
Guy created a new project windows form which used the local database that created an sdf file. An sdf file is SQL scaled down; there are no views and stored procedures but the user has the ability to query. Using an sdf file is a great way for local storage in a windows format allowing the user to later synch the data with a SQL Server Database. This process is part of a greater process called Sync Services, which allows us to sync databases bidirectionally directly onto a server. The user will be able to work offline and later while online sync that data with a SQL Server Database. Users can do this by running a generated script on SQL server.
Everyone is looking forward to the official launch of Visual Studio 2008 so they can take advantage of these new features. Overall the new features show a lot of promise and value.
Images and code above are referenced from Guy Barrette's powerpoint presentation.