# Tuesday, December 8, 2009

When: Friday, December 18, 2009, 6:30-10pm
Where: Microsoft NYC Headquarters, 1290 Avenue of the Americas, MPR room, 6th Fl
Sponsored by: Microsoft
Limited Advance Sale Tickets: $15 (per person)
http://www.ggdnyc.com/?page_id=14

You’re invited to an evening of conversation, inspiration and dinner! Join us to mix and mingle with other women working in technology. Dinner, dessert, wine and beverages will be served. We’ll culminate the evening with a raffle to win great prizes. The first 50 people to purchase tickets online will receive a gift bag from Microsoft.
Subject & Speakers:
Bonnie Halper, Founder of StartupOneStop.com
Peter Laudati, Developer Evangelist, Microsoft
Melek Pulatkonak, President & COO of Hakia.com

*Please Note* Tickets for this event can be purchased online only. Tickets are non-refundable. If you want to bring a guest, you must purchase a ticket for them. Attendees must bring photo identification and order number to event. There will be no ticket sales at the door.

flyer

posted on Tuesday, December 8, 2009 7:42:06 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Monday, December 7, 2009

We are proud to announce our December CTP of the Telerik OpenAccess Data Services Wizard (formerly known as the WCF Services Wizard). The Data Services Wizard (DSW) allows you to easily create a CRUD data service layer for your application. The DSW does this by using a data access layer already built by OpenAccess and automatically generating the C# code for your endpoints. The types of endpoints you can create are:

  • WCF Data Services (FKA Astoria and also FKA ADO. NET Data Services)
  • Raw WCF endpoints
  • WCF REST Collection endpoints
  • WCF ATOMPub endpoints

This version of the Data Service Wizard is very robust; we have made lots of changes based on your feedback. Our #1 piece of feedback from customers has been to integrate the DSW with OpenAccess and Visual Studio. I am proud to announce that in this version the DSW is fully integrated with Visual Studio!

We have also started to integrate the DSW into the OpenAccess product itself. No longer is the DSW a standalone product; the wizard is now  located under the “Telerik” menu in Visual Studio and looks like the other OpenAccess wizards. Integration will get tighter in the near future and soon just be part of OpenAccess proper, not a separate download.

The basics of the wizard are the same. The DSW will ask you which project your OpenAccess entities are located in and then which entities you will expose in your endpoint.

ScreenShot1

After you choose the entities you want to expose and what type of service you want to build (WCF, Astoria, etc), you can preview the code that is generated.

ScreenShot2

A major improvement with the December CTP is that you can now automatically insert these service endpoint files into a project, eliminating the manual step of copying them on over. This will make building the services so much easier!

image011

Go grab the wizard here. It is still considered a Telerik Labs project, but we will move it to a fully supported beta in January with our next build. On the dock for the next build (early January) are:

  1. Using T4 Code generation instead of text templates
  2. VB.NET code generation
  3. Add WCF Data Services 1.5 full integration (using the new Data Service Provider)
  4. Prevent the generation of complex entities for all services

Future versions of the product will be fully part of OpenAccess and will also support RIA Services, Azure Services, and Visual Studio 2010 and WCF 4.0. Download today and send us feedback!

posted on Monday, December 7, 2009 9:39:31 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Friday, December 4, 2009

I was talking to a fellow MVP here in Hong Kong today about the PDC. He said that since I get to go to all of these events as a speaker it must be great to watch all of the sessions and learn about all of the new technology. The problem is that when you are speaking you almost never get to attend other sessions. If you have a few sessions, you are always either getting ready, speaking, or relaxing after your talk. (Believe it or not, it is tiring to speak at these events.)

I only had one talk at the PDC and it was a BOF, so I did get to attend a few sessions. The funny thing is that I circled 10 sessions. Three where when I was speaking, two had conflicts with others, one was at 8:30am, and one conflicted with a RD meeting. So I attended 3 sessions besides the keynotes. That actually is a lot for me at one of these events.

