Showing posts with label Microsoft. Show all posts
Showing posts with label Microsoft. Show all posts

Sunday, 4 February 2007

WebDD

Jeff Attended the first WebDD event at Reading on Saturday and it was tops :)

Spent the whole day in Chicago 1 where Scott Gu was presenting but it was a bit of a mission to get a seat!! They really should of guessed that everyone would have wanted to attend his sessions and used both Chicago 1 & 2 to get everyone in. I think a lot of people were turned away to all 4 of his sessions. All of his sessions were recorded though so I'm sure they will be posted on the WebDD site at some point soon.

His first two sessions were a part 1 & 2 of building a complete website from end to end using ASP.NET 2.0, AJAX, VS2005 & IIS7. Most of the stuff in these sessions was quite simple but I found the info on IIS7 really good as I haven't used or read up on this new version yet. He also showed some good tips and tricks which are all on his site.

His next session was a sneak peak at the next version on Visual Studio code named "Orcas". This was a really interesting session, he was using a very recent build which he said will be public download in a couple of weeks (I think i will be installing this :)). The main cool points were:
  • Backward compatibility with v2.0, v3.0 and the new v3.5 of the framework.
  • Inclusion of all the Expression Web features (I think he even said this will be in the Express edition!!) I really like the CSS features, I think these will really help me :) We now have a split screen mode with design and code, and its a lot quicker to switch between the two!!
  • Full support for AJAX including Javascript intellisense and debug :)
  • Full support for LINQ and BLINQ :)
  • plus loads more stuff I can't remember now!!!

The next session was by a guy from Telerik on creating AJAX extender controls. Unfortunately the guy was quiet and had quite a strong foreign accent which made him hard to understand!! However he really did know his stuff!! The session was in-depth, with lots of code and quite interesting - I need to go through the AJAX clientside framework because I didn't really understand this part of the talk!!

The final session was back over to Scott (he probably needed the break as he re-ran his last session through lunch for those who couldn't get in the room!! He did mention he done a webcast - so look out for that :)) This session was on WPF/E and he showed some excellent demos and ran through the code step by step. He showed us this really cool vista emulator done in WPF/E over here, its in some foriegn language, he didn't seem to know who the author was but it was quite funny and shows the power of this technology!! I want to try and use this for a video player in my project but he did say it will only play WMV format, which is an awesome codec (HD 720p quality with low bandwith) but might cause me some problems :(

Scott said he will be posting all his slides and code on his site at some point.

We also all got a free copy of Expression Web which was cool, got a few other bits of swag which is always a bonus :)

A really good event, I think Scott being there really made it for me :) But I will defiantly be signing up again for WebDD2!!

Tuesday, 5 December 2006

DDD4 Wrap up

JeffAttended my 3rd DDD day on Saturday and these days just keep getting bigger and better :) The only down side of this one was the lack of SWAG :( I think Richard and Dave had it all for there session on Tech Ed 2006!!!

Went this year with Ben who is a Microsoft student partner for University of Hertfordshire where he is in his final year of his Computer Science degree :)

Arrived nice and early for the egg, bacon, and sausage baps - yummy :) Then headed into the first session I chose entitled 'How to write crap code in C#' by Ben Lamb. Unfortunately this session was not as great as I expected, I think Ben has a lot of knowledge but came across quite nervous and difficult to follow at times due to this. I feel for him though because I would be nervous in front of 120 people!! He covered a few simple anti-patterns including string concatenation, threading, and throwing errors. He managed to dramatically slow processing down by concatenating strings instead of using the new string builder - there was a huge difference in this. So defiantly use the string builder if your are performing a lost of string concatenation.

Next I joined Dave Verwer for his presentation titled 'Ruby on Rails for .NET Developers'. This was a fantastic introduction session to the dynamic Ruby language and the Rails framework. I defiantly see this technology as a start of a more dynamic like language trend. I think the power and RAD type capabilities of this language and framework are fantastic, he demonstrated how easy it is to create a database and web form in a matter of minutes :) I defiantly see this complementing an AGILE type methodology. I really liked the way it creates a strict model for you to develop within by creating template folders and files and leads you to develop within a tried and tested fashion. People may argue that this is too much hand holding and forcing you to develop in a certain way, however i believe the benefits of being able to pick up any Ruby project and understand the structure straight away is defiantly a win :) I also like the way it encourages the separation of the dev, test and production environments. My only worry is its performance issues, ability to create an n-tier architecture and how it is not fully support the Microsoft platform which could be a show stopper for some companies heavily tied to MS technologies. I think it could be great to quickly knock something up in a virtual machine though :)

