Archive Page 2
A Look into Language
Just today, a former colleague and friend emailed me to inform me of a blog he was writing. I had a quick look and was quite amazed at some of his insights and how he has grown. One thing I noticed was that he has broken out of the Microsoft mould and grown as a developer. The Paul I knew was almost exclusively a .NET developer and he was good at it.
Now Paul of today, though, seems to have adopted different technologies and really accepted his shortcomings and worked to overcome them. One of the things he’s delved into is language syntax and parsing. While I cannot claim to understand everything he’s doing, I found his project interesting and something that I’d like to know about.
Keep it up, Paul. I’d like to see how things evolve for you.
Filed under: Other | 1 Comment
Tags: Language, Paul Batum, Ruby
A Look at LINQ
I’ve been interested in LINQ for some time as I’m a bit fan of object relational modelling. I was initially introduced to the world of object relation mapping by a brilliant man by the name of Malcolm Young. He showed me that there was more than just the proverbial “ds.” and stored procedures. By using this framework, I noticed the ease at which applications were created. No longer are we hindered by the requirement of having to build a data tier. It’s also a lot nicer to do:
customer.FirstName
as opposed to:
dsCustomer.CustomerTable[....]
One of the big arguments against using LINQ is the security risk of having developers directly accessing the database. I cannot disagree with this argument. With enterprise level projects, DBAs will most often have ownership over a database and tightly control the manner in which it is accessed. It is possible to restrict access to just stored procedures in some casesMy argument against that is that very often, business logic invariably finds its way into stored procedures. Maintaining stored procedures is also harder than managed code. Furthermore, my original observation still stands; it is much easier and nicer to deal with objects rather than datasets and datatables. You can always call a stored procedure from LINQ and get back an anonymous object to work with. Should you not lock down your database, there still is nothing stopping a developer from building dynamic SQL queries.While it’s still early days, I’m very impressed with LINQ and I believe it has real possibilities. I cannot see Microsoft including LINQ “just for the fun of it” ino .NET 3.5. Someone must have had the vision to see beyond the limitation of always having to build a data tier and calling stored procedures.
Technorati Tags: LINQ
Filed under: LINQ | 2 Comments
How Microsoft Uses TFS
Today I was in a meeting with several TFS experts including Grant Holliday and Joe Schwetz. Joe presented on how Microsoft used TFS to handle their projects and the value it added to their organisation. I found it quite interesting to hear how Microsoft structured its development with TFS. Their branching structure, in particular, was interesting to behold.They had a structure that revolved around a Main branch which contained high quality code. Branching off from the Main trunk were the development branches that were created of isolating features.
Development branches are created for the purpose of isolating feature development. For Microsoft, Joe revealed that they have as many as 630+ feature branches. The feature branches coordinate their check-ins by scheduling dedicated check-in times for each branch. In addition, there is a process that Microsoft follow upon creation of a new feature branch.
The stages of the process are as follows:
- CP0 – The feature team writes a brief 1 page document outlining what they are developing
- CP1 – Design phase
- CP2 – Coding phase
- CP3 – Quality gates
There are 20 quality gates to be satisfied before a merge back to the Main branch is allowed.
Personally, I find it interesting to see why Microsoft prefer this branching strategy. From what I heard from Joe, this model works very well for them as it prevents incomplete features from being added to a solution. The quality gates ensure the code that is checked-in to the Main branch is of an acceptable quality. Furthermore, there are reporting benefits to be drawn from this model according to Joe. Unfortunately, my lack of knowledge with the reporting aspects of TFS leave me somewhat in the dark.
Overall, I was quite impressed with Joe’s presentation and I’m quite inspired to see whether I can introduce their philosophy into the projects I’m involved in. I can see how Microsoft uses TFS as a total package that is essential to the software development life cycle, rather than an optional element or mere source control as so many organisations treat it.
Technorati Tags: tfs,microsoft,methodology,joe schwetz,branching
Filed under: Team Foundation Server | Leave a Comment
Tags: branching, joe, microsoft, schwetz, Team Foundation Server, usage
Siebel Integration
I have successfully integrated Siebel Tools 7.7 with TFS. It took a bit of fiddling but it works. The integration, however, is purely on a source control level. Currently I’m working on a way to associate work items through Siebel and it doesn’t look too difficult.
Siebel Tools has an option to enable source control (Visual Source Safe) and it checks code in and out via a batch file. It did not take too much customisation to get TFS working with Siebel Tools via the batch script. The hardest part was creating the workspace for the user and pointing it to the proper project branch.
Here’s what the script looks like:
PATH=c:\Program Files\Microsoft Visual Studio 8\Common7\IDE;%PATH%
SET LOG=C:\logpath\log.txt
set SOFTWARE=tf
set CHECKIN=%SOFTWARE% checkin
set CHECKOUT=%SOFTWARE% checkout
set ADD=%SOFTWARE% add
SET OPTIONS=-i
SET PROJECT=”$/MyProject/Development”
SET TFSSERVER=xxxxxxx
SET WORKSPACENAME=%COMPUTERNAME%_%USERNAME%
SET Action=%1
SET DIR=%2
SET Comments=%3
SET File=%4
ECHO CHANGING DIRECTORY TO %DIR%
CHDIR %DIR%
ECHO Executing %SOFTWARE% workspace /server:%TFSSERVER% /new %WORKSPACENAME% /noprompt >> %LOG%
%SOFTWARE% workspace /server:%TFSSERVER% /new %WORKSPACENAME% /noprompt >> %LOG%
ECHO %SOFTWARE% workfold %PROJECT% %DIR% >> %LOG%
%SOFTWARE% workfold %PROJECT% %DIR% >> %LOG%
if %ACTION%==checkout goto CHECK_OUT
if %ACTION%==checkin goto CHECK_IN
:CHECK_OUT
echo ============Check out file %FILE% from Source Control System============ >> %LOG%
if not exist %FILE% echo “New File” >> %FILE%
attrib -r %FILE%
echo Add %FILE% in case it doesn’t exist in Source Control System
%ADD% %FILE% “Added by System” %OPTIONS% 2>&1
echo Start checking out %FILE% from Source Control System >> %LOG%
%CHECKOUT% %FILE% %NON_COMMENT% %OPTIONS% >> %LOG% 2>&1
attrib -r %FILE%
goto END
:CHECK_IN
echo ============Check in file %FILE% into Source Control System============ >> %LOG%
echo Check in %FILE% into Source Control System
%CHECKIN% %FILE% %OPTIONS% >> %LOG% 2>&1
attrib -r %FILE%
goto END
:END
echo ===================End Of srcctrl.bat====================== >> %LOG%
Basically the script creates a workspace and maps the specified project to it. The rest is fairly straightforward. It performs a check-in and check-out a la VSS. One thing to note is that Siebel Tools executes this script for each file that is checked in and out. This means that you will potentially have a lot of records in the TFS data warehouse.
As stated before, the lack of work item association is a severe limitation with this script but it is easily resolved by writing some code to handle the work item selection and check-ins and check-outs. The prospect of writing a MSSCCI provider for Siebel Tools is an interesting challenge which I will take up, time permitting.
Technorati Tags: TFS,Siebel Tools,integration,check-in,check-out
Filed under: Team Foundation Server | 1 Comment
Tags: integration, siebel, tfs, tools, visual source safe, vss
TFS 2008 is Here!
I’m extremely excited that TFS 2008 is released. I can foresee myself devoting a considerable amount of time getting a few virtual machines running with Orcas and TFS 2008.
The details for the features in TFS 2008 can be found on bharry’s weblog. There are a whole range of improvements and features which interest me such as:
- Support for non-default ports for Reporting Services and Sharepoint
- Multi-threaded builds
- Extensibility of build targets
- .NET object model for programming against build server
It has to be said that there’s many other features which I’m personally interested in checking out but don’t want to repeat for brevity.
It appears that Microsoft has really listened to the users and produced a much-improved product which some much-needed bug fixes such as the inability to report directly on users overriding the check-in policy via the data warehouse. Overall, I’m very eager to get my hands on TFS 2008 and explore its features.
Filed under: Team Foundation Server | Leave a Comment
Tags: 2008, features, orcas new, tfs
Start of Something New
I recently moved my blog’s home from BlogSpot to WordPress. The reason I did this was mainly to test Microsoft Live Writer 2008 and also the desire to "graduate" to something new.
I’m pleasantly surprised with MS Live Writer. It was easy to setup and integrated nicely with WordPress. In fact, I’m writing this blog write now with Live Writer.
To those who want a link back to my former blog, you can find it here.
Filed under: Other | Leave a Comment
Search
-
You are currently browsing the Alvin Yong's Techno Blog weblog archives.