The good news is that the PDC puts all of its sessions online for free. Why free? Read the book “Free” by Chris Anderson, it will explain how putting the sessions online for free actually increases the prestige of the conference and allows them to make more money.

You can watch all of the videos online for free at the PDC website. If you want to watch them offline you can also download all of the videos to your hard drive. The directions are on the PDC page, however, I had to use the 32 bit version of the cURL tool to get it to work on x64 Windows 7 for some reason. You may want to download the X32 version and save yourself the trouble.

Now you can download all the videos and watch them at your own pace.  I have watched about 15 sessions in the past two weeks since I have been home. Enjoy!

image

posted on Friday, December 4, 2009 1:27:33 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Wednesday, December 2, 2009

Yesterday I showed how to use Telerik OpenAccess, Telerik Reporting, and SQL Azure to create reports and view them in ASP.NET. Today i will show how to view that same report in Silverlight using the industry’s first native Silverlight report viewer. All of this is in the Telerik documentation, however, since we have our cool SQL Azure demo already up and running from yesterday, I figured it would be fun to show how to reuse the same report and view it in Silverlight.

Getting Started

Remember from yesterday that we have three projects in our solution:

  • Telerik.Reporting.DAL-the class library project containing our OpenAccess entities (mapped back to SQL Azure tables)
  • Telerik.Reporting.RptLib-the class library project containing our Telerik report using the DAL project as a data source
  • Telerik.Reporting.Web-the ASP.NET application containing our Report Viewer control, allowing the users to view the report

Now we will add a Silverlight project named Telerik.Reporting.SL that will use the Telerik.Reporting.Web application as its ASP.NET host.

image

The Telerik Reporting WCF Service

Since all data access in Silverlight has to be an asynchronous service, we have to send our report down to our Silverlight application as a WCF service. At the end of the day a Telerik Report is just a plain old .NET class, so we can easily send it down via WCF. The good news is that a lot of the WCF plumbing has been taken care of for you by the Telerik Reporting service. Let’s get started.

First we have to set a reference in our ASP.NET host application (Telerik.Reporting.Web) to Telerik.Reporting.Service. Next add a WCF service to your project, named ReportService.svc. This will also automatically add a reference to System.ServiceModel for you.

Now delete everything in the SVC file and replace it with this:

<%@ServiceHost Service="Telerik.Reporting.Service.ReportService, Telerik.Reporting.Service, 
Version=3.2.9.1113, Culture=neutral, PublicKeyToken=A9D7983DFCC261BE" %>

Note: you have to make sure that the version number you are using is the same as mine. You can get your version number by clicking on the Telerik.Reporting.Service reference in the solution explorer and looking at the version property.

image

Next you will have to add the WCF endpoint to the configuration section of the web.config of the same ASP.NET project that has the ReportService.svc WCF service. (You can copy this code to paste as is into your application from the Report Service support page.)

 
 <system.serviceModel>
   <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
   <services>
     <service name="Telerik.Reporting.Service.ReportService" 
        behaviorConfiguration="ReportServiceBehavior">
      <endpoint address="" binding="basicHttpBinding"
        contract="Telerik.Reporting.Service.IReportService">
         <identity>
           <dns value="localhost" />
         </identity>
       </endpoint>
       <endpoint address="resources" 
          binding="webHttpBinding"
          behaviorConfiguration="WebBehavior" 
          contract="Telerik.Reporting.Service.IResourceService"/>
       <endpoint address="mex" binding="mexHttpBinding" 
          contract="IMetadataExchange" />
     </service>
   </services>
   <behaviors>
     <serviceBehaviors>
       <behavior name="ReportServiceBehavior">
         <serviceMetadata httpGetEnabled="true" />
         <serviceDebug includeExceptionDetailInFaults="false" />
       </behavior>
     </serviceBehaviors>
     <endpointBehaviors>
       <behavior name="WebBehavior">
         <webHttp />
       </behavior>
     </endpointBehaviors>
   </behaviors>
 </system.serviceModel>

 

