Feeds:
Posts
Comments

101 LINQ samples (http://msdn2.microsoft.com/en-us/vcsharp/aa336746.aspx)

LINQ to SQL tutorial as PDF but Scott Guthrie (http://it-box.blogturk.net/wp-content/themes/it-box/files/LINQToSql.pdf) NOTE: this was based on CTP version, some changes happened before final release. For example the Add Method in the Table class is not InsertOnSubmit.

Time Management Lecture (http://video.google.com/videoplay?docid=-5784740380335567758 ) By Carnegie Mellon Professor Randy Pausch. Here is also his lecture about achieving dreams (http://www.cmu.edu/homepage/multimedia/randy-pausch-lecture.shtml)

How to be a better developer (http://squad.devworx.com.mx/blogs/rodrigo/archive/2008/02/01/how-to-be-a-better-developer.aspx) and a follow up (http://weblogs.asp.net/caioproiete/archive/2008/02/05/how-to-be-a-better-developer.aspx)

Various tutorials and Videos (http://asp.net/learn/)

LINQ Quiz (http://www.albahari.com/nutshell/linqquiz.html)

LINQPad, The LINQ equivalent of SQL Server Management Studio (http://www.linqpad.net/).

Many VERY useful Links from Scott Gu Blog (http://weblogs.asp.net/scottgu/archive/2008/02/06/feb-6th-links-asp-net-asp-net-ajax-visual-studio-net-wpf.aspx)

Making the Business Case for User Interface Design: http://www.informit.com/articles/article.aspx?p=726420&f1=rss&rl=1

Bill Gates: The skills you need to succeed: http://news.bbc.co.uk/2/hi/business/7142073.stm

Top 15 things to love about VS2008 Express from its product manager: http://blogs.msdn.com/danielfe/archive/2007/11/19/top-15-things-to-love-about-visual-studio-2008-express.aspx

Visual studio 2008 Samples, Starter Kits and Hands on labs: http://msdn2.microsoft.com/en-us/vcsharp/bb330936.aspx

Update to Visual source safe 2005: http://www.microsoft.com/downloads/details.aspx?familyid=8a1a68d8-db11-417c-91ad-02aab484776b&displaylang=en

Difference between: Compile/Build/Rebuild: http://petesbloggerama.blogspot.com/2007/12/visual-studio-difference-between-build.html

Excepts from the book “IT Disaster recovery for dummies”: http://www.dummies.com/WileyCDA/DummiesTitle/productCd-0470039736.html?cid=RSS_DUMMIES_ALLNEW

Business objects RAD

Whenever programmers start any project that involve business objects (examples: Customer, Bank, Account, Check, Purchase Order, Invoice, etc.), we start designing each object and deciding what properties each object should have:

Example:

Class Customer

{

public String FirstName;

public String LastName;

}

This means we basically start from scratch, we build these business objects from Integers, Strings, floats, boolean, Dates, etc.

Why are we content with doing this when we know that for any banking application for example, we will always have a customer object that will always have a “Name”, “ID”, “Address”, etc. ? Moreover, within any domain (banking, retail, travel, etc…) There will be always a given set of basic business objects with some given set of properties and methods.

If we take retail applications for example, we will always have classes like Customer (with properties like: Name, ID, Phone, etc.) , Product(with properties like: ID, Description, Price, etc.) , Invoice (with properties like: Date, Total Price, etc.)

For Medical applications, we will always have classes like Patient, Physician, Diagnosis, etc.

For Education applications, we will have classes like: Student, Class, Course, Instructors, etc.

Why then don’t developers just use ready made libraries that can be domain specific. For example:

  • in the health care field we will have a library having classes like: Patient, Provider, Claim, Physician, Hospital, etc.
  • For Banking field we have: Customer, Account, Transaction, etc.
  • For Retail field we have: Customer, Order, Invoice, Product, etc.

This could prove to be a huge time saver and also may help reuse some of the logic, analysis and effort that was already put in that area.

So Next time I need to start a banking application for example, All I need to do is:

  1. Reference the banking.dll in my project (or import the project having the source code)
  2. Subclass the different classes I need to fine tune.
  3. Bingo !

Imagine how much time could be saved that way.

Surely enough not all projects are the same even within the same domain. Object oriented programming have a solution for that: “Inheritance”. Any developer can simply subclass whichever class they want and add / Customize the properties and fine tune it to their needs. At least all the basics will be ready to use, a developer will just add the extra work needed for their own unique project.

I was in a store the other day and found many ready made “paper” invoices, purchase orders, etc. for people to buy and use. Companies find that it makes sense to invest money producing such hard copies and people buy them because such items are more or less the same across the board. How come then that we don’t have the same approach in software where we have a much higher degree of ability of customization and fine tuning?

The same argument applies for Database tables. The difference is that customizing the tables simply means editing the tables structures to fit the exact needs.

Or to take it a step further, maybe these libraries will come along with database scripts and O/R classes or data layer classes or  Stored procedures to slash even more of the time needed to persist the classes in the library.

Programmers  use ready made components all the time. in User interface design, It doesn’t make sense for a programmer to build his own Text box or data grid. We simply use ready-made text boxes and data grids. 

This approach is used to some extent in the data layer as well, we use application blocks that handle database operations rather than than doing all the tedious work.

Why then when it comes to Business objects, everyone is content with starting everything from strings, integers, Dates, etc.?

 

We can start open source project to build such libraries that will benefit everyone. Would anyone join?

 

“If I could see further, It’s because I stood on the shoulders of the giants who preceded me” (Sir Isaac Newton)

SilverLight 1.1 to be renamed Silverlight 2.0 and its beta will be release March 2008 http://www.itworld.com/AppDev/530/071129silverlight/

 .NET Web Product Roadmap (ASP.NET, Silverlight, IIS7) http://weblogs.asp.net/scottgu/archive/2007/11/29/net-web-product-roadmap-asp-net-silverlight-iis7.aspx

New Features in Visual studio 2008 http://weblogs.asp.net/scottgu/archive/2007/11/19/visual-studio-2008-and-net-3-5-released.aspx

Evidence based scheduling: http://www.joelonsoftware.com/items/2007/10/26.html

How to demo software: http://www.joelonsoftware.com/items/2007/11/16.html

Visual studio 2008 was released today !

Trial versions found here

http://msdn2.microsoft.com/en-us/vstudio/products/aa700831.aspx

And the free express versions are here

http://www.microsoft.com/express/

Working example of how the new Microsoft Asp.NET MVC framework will look like and how to use it to build applications: http://weblogs.asp.net/scottgu/archive/2007/11/13/asp-net-mvc-framework-part-1.aspx

Preview of new features in the coming version of Nhibernate: http://ayende.com/Blog/archive/2007/11/13/What-is-going-on-with-NHibernate-2.0.aspx

Saddest Cubicle contest:) http://ayende.com/Blog/archive/2007/11/13/What-is-going-on-with-NHibernate-2.0.aspx

Dilbert creator is now a boss himself http://www.iht.com/articles/2007/11/11/business/11dilbert.php 

PCWorld’s Top 101 Freeware http://www.pcworld.com/article/id,130045-page,2-c,freeware/article.html ( some are just freeware services like gmail, live mail, google docs)

Lhotka, creator of the famous CSLA framework discuss where to put code to validate user input. For web apps, to give User a more responsive and richer experience, it may be necessary to “duplicate” the code in the UI. He stresses that it is paramount to have the business objects do the validation anyway since the browser validations can be easily bypassed. http://www.lhotka.net/weblog/CommentView,guid,8fa07593-a357-49a4-9b86-1ee82a58f2b9.aspx

Windows Workflow Foundation Web Workflow Approvals Starter Kit

This starter kit is a Visual Studio 2005 (with updates for Visual Studio 2008) project that demonstrates using Windows Workflow Foundation for simple task-oriented workflow in an ASP.NET Web application. A workflow model is used to automate work order requests at a small example company. It includes three pre-defined roles which each play a part in the work order creation, approval and monitoring. The starter kit may be modified for other workflow models to suit other small Web-based task management systems. http://www.microsoft.com/downloads/details.aspx?FamilyID=a438a9b9-9f15-42ec-866f-2ea58e10db36&DisplayLang=en

Today I went to silverlight code camp DC. It was a wonderful overview to this technology that is totally new to me.

On my way back, I started thinking about all the new technologies coming out. Just think of all the releases/betas/previews/etc. available: silverlight 1.1, SQL server 2008, WPF, LINQ, powershell, F#, etc.

I started to think that things are moving very fast in different directions that it is become increasingly hard to stay on top of all the new technologies.

I think that in a few years, Software development will have specializations. We already have now: Database administrators vs. Graphics designers vs. software developers. I think that in a few years: saying “I am a software developer” will be just like saying “I am a physician”. Just like in medicine, since the sheer magnitude knowledge have exploded, We have physician specializing in very detailed cases. Just a quick look at the different branches of medicine today will give you an idea ( here)

Reading about scientists up to may the 18th century, it was normal to read that someone was a poet/chemist/physician/mathematician/inventor/etc. Today, It is hard enough to keep up to date with all the advances in just one specific branch of each of the sciences mentioned.

I think software development is going in this direction. It may be just a few years away that we start seeing jobs with titles like ( Software Unit test engineer – Mock specialist) , (.NET Business components developer ), (Data Access developer/MS-SQL), (UI developer – Animation specialist) or (software developer specializing in File system access). Just like we find lawyers specializing in labor laws, civil rights, or even just in first amendment cases.

I know this may sound odd now, but I really think that with the speed things are moving, this will be case. I don’t see why Software development as a profession, as it evolves will be any different than medicine, Pharmaceuticals, engineering, journalism, etc.

I also think this will considerably affect development methodologies.  For people working in “behind the scenes stuff” like data access or  business rules, estimation could be easier as work is more predicatble. Whereas for people working in UI or animation or graphics, they have to adapt a wayt to respond to constant feedback  from customer.

Performance:

This post shows how important the Hard Drive rpm rate in the overall performance of the system http://weblogs.asp.net/scottgu/archive/2007/11/01/tip-trick-hard-drive-speed-and-visual-studio-performance.aspx

Another post also talks about the same point http://www.codinghorror.com/blog/archives/000800.html

Here are also some tips about speeding up visual studio http://dotnettipoftheday.org/tips/speedup_visual_studio.aspx (Note that some of them affect some scenarios so make sure you know the effect of any change before appying it)

This is a hotfix to address some performance issues when debugging ASP.NET project with visual studio http://weblogs.asp.net/scottgu/archive/2007/08/21/public-hotfix-patch-available-for-vs-2005-f5-debugging-performance-issue-with-asp-net.aspx

Effective Writing:

In a podcast about effective business writing (great podcasts by the way http://www.manager-tools.com/complete-index), the show mentioned the Army guidelines for effective writing as one of the best, here it is http://chppm-www.apgea.army.mil/imo/DDB/writ-tip.htm