Next I went to session called 'But it works on my PC! or continuous integration to improve software quality' by Richard Fennell. This was a great session that introduced you to the great mindset of continuous integration that I am totally a fan of and I'm currently trying to implement myself. He demoed Cruise Control which looks like a fantastic open source piece of software which with little configuration will do a great job of handling your automated builds and testing. It works well the MS Source Safe but he also showed you how to setup automated builds in TFS but this looked a little more clunky and not supported out of the box. He mentioned a new TFS plugin for Cruise Control that will give the best of both worlds.

Next was a lunch and time for the groktalks and Park Bench activities. These were great but I think the popularity was underestimated as there were too many people for the area where the speakers were placed. I could hardly see what they were demoing let alone hear what they were saying. I spoke to Mike Taulty whilst one speaker was on and he came up with a game where he would guess what the speakers were saying :) I think next time they should use a bigger area and a mic, I don't think a room would be a good idea as it would be too formal :)

I really liked the Park Bench concept, this is where 4 people sit in front of a gathered crowed and take any questions. If you make a statement of think you have a better answer one of the people on the bench have to get up and let you sit down to say your bit. This really lets everyone get involved and say there bit, a nice community type discussion :)

After lunch I want into the session by Abid Quereshi on an 'Introduction to Aspect Oriented Programming' which was quite in depth and I must admit most of it went over my head - partly because we got some bad seat, I was feeling tired after lunch and that I think he emphasized too much on the theory. However it was a great session and in a nut shell was all around the declarative model of programming which produces cleaner and more coherent code.

The final session was titled 'DataAccess Layers - Convenience vs. Control and Performance?' by Daniel Fisher and was the one session I was really looking forward to. Unfortunately Ed Gibson decided to do his usual FBI talk 5min before the session was going to start - I didn't attend this as I have listened to him twice already this year and once you've heard it once you defiantly don't want to hear him talk about small children again :) Then the projector wouldn't work properly so the session was cut short to about 30 min which means he really had to rush this as it was a shame as it looked like he had a good framework. He did say to email him if you would like a copy of the code, so I might just do that :)

Overall great day though and i look forward to DDD5 :)

They did announce a WebDD day on 3rd of February 2007 which is going to be a similar day focused on web development. Will defiantly be attending this one. They also mentioned that MS will be doing a Vista launch on 19th & 20th January 2007 at Reading so look out for this one as its rumoured they will be giving away some copies of the OS :)

Wednesday, 1 November 2006

Off to Tech Ed 2006 @ Barcelona




We are off the Tech Ed next week in Barcelona. Keep an eye on this blog for (sort of) up to date pics and comments.

Monday, 14 August 2006

My RVC office

Jeff

Thought I would try out the 'Insert Map' function in the new Windows Live Writer. It uses Windows Live local and Virtual Earth, which now seems to include the UK :-) You can really zoom in quite far, and add pushpins. Any its quite a cool way to add maps to blogs, not sure how much I will use it though!! Anyway this is my office, Scott also lives here :-)


Windows Live Writer

JeffThis is my first blog using the new free Windows Live Writer (Beta) :-) You can download it here http://windowslivewriter.spaces.live.com/ Its pretty good, configured straight away with Blogger and pulls down all your styles. Has a nice and simple WYSIWYG interface, easy to insert photos and even maps - not that I've tried that yet!!

Wednesday, 9 August 2006

Mr Designer meets Mr Coder

Jeff
Been working with a web designer lately, something I have never done before. Its been very interesting seeing the two worlds meet. Mr Designer is an expert in HTML and CSS but knows little about the ASP.NET world.

The interesting areas have been the line between ASP.NET Skins and CSS and ASP.NET controls rendering in tables. I have decided that Skin vs CSS is not so much which one is best more which is most suitable when. I found Skins very powerful with controls when we can set properties and found CSS great for lay out and styling of HTML controls.