That is it for the Telerik WCF Reporting Service. Now let’s add a ReportViewer to our Silverlight application.

Using the Telerik Silverlight Report Viewer Control

The Telerik Silverlight Report Viewer offers native report viewing support for Silverlight. It uses the same rendering engine and offers the same functionalities as the other Telerik viewers, so your report will render the same in Silverlight as in Windows Forms as ASP.NET. To get started, you need to add a reference to the Telerik Silverlight controls in your Telerik.Reporting.SL project:

  • Telerik.Windows.Controls.dll
  • Telerik.Windows.Controls.Input.dll
  • Telerik.Windows.Controls.Navigation.dll

These controls are located in the following folder:

Program Files\Telerik\RadControls for Silverlight Q3 2009\Binaries\Silverlight\

In addition, you need to add a reference to the ReportViewer:

  • Telerik.ReportViewer.Silverlight.dll

This library is located in Program Files\Telerik\Reporting Q3 2009\Bin\

Lastly, add a reference to our report project: Telerik. Report.RptLib.

Now you can add the report viewer namespace and control to your XAML:

   1:  <UserControl
   2:      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   3:      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   4:      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
   5:      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
   6:      mc:Ignorable="d" 
   7:      xmlns:Telerik_ReportViewer_Silverlight=
   8:       "clr-namespace:Telerik.ReportViewer.Silverlight;
   9:        assembly=Telerik.ReportViewer.Silverlight" 
  10:      x:Class="Telerik.Reporting.SL.MainPage"
  11:      d:DesignWidth="640" 
  12:      d:DesignHeight="480">
  13:    <Grid x:Name="LayoutRoot">
  14:        <Telerik_ReportViewer_Silverlight:ReportViewer 
  15:          Margin="0,0,20,8" 
  16:          ReportServerUri="../ReportService.svc" 
  17:          Report="Telerik.Reporting.RptLib.CustomerRpt, 
  18:              Telerik.Reporting.RptLib, Version=1.0.0.0, 
  19:              Culture=neutral, 
  20:              PublicKeyToken=null"/>                                                  
  21:    </Grid>
  22:  </UserControl>

 

Note: The Telerik support page for the Silverlight Report Viewer is a good reference for the code needed and you can copy and paste from there instead of from here. Alternatively, you can use Expression Blend to add the report to your XAML form and you don’t have to worry about the namespaces and XAML for the ReportViewer, Blend will take care of that for you, all you have to worry about are the ReportServiceUri and Report properties. If you are not using Blend, just make sure that the properties are in the correct order in the XAML (ReportServiceUri first, Report second) or you will get some nutty bugs. (Ask me how I know this!)

You are going to have to set two properties of the ReportViewer control (either manually in XAML or in Blend):


  • ReportServiceUri: or the absolute or relative path back to the WCF service in the ASP.NET solution
  • Report: or the assembly qualified name of your report class

<Sidebar>

How to find the assembly qualified name of your report? I was confused at first too. There are some PowerShell tools, etc, but I am PowerShell challenged. Instead, just add a label to an ASP.NET WebForm in the Telerik.Reporting.Web project and on the page load event add this code:

   1:  Type ty = typeof(Telerik.Reporting.RptLib.CustomerRpt);
   2:  Label1.Text = ty.AssemblyQualifiedName;

Then run the page in the browser and copy and paste the fully qualified assembly name into your XAML as I did. :)

</Sidebar>

That is it. Next step is to set your Slverlight test page as startup and F5. The ReportViewer supports native printing and export capabilities to PDF, XLS, Excel, etc. Pretty cool.

image

Enjoy!

Technorati Tags:
posted on Wednesday, December 2, 2009 7:20:54 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Tuesday, December 1, 2009

