I enjoyed presenting in
Tallahassee Code Camp last weekend on September 22nd, 2007. I presented 3 sessions on C# 3.0, Design Patterns, and Scrum. Here are the details on the sessions and the resources.
Overview of C# 3.0This session will introduce you to the various new features of C# 3.0 – Automatically implemented properties, Object and type initializers, Lambda expressions, type inference, and LINQ queries.
PresentationSource Code [for complete solution, last state]
Visual Studio Settings File for Code Snippets in Toolbox [Use Tools --> Import Export Settings to import this settings file in your environment, once import is successful you'll see the code snippets I was using in Toolbox]
I was using Visual Studio 2008 Team Suite VPC for my demos. You can download it from
here.
Other Resources on C# 3.0 and Visual Studio 2008Visual C# Developer CenterVisual Studio Developer CenterOverview of Visual Studio 2008 - A WhitepaperOverview of C# 3.0C# 3.0 Unified Language SpecificationThe Art of Design using Design Patterns in .NETHave you worked on a
design problem and thought if there was a standard solution to that? Have you
thought of enhancing your design vocabulary to add factories, facades, proxies,
decorators, visitors, mediators, and bridges etc? Come to this session to learn
about design patterns. A Design Pattern is an elegant, tested, well documented,
and reusable solution to standardized software design problem. This session will
look at some of the standard Gang of Four (GoF) Patterns. GoF patterns are
divided broadly into creational, structural, and behavioral categories. We'll
discuss when, why, and how to use them with real world scenarios. The demos
would be in C#.
PresentationHead First Design Patterns - Book Home PageC# Code ExamplesC# Code Examples with Class Diagrams in VS 2005You would need
NUnit to run the unit tests from the project.
Agile Development
using Scrum
Welcome to the world
of pigs and chickens, scrum lords, stand up meetings, product backlog, burn down
graphs, and much more. We’ll introduce you to Scrum, an agile software
development process. I’ll be explaining my experience from a current project to
discuss what it takes to scrumify an existing/new project. This would be an
interactive session and audience participation would be highly encouraged. Come
prepared to learn and share best practices in agile development.
Presentation
Resources on Scrum
http://www.controlchaos.com
http://www.implementingscrum.com
Scrum Podcast - HanselMinutes - Podcast #23
Please refer to the presentation slides for more resources. I prepared a 3 page sheet on various resources. If you need a copy, please send me an email.
The attendance in all my sessions was really good - from 20-35 people.Thanks to everyone who attended my sessions. I would love to hear your feedback. Please contact me with any comments/questions. I was very pleased with how the audience responded to all my talks. The turnout in this year's code camp was much better compared to last year. According to Steve Lane (Primary organizer along with Jose Fuentes), there were 160+ people who attended the code camp. It was good to see Shawn Weisfeld, Joe Healy, Jeff Barnes, Russ Fustino, Wes Dumey, Bayer White, Mike Mollenhour, Keith Rowe, Kelvin McDaniel, Jacob Sanford, and John Dunagan
As I was presenting a session on Scrum, I decided to listen to Rob Eisenberg's and Christopher Bennage's sessions on Agile Development. I must say those sessions were very insightful. I learnt a lot from those sessions. Those were only the sessions that I could attend, beyond presenting my own 3 sessions.
Another notable mention was Jacob Sanford's book celebration in the after party. Jacob has written an excellent book on ASP.NET Design. Congratulations to him.
Overall it was a very well organized event. Thanks and kudos to all the organizers.
Jacksonville Code Camp this past weekend was a blast. I'll be writing a detailed entry on the event itself sometime later today. In addition to being one of the primary organizers for the event, I presented one session and coordinated a "Show your coolest code" contest (more details in separate post). I presented a session titled - The Art of Design using Design Patterns in .NET. Similar to Tampa Code Camp, I had more than 40 people in this session. Thanks to everyone who attended. I hope you enjoyed the talk. This time I played some humor clips in the beginning and end of the talk and they seemed to be received well. In essence, one of the objectives of a Code Camp is to have fun as well (people coming on Saturday to learn).
Here is the abstract for the session:
The Art of Design using Design Patterns in .NET - Have
you worked on a design problem and thought if there was a standard
solution to that? Have you thought of enhancing your design vocabulary
to add factories, facades, proxies, decorators, and bridges etc? Come
to this session to learn about design patterns. A Design Pattern is an
elegant, tested, well documented, and reusable solution to standardized
software design problem. This session will look at some of the standard
Gang of Four (GoF) Patterns. GoF patterns are divided broadly into
creational, structural, and behavioral categories. We'll discuss when,
why, and how to use them with real world scenarios. The demos would be
in C#.
Here are the presentation slides and demo source code:
Resources
Presentation
Slides – The Art of Design using Design Patterns in .NET
Head
First Design Patterns - Book Home Page
C#
Code Examples
C# Code
Examples with Class Diagrams in VS 2005
You would need NUnit to
run the unit tests from the project.
Thanks once again for attending this session. Please feel free to contact me with any questions / comments.
Vinay
Well, I am not running for president of America, for which elections will happen early next year. I am not even runing for President of India, for which the elections concluded recently. I am running for President of
Jacksonville Developers User Group. Yesterday, I had sent Dennis Bottjer, the current president of the group answer to three questions - Who am I?, What I will do as President? and Why I would like to be the President?
I wanted to share those responses with everyone here.
Who am I?Technical
I have more than 8 years of experience in designing, developing, and architecting enterprise scale applications using Microsoft Technologies. I am a passionate software developer / architect and love to venture into cutting edge technologies. I am a Microsoft Most Valuable Professional in Visual C#. I am a Microsoft Certified Solution Developer in .NET and working towards MCTS. I did my Bachelor of Technology in Computer Science from a prestigious university in India. I graduated with M.S. in Computer Science from The University of Texas at Dallas.
Community - Technical
Currently, I serve as Secretary and Special Interest Group (SIG) Coordinator for Jacksonville Developers User Group (http://www.jaxdug.com) (Since October 2005). I was instrumental in organizing last year’s Jacksonville Code Camp. I am a strong proponent of knowledge sharing and community development. I have spoken extensively in Code Camps in Florida, Georgia, and Alabama. Last year, for few months, I was also part of INETA’s Technology Committee.
Community – Non Technical
I love working with the community and helping them. Apart from my association with JaxDUG, I have been associated with Hindu Society of Jacksonville for the last 4 years and served as Chair of Youth Committee from 2004-2006. Since, 2005 I am also the Regional Coordinator for North South Foundation. This non-profit organization organizes spelling, math, essay, geography bee and other contests for kids of Indian origin. In 2005-2006, I was associated with a local toastmasters group as Treasurer and VP of Education as well.
What I would do as president?We have done really well as a user group over the past years. There are some things I would like to see more structured and execute my ideas around. These items are in no particular order.
Speakers
- Develop local speaker pool by giving them structured opportunities
- Get UG Members feedback on which speakers they would like to see and present
Meetings
- Explore different meeting styles – Discussion based, 2 speakers in one night, Bring your own presentation, Interactive debate on technology
- Meeting reminders and communication
- Feedback on meeting, future topics
- Attendance
Events
- Keep Code camp as an yearly event
- Organize 1 day technology focused events on a weekend. These events can be based out of the need of the community / local businesses
Web Site
- Shows meetings and events for the next 3 months preferably
- Refinement
Collaboration with other User Groups
- Other User groups in the area in different technologies
- User groups in Florida
- INETA
Collaboration with local businesses
- Assess needs of organizations from a training perspective (brought up by Marshall Harrison)
- Get speakers on those topics
Newsletter
- Have a weekly newsletter with all events coming up locally and in Florida
Special Interest Groups
- Encourage and support people who want to start focused groups
- Try to get financial support
- Raffle prizes
UG Meetings and Events Sponsorship Structure
- Structure around how organizations can sponsor meetings
- Associated benefits and costs matrix
UG Organizational Structure
- Role based organization
- Advertise opportunities to get involved
- Recognize all people involved
- Prepare for sustainability and growth of user group
Actually, these are the items that came to my mind while thinking about it. I would take every suggestion as an opportunity and evaluate it with an open mind along with the group. We have to do things that make our user group one of the strongest knit communities not only in Florida but all over the nation.
Why I want to be the president?• To serve the technical community
• Bring ideas and refreshing changes for growth and betterment
• Develop my own leadership skills
The president is only a facilitator that guides the leadership team and the community. I certainly look forward to the support of able volunteers and advisors. By being a president, I would be the torch bearer, however it is the community and the team that will strive for excellence.
Given the opportunity to serve, I'll do my best to implement the above mentioned ideas. If you would like to support me, or have any questions or comments, please reply to this post or come to the User Group meeting tonight - July 25th, 2007. More information on
JaxDUG Web Site.
Actually, I just noticed that Dennis has posted a blog entry regarding
elections.
Here are the resources for my Power Tips for Visual Studio
2008 (Orcas) IDE for C# session from Tampa Code Camp. I had some problems with the Orcas VPC and
could not show my Linq examples. Ryan Morgan was very helpful and let me use
his laptop that had Orcas installed. We did lose some time in this changeover.
However, I am satisfied that I was able to show some very cool tips for Visual Studio IDE for C#.
Presentation
Slides – Power Tips for Visual Studio Orcas IDE for C#
Currently, I am working on a reference sheet for all
the tips and would be posting it in few days. I’ll also be posting a list of
resources for C# IDE Tips and Tricks.
- Vinay
Tampa Code Camp
was a very well attended event. I presented couple of sessions. One of them was
on Design Patterns. I talked about some of the Gang
of Four patterns. It was in one of the first slots in the morning. There
were about 50 people in the room, some of them standing too. Honestly, I did
not expect so many people to show up. Thanks to everyone who came to this
session. I hope you liked the session. I tried to get feedback from people who
had used Design Patterns in their projects. Thanks to those who shared their
experiences and scenarios. It’s always good to learn from others’ experiences.
Both my sessions had logistical challenges too. I was standing in the back of the room, near the control panel and laptop. The projector was in the front. I was not able to look at the participants for more than half the time. For this talk, Shawn Weisfeld helped me with progressing my slides. Thanks Shawn. I feel the presentation went really well. This time I did not know whether there will be session evaluations, so I had printed my own session feedback forms. The dozen forms that I receieved had encouraging feedback. Many people pointed out that there was too much content. I knew that was going to happen, however it is a hard problem to deal with when you're assuming that the attendees know the basics and have just 1 hour to get through. My main objective was to create an awareness around patterns, and I think I achieved that. I did emphasize that one should not over-engineer using patterns, considering today's agile world and other reasons.
Here are the presentation slides and demo source code:
Resources
Presentation
Slides – The Art of Design using Design Patterns in C#
Head
First Design Patterns - Book Home Page
C#
Code Examples
C# Code
Examples with Class Diagrams in VS 2005
You would need NUnit to
run the unit tests from the project.
There were couple of questions that came up during the talk.
I’ll be posting the answers in a separate blog entry.
- Using Composition over Inheritance
- Singleton Design Pattern in Distributed Scenarios
Thanks once again for attending this session. Please feel free to contact me for any questions.
Vinay
It was nice to present at JAXDUG meeting on Wednesday It was
a small group that attended this meeting. We had some interesting discussion. I
talked on Design Patterns and demonstrated some of the Gang of Four Patterns
from the classic design patterns book - Design Patterns: Elements of Reusable
Object-Oriented Software (Addison-Wesley Professional Computing Series).
My talk was based on the code examples from the book - Head First Design Patterns (Head First). This book takes a look at various design patterns in a very
lively manner with fun examples. I would strongly recommend this book. Although
the book is in Java, the fundamental principles of OOAD are the same and
explained very nicely.
Resources
Presentation
Slides – The Art of Design using Design Patterns in C#
Head
First Design Patterns Book Home Page
C#
Code Examples
The above C# code examples are
written using Visual Studio 2003 version. In my demo, I showed several class
diagrams from this code for various patterns. You can download the updated
package from the link below.
C# Code Examples
with Class Diagrams in VS 2005
The code examples solution
contains a project that has unit tests written using Nunit. You’ll need to
download NUnit for .NET 2.0.
Thanks to everyone who attended the session. If you have any
questions, please feel free to contact me.
This month's meeting is on July 11th. Joe was supposed to speak on Silverlight,
however he won't be able to make it. Instead, I'll be speaking on Design Patterns
in .NET. Here are the session details:
The Art of
Design using Design Patterns in .NET
Have you
worked on a design problem and thought if there was a standard solution to
that? Have you thought of enhancing your design vocabulary to add factories,
facades, proxies, decorators, visitors, mediators, and bridges etc? Come to
this session to learn about design patterns. A Design Pattern is an elegant,
tested, well documented, and reusable solution to standardized software design
problem. This session will look at some of the standard Gang of Four (GoF)
Patterns. GoF patterns are divided broadly into creational, structural, and
behavioral categories. We'll discuss when, why, and how to use them with real
world scenarios. The demos would be in C#.
I have
missed last few user group meetings due to travel. I am looking forward to this
one. It should be fun. See you all.
Jacksonville Developers User Group
Tampa Code Camp
is on Saturday, July 14th, 2007. I am presenting two sessions. Here are the
abstracts.
Session 1: The Art of Design using Design Patterns in .NET
Have you
worked on a design problem and thought if there was a standard solution to
that? Have you thought of enhancing your design vocabulary to add factories,
facades, proxies, decorators, visitors, mediators, and bridges etc? Come to
this session to learn about design patterns. A Design Pattern is an elegant,
tested, well documented, and reusable solution to standardized software design
problem. This session will look at some of the standard Gang of Four (GoF)
Patterns. GoF patterns are divided broadly into creational, structural, and
behavioral categories. We'll discuss when, why, and how to use them with real
world scenarios. The demos would be in C#.
Session 2: Power Tips
for Visual Studio Orcas IDE for C#
Visual Studio 2008 (code named
Orcas) IDE for C# introduces many new developer productivity features. This
session will introduce you to those new IDE features and some of the advanced
existing features (from Visual Studio 2005). We’ll create an end-to-end
application using new features of C# 3.0 and LINQ to demonstrate various
developer tips and tricks. This would be a demo based presentation. Although,
code examples would be in C#, most of the IDE features are applicable for
VB.NET development as well. Developers of all levels will learn something new
from this session. You’ll be able to use the tips and tricks and be more
productive in your development right away. Come prepared for an interactive
session and enjoy the double sundae (C# and Visual Studio).
Tampa Code Camp - Main Site
Tampa Code Camp - Agenda
I hope to see you all there.
Vinay
I am pleased to announce that I have received Microsoft MVP Award for 2007 in Visual Developer - Visual C# category. It was a pleasant surprise to see the award email today morning. I could not have asked for a better start to the new year. Here is an excerpt from the email:
Dear Vinay Ahuja,
Congratulations! We are pleased to present you with the 2007 Microsoft® MVP Award!
The Microsoft MVP Award is our way of saying thank you and to honor and support the significant contributions you make to communities worldwide. As a recipient of Microsoft’s Most Valuable Professional award, you join an elite group of technical community leaders from around the world who foster the free and objective exchange of knowledge by actively sharing your real world expertise with users and Microsoft. Microsoft salutes all MVPs for promoting the spirit of community and enhancing people’s lives and the industry’s success everyday. To learn more about the MVP Program, visit: www.microsoft.com/mvp.
Your extraordinary efforts in Visual Developer - Visual C# technical communities during the past year are greatly appreciated. Though the award is addressed to me, there are several individuals who have made it possible. After all, it's team work.
I would like to thank Microsoft Developer Evangelist
Joe Healy,
Andrew Connell, and
Marshall Harrison for nominating me for this award. Joe, one of the greatest developer evangelists, has been a tremendous source of inspiration to developers all across Florida - transforming them into .NET Rock Stars. Andrew has been very supportive and encouraging. His passion for technology is extremely motivating. Marshall is an ardent supporter of developer community activities. I would also like to thank other members of South East Region Microsoft Evangelism team -
David McNamee, Jeff Barnes,
Russ Fustino, and Kim Matlock for their support.
I am thankful to my employer
Idea Integration for supporting my community activities. I can vouch for the transparent, encouraging, challenging, and fun environment that Idea provides to its employees.
I want to thank
Dennis Bottjer (President,
JaxDug - for being an excellent leader and a close friend),
David Strommer (Founder JaxDug, for "breaking the ice" and encouraging me to speak in Jacksonville Code Camp 2005 - it has been a fruitful and long journey since then). Apart from this, I would like to thank all the people I have met in several code camps. I am a better person today by sharing my knowledge with all of you. Thank you.
Every title and award brings with it a sense of responsibility. I hope to continue sharing my insights and experience with the community. During the last one year, most of my contribution has been through my speaking and organizational ventures. One of my resolutions this year is to focus on my technical writing skills. I hope to bring you more content through my blog and web site.
Thank you and have a happy new year filled with - Wisdom (Common sense that we need), Knowledge (someone said its Power), Passion (Have you found your passion yet?), and Innovation (Creation - to explore our hidden/unknown potential).
Ciao
I went to Orlando yesterday to present in their Orlando .NET User Group's meeting. I gave an overview of .NET 3.0 features - WCF, WF, WPF, Windows CardSpace, and System.Speech. Dennis drove along with me to Orlando. The meeting was in Orlando City Hall. It was a nice facility in the middle of downtown. Shawn Weisfeld does a great job organizing Onetug meetings. Other notable people who were present in the meeting were Ken Tucker (President, Space Coast Dot Net User Group) and J. T. Taylor (Secretary, Onetug).
Shawn started the meeting with some announcements. He handed it over to me around 7:15 pm. I spoke for around 90 minutes. The turnout for meeting was good. The attendees were excited and there was good discussion and questions. Then there was raffle for the give aways. After the meeting was over - Shawn, Ken, Dennis and I went to IHOP for dinner. Most of the time we talked about the idea of unifying all the user groups of Florida through a single web site. All of us agreed on the features and benefits that such a portal will bring. We discussed several options to develop such a web portal. Some action to watch out for. It was around 11 pm, when Dennis and I headed back to Jacksonville. A long day came to a satisfying end couple of hours after midnight.
Anyways, the session resources can be downloaded from here. I have also included the demos in the zip file. The demos for WPF data binding and WF - State diagram based workflow are standard samples (included in the download package). You can download the complete set of samples for .NET 3.0 Framework from here.
The WCF StockService demo had a problem with security configuration. The problem was that app.config for WCF Client (StockServiceClient) had an identity element pointing to my domain user name. As there was no domain available when I demo'd it gave a security negotiation exception. Right after the presentation, I removed the identity element from the client's app.config and it worked like a charm.
I have included the list of resources in the presentation slides. In the next couple of days, I'll post that list and some other resources in a separate blog entry.
I hope you enjoyed the talk. Thanks to Shawn and Onetug for giving me this opportunity to present. It was a pleasure to speak. Please feel free to contact me, if you have any questions or comments.
Download Links
Presentation Slides and Demos - .NET 3.0 - Overview
.NET 3.0 Framework RC 1
Windows SDK for .NET Framework RC 1
Visual Studio 2005 Extensions for Windows Workflow Foundation RC 5
Visual Studio Code Name "Orcas" CTP - Development Tools for .NET Framework 3.0
Yesterday, I talked about Microsoft Expression Web (EW) in JAXDUG ASP.NET SIG Meeting. Thanks to all who attended this meeting. Most of the presentation focused on demonstrations with the tool's capabilities. Expression Web helps in creating standards based web sites. It has extensive CSS formatting options. There is style redundancy checking and renaming built in. EW comes with ASP.NET 2.0 integration. The tool can generate several reports to check accessibility, compatibility, and CSS Usage. Finally, it is a full fledged development tool with deployment capabilities. As a bonus, you can optimize your deployed source with several options.
Comparing Microsoft Expression Suite with Dreamweaver
There were several questions and comments that came up in the session. One of the comments was that this tool definitely appears to be a strong competitor to Dreamweaver. I searched and found couple of comparison articles:
Microsoft's Expression Web Designer vs. Adobe's Dreamweaver - First Look: Let the rumble begin
Can Microsoft Expression Web Designer Touch Dreamweaver?
There were other questions also that were interesting:
- Is EW integrated with Source Controls tools like VSS? I don't see anything in Beta 1, however I will have to check if EW team has plans to do the integration later.
- EW combines the best of FrontPage and Visual Studio and targets the professional designers. Is there a possibility that EW designer capabilities will become part of the next version of Visual Studio (code named Orcas)? I am not sure, if the EW / Visual Studio team is thinking on these lines.
Resources on Expression Web
Microsoft Expression Home
Microsoft Expression Web Home
Microsoft Expression Web - Tours and Demos
Microsoft Expression Web Beta 1 FAQ
Microsoft Expression Web Download
Expression Team Blog
Web cast - Introduction to Microsoft Expression
First Look at Microsoft Expression Web by Clint Steed
Microsoft Expression Web Designer Newsgroups
Download
Introduction to Microsoft Expression Web
Hope you enjoyed the presentation. Please feel free to contact me with your comments.
Beta 1 of Expression Web Designer (now renamed to Expression Web) has released today. It can be downloaded from here. Somasegar's initial announcement post summarizes about the Expression Suite here.
Last Friday, I was looking at the Expression tools and I was quite impressed. Microsoft Expression is a set of three tools - i) Graphic Designer ii) Interactive Designer, and iii) Web Designer. Expression Web is a professional design tool that helps to produce dynamic and standards based web sites. It comes with sophisticated CSS layouts and rich data presentation. There are several tours and demos available on Microsoft Expression Web Site.
Microsoft Expression Web Designer Beta 1 Download
Microsoft Expression Tools - Tours and Demos
I'll be talking on Microsoft Expression Web in the upcoming JAXDUG ASP.NET SIG meeting on Thursday, September 14th. I'll introduce the suite of Microsoft Expression products and then focus on the power of Expression Web. Expression Web helps in creating superior user experiences (UX). Note that with the advent of WPF and .NET 3.0, the term UI (User Interfaces) has transformed to UX (User Experiences).
On another note - September CTP for Microsoft Expression is available now. It can be downloaded from here. This CTP targets .NET 3.0 RC1.
Microsoft Expression Interactive Designer September 2006 CTP Download
Jacksonville Code Camp saw several fresh and innovative ideas surface. According to Joe Healy, the Code Camp Manifesto at Boston Wiki will see some changes soon. During the code camp, Wally McClure did a podcast with the code camp organization team.
A summary of the ideas that we discussed are below:
Highlights of Jacksonville Code Camp
- Code Countdown - Xtreme Coders: We tried to setup similar drama and excitement as CodeRoom.Com. Watch out for the video to come out soon.
- Innovative tracks - Developing the developer, Bootcamp, Black Belt track
- Keynote speaker - John Spence
- Ask the expert sessions
- Highlight Session - Show your coolest Code - 7 minutes to code fame
- Donating used computers to a charity
- MSDN Raffle - Charity for Red Cross
- Media Publicity - Florida Times Union, GotDotNet
- Book signing by authors
- Speaker and Volunteer Badges
- Recognition for volunteers, sponsors, top speakers etc.
- Ice cream - Ben and Jerry
You can listen to the podcast here:
ASP.NET Podcast Show #70 - Memphis and Jacksonville Code Camps
Wally did another podcast with David Silverlight on Code Countdown. You can listen to that podcast here:
ASP.NET Podcast Show #71 - Code Countdown with David Silverlight
Wally is coming to Jacksonville to speak on Atlas on September 6th, 2006. Wally is a very interesting and entertaining speaker. His book Beginning AJAX with ASP.NET has come out recently. He is also working on another "Beginning Atlas" book. Apart from being an INETA speaker, he runs the ASP.NET Podcast Show. I met Wally last year in October in Birmingham Code Camp. After that, he sent me one of his Wally T-shirts, but I am still too scared to wear it and lose my own identity :) Wally is making up for not coming to our Code Camp on August 26th. Memphis had their code camp the same day. Wally, being a homer, had no choice but to be there. But he did miss the ice cream! However, he was with us virtually and did a podcast in the morning. The podcast will come out pretty soon.
Here is the abstract of Wally's talk for Jacksonville Developers User Group:
AJAX and client side technologies are all the rage with programmers. Microsoft is working on a set of technologies for building client side web based applications. These applications can rival the capabilities of Windows GUI applications. We'll look at going beyond what’s available in AJAX and see what other features the MS Atlas Framework will deliver.
Wally has couple of videos on Wrox web site as well. One of the videos was done during Atlanta Code Camp (held in May 2006). Here are the links:
Atlas Update Panel
Building Real World Apps with Atlas
Wrox has several other videos here. The complete feedburner feed of videos from wrox is here.
Plan to attend!