Mr Designer is obviously keen to give me his CSS to apply to my site, but sometimes I needed to adapt this to work with my site. I had to set the CssClass on many controls to use with the classes in the CSS and sometimes had to take parts out and just use the Skins to set the styles on ASP.NET controls.

Its quite frustrating that many of the ASP.NET controls render in tables as these are HTML heavy and not as flexible as using DIVs to style. Scott Gu has an interesting post here about the CSS Control Adapter Toolkit for ASP.NET 2.0, which looks like it could be interesting in solving this problem. When I get a chance I will have a play :-)

I still think their is a big gap between a pure web designer and a developer. It will be interesting to see if the Expression Products with WPF will help to shrink the gap :-)

Custom DateTime Format Strings

ScottSo simple, yet so easy to get mixed up :)
MSDN2 Custom DateTime Format Strings

Expandable gridview

Jeff

Been working on a project where I needed a grid which could have rows that expand with another grid within it for more details. I found this cool gridview over at The Code Project.

This control is great, it does exactly what it says and all credit to its authors. However I couldn't resist having a tinker with it :-) I have ended up amending it slightly.

The part I wanted to improve was where the client had to handle the RowCreated event, in order to bind any data to the child control in the item template and you had to set whether the row should expand or not. I just felt this could be encapsulated more by being handled internally by the control.

I set about solving this by adding the following extra properties to the control. These properties are designed around the nested object being another gridview, or expandable gridview, with some relationship between the two:

  • NestedGridName (string) - The name of a gridview which is nested.

  • NestedGridDataHandlerName (string) - The name of a datahandler object that is used to retrieve data for the nested grid, this maybe a TableAdapter or custom dataobject.

  • NestedGridDataHandlerMethodName (string) - The name of the method used to extract data on the data handler object.

  • NestedGridDataHandlerSingleton (bool) - Whether the data handler object is a singleton.

  • NestedGridDataHandlerInstanceProperty (string) - If the data handler is a singleton then this field must be set with the name of the property to access the instance.

  • NestedGridForeignDataKeyNames (string[]) - An array of foreign key column names on the containing grid used to reference the nested table.

  • ExpandCollapseCellPosition (int) - The position to add the cell which contains the Expand/Collapse button.


With these extra properties I was able to use reflection to call the data handler for the nested grid, get the data and bind it. I could also determine whether the row needed to be expanded. I also added the CellPosition so that the position of the expand/collapse button can be set and not always at the 0 position.

now you can use the control by dragging it onto the page, setting a few more properties, but can write zero code and it works :-) There are a few assumptions in here, such as the datahandler method takes the foreign key fields as arguments to retrieve the data for the nested grid and that the nested object is a grid. However if you don't set the DatahandlerName then the grid can be used as before with adding anything into the ItemTemplate field.

The other change I made was to make it XHTML compliant. The original version added a few attributes (expandClass, expandText, collapseClass, collapseText) to the grid, which were picked up in the javascript to perform the expand/collapse function. However these none standard attributes made it fail the XHTML standards. I changed this by adding the attributes to the javascript when it is built up in the OnInit method of the ExtGridView class. Now it has a big green XHTML pass :-)

You can download my modified version here

Tuesday, 8 August 2006

System.Windows.Forms.Keys.Return & beep

ScottWhen using Keys.Return you will automatically be provided with the classic PC beep. If this is what you want then you are on a winner. However, if this is not what you want then this here is the gem to turn the beep off;
Within the KeyPress event, where e is KeyPressEventArgs.
e.Handled = true;

Friday, 4 August 2006

DataSet Relationships

ScottBeen working quite heavily with strongly typed datasets at the moment. I keep getting asked the same question about the difference between relationship types. So in a simple nutshell;

Imagine two tables "Father" and "Son" with a relationship between the two.

Relationship type - Relation Only. Will generate intellisense method Son.FatherRow

Relationship type - Foreign Key Constraint Only. Will enforce relational integrity. No intellisense method as in Relation Only.

Relationship type - Both Relation and Foreign Key Constraint. Provides both intellisense method and relational integrity