Telerik Reporting is a great reporting package. If you using it, you may be happy to know that you can use Telerik OpenAccess as a data source. Let’s take a look at how to use it with a SQL Azure Database as a back end.

Getting Started

First you need to map your SQL Azure tables to OpenAccess entities. I demonstrated this before on my blog, if you have not used OpenAccess and SQL Azure yet, read this post. (Don’t worry I’ll wait.) What I did for this demo is create a library project called Telerik.Reporting.DAL and mapped all of the Northwind tables in my SQL Azure database to OpenAccess entities in a class library.

Next I created another library project to contain the reports called Telerik.Reporting.RptLib. This solution will contain all of your reports. It is good to create all of the reports inside one isolated solution so you can reuse these reports in an ASP.NET solution as well as other projects like Silverlight. After we created this project, I ran the OpenAccess enable project wizard to get all of the proper references set up to use OpenAccess. In addition, I set a reference to our Telerik.Reporting.DAL project so we can see the entities we just mapped.

Creating a Report

Now it is time to create a report. Just right click on the project and select Add| New Item and choose the Telerik Report Q3 2009 template from the Reporting category.

image

The Telerik Reporting Wizard will come up. Select the option to build a new report and a new data source. For a data source type, select Business Object from the options available.

image

Next drill down into the Telerik.Reporting.DAL namespace and then select the Customer entity.

image

The next few pages of the wizard ask you how to lay out your report and what data fields to choose from. The wizard is self explanatory, so I will not go into detail here, but just choose any style that you like and show some customer fields on the report. I choose to show Customer ID and Company Name in standard report. My report looks pretty basic in design view:

image

 

Wiring up the data

We are almost there. Next step is to write a little LINQ code behind your report to wire up the OpenAcces data source with your report. Right click on the design canvas of the report and select “View Code.” That will take you to the code behind. Create a function like the one below that uses the OpenAccess LINQ implementation and return all of the customers (We could more complex LINQ queries here if we wanted to. )

   1:  public static List<Customer> GetCustomers()
   2:  {
   3:      //LINQ Query to fetch all of the Customers via OpenAccess            
   4:      //data context (IObjectScope)
   5:      IObjectScope dat = ObjectScopeProvider1.GetNewObjectScope();
   6:      //Get a ILIst of Customers
   7:      List<Customer> result = (from c in dat.Extent<Customer>() select c).ToList();
   8:      return result;
   9:  }

The function above returns a List of Customers. The IObjectScope in line 5 is the data context and the LINQ statement is in line 7.

But we have one problem. While we set all of the proper references, we are missing a bunch of using statements. You can manually add them here:

   1:  using System.Collections.Generic;
   2:  using System.Data;
   3:  using System.Linq;
   4:  using Telerik.OpenAccess;
   5:  using Telerik.Reporting.DAL;

 

Or you can use the new Telerik JustCode tool to organize and fix your using statements:

image

You need to add one more line of code to your report. Add the following to the report’s construtctor, it will wire up your function as the data source of the report:

   1:  DataSource = GetCustomers();

The ReportViewer Control

Now it is time to view the report. To do that create a new ASP.NET application called Telerik.Reporting.Web. Set a reference to the Telerik.Reporting.RptLib project where the report you just created is located. After that drag a Telerik ReportViewer control from your palate to the ASP.NET web form.

image

All you need to do now is add one line of code to the page load event (or a button click event, etc) to load the CustomerRpt we just built into the ReportViewer.

   1:  if (!IsPostBack) { ReportViewer1.Report = new CustomerRpt(); }

Next step is to run it and see your report in action!

image

Enjoy!

Technorati Tags:
posted on Tuesday, December 1, 2009 9:24:03 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Monday, November 30, 2009

I have been a fan of ADO.NET Data Services (Astoria) for a long time. Last week at the PDC, Microsoft unveiled the new name for ADO. NET Data Services: WCF Data Services. That makes sense since Astoria was built on top of WCF, not ADO .NET. I thought that Astoria was a cool code name and that ADO.NET Data Services sucked as a product name. At least WCF Data Services sucks less since at least it is more accurate and reflects the alignment of WCF, REST capabilities of WCF, and RIA Services (now WCF Data Services).

Astoria, I mean WCF Data Services :), is a way to build RESTful services very easily on the Microsoft platform. Astoria implements extensions to ATOMPub and uses either ATOM or JSON to publish its data. The protocol that Astoria used did not have a name. Since other technology was using this Astoria protocol inside (and even outside of) Microsoft, Microsoft decided to give it a name and place the specification under the Open Specification Promise. Astoria’s protocol is now called: the Open Data Protocol, or OData.

If you have been using Astoria and liked it, not much is different. What is cool is that other technology is now adopting OData including: SharePoint 2010, SQL Server 2008 R2, PowerPivot, Windows Azure Table Storage, and 3rd party products like IBM’s WebSphere eXtreme Scale.

With all of this technology supporting OData, Microsoft created the Open Data Protocol Data Visualizer for Visual Studio 2010 Beta 2. The tool gives you the ability to connect to a service and graphically browse the shape of the data. You can download it from here or search the extensions gallery for Open Data. Once you have it installed you can view OData data very easily. Here is how.

To get started you first have to create a WCF Web Data Service. I just mapped Northwind to an Entity Data Model using the Entity Framework and then created the WCF Data Service. Then I added a console application and set a service reference back to that Astoria Service. My projects looks like this:

image

To start the OData Protocol Data Visualizer, just right click on the Service Reference and click “View in Diagram.” This “View in Diagram” menu option will show up when you have a Service Reference that is OData compatible, whether you created it or not. (Meaning if you have a Sharepoint list as your service reference, it will work as well.)

image

This brings up the diagram canvas and corresponding OData Protocol Model Browser.

image

From here you can select an entity from the Model Browser and drag it onto the canvas. I dragged over the Customer entity and right clicked and was able to add all related entities.

image

From here you can interrogate your model and start to learn about it, all in Visual Studio. This is a great little add-in!

Enjoy!

Technorati Tags:
posted on Monday, November 30, 2009 7:43:07 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Wednesday, November 25, 2009

Microsoft has released a new .NET Stories site that features real developers and their stories about building .NET applications. Sure the site is a marketing site, however, it is pretty cool since the stories are true and very varied. There are stories that integrate SharePoint, SQL Server R2 and Win7. 

I spent some time reading over the case studies and watching the videos and some of the apps blew me away. What is cool is that Microsoft is looking for more. You can submit your .NET app to a contest and get a chance to win a 12-day Galapagos Islands trip or a Smart Car! You can also get featured on their wall of fame.

Having been to the Galapagos, I can tell you, this is an amazing offer. If you are selected, Microsoft may even take your photos and dress you up as Dr. Efficiency, or something like that.

Good luck!

posted on Wednesday, November 25, 2009 9:21:09 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Tuesday, November 24, 2009

NJAgileFirestarter

Another Firestarter event is coming to the NY/NJ area!  If you’ve been to any of the previous Firestarter events, then you’ll know this one will be sure not to disappoint!  Firestarter’s are a full day event where we focus on a single technology and take attendees from intro to guru in hours.  The goal is for attendees to come away fired up and ready to start using the technologies or methodologies right away.

The Agile Firestarter in NYC that I helped plan and spoke at and back in June 2009 was super popular and a huge success and now it is time to have one in NJ! Are you just starting out with Agile, XP or Scrum and need to get up to speed? Or do you know a thing or two about Agile but want to learn the basics so you can implement it in your organization?  Then this Firestarter is for you!

REGISTER HERE!!!

Registration just opened this morning (Nov 25th).  There are a limited number of seats available for this event, so register quickly if you want in.  Previous Firestarter events have all sold out!  So do it before you head off for a turkey stuffed extended weekend! :)

When

Saturday, December 12, 2009 from 8:30 AM - 5:00 PM (ET)

Microsoft Office - Iselin, NJ
Microsoft Office - Iselin, NJ

Where

Microsoft Office (Iselin)
194 Wood Avenue South (Prudential Building)
Sixth Floor
Iselin, NJ 08830

The Agenda:

  • Introduction to Agile
    A high-level introduction to Agile concepts and values from the software developer's perspective.
  • SOLID:  OO Principles
    This presentation will examine the five key design principals used on agile project and how to use them to build out an adaptive system over several cycles.
  • Test-Driven Design & Development
    An introduction to Unit Testing and Test-Driven Development, showing how this approach helps keep your code adaptable to change
  • Agile Estimation & SCRUM
    An overview of the concept of agile estimation and the notion of re-estimation
  • Domain Driven Design
    An introduction to the core principles for applying a Domain Driven Design approach and how it fits into the agile development life cycle.
  • Continuous Integration
    This session shows how to centralize your quality assurance efforts and help keep developer productivity high (and defect count low!)

The Presenters:

  • Stephen Bohlen
    Currently a Senior Software Engineer for FirstPaper, LLC, a start-up in the world of digital media, Stephen brings his varied 15-year-plus experience as a former practicing Architect, CAD Manager, IT Technologist, Software Engineer, CTO, and consultant to the design and delivery of Software Engineering Solutions.Stephen is an active contributor to several Open-Source Software projects including NHibernate, NDbUnit, and others as well having developed a number of Visual Studio productivity add-ins. Active in the local NYC software development community, Stephen speaks publicly, blogs regularly, and is the author of several popular screencast series focused on Agile and ALT.NET concepts and technologies including the widely-praised 15-part Summer of NHibernate video series introducing viewers to the popular open-source O/RM tool and the Autumn of Agile series that takes viewers through the design, planning, and construction of an entire .NET project in an Agile context. He is also a contributor of a number of shorter screencasts available on Dimecasts.NET and elsewhere. Stephen is also a founding/organizing member of the NYC ALT.NET user group which meets monthly to discuss Agile-focused techniques and technologies in the world of Microsoft software development and beyond.
  • Jess Chadwick
    Jess is an independent software consultant specializing in web technologies. He has over 9 years of development experience ranging from embedded devices in start-ups to enterprise-scale web farms at Fortune 500s. He is an ASPInsider, Microsoft MVP in ASP.NET, technical editor of the recently-released Silverlight 3 Programmers Reference (WROX) and leader of the NJDOTNET Central New Jersey .NET user group.
  • Sara Chipps
    Sara is a developer specializing in web applications, an irreverent blogger at GirlDeveloper.com, and a writer for Datamation.com. She enjoys participating in and organizing community events such as Code Camps and most recently NJ Tech Drinks and Concept Camp, an opportunity for nerds to go camping together.
  • Peter Laudati
    Peter Laudati, the "JrzyShr Dev Guy," is a Developer Evangelist with Microsoft, based in the New York/New Jersey area. One of his roles is supporting and educating Microsoft customers working with the .NET development platform. Peter supports the community of .NET developers in the NY Metro area by speaking at user group events and Code Camps. Peter is also the co-host of the “Connected Show”, a new podcast covering Microsoft technology with a focus on interoperability.  His blog can be found at http://www.peterlaudati.com.
  • Todd Snyder
    Todd is a MCSD in .Net and a MCTS in SharePoint & Biztalk. He works in the Infragistics Experience Guidance Group (XDG) as the developer team lead. In his role as the XDG developer team lead Todd is responsible for making sure the samples include with Net Advantage showcase the capabilities of the product and help educate developers on how to tap into those capabilities. Prior to joining Infragistics Todd spent several years working as consultant helping customers build enterprise .Net applications.
Technorati Tags:

  Technorati Code: YJQU3Z2SWF46

posted on Tuesday, November 24, 2009 5:39:35 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback