Boot it!

Para quem usa ou conhece sistemas Unix/Linux sabe bem que é perfeitamente possível ter sistemas com uptimes de anos, ou pelo menos bem grandes.

Já no Windows, bem, nem os Windows Server resistem aos restarts da praxe habituais com o Windows Update.

Agora o que nunca tinha visto era ninguém assumidamente declarar que “ah… convêm reiniciar o pc de vez em quando!”.

Enfim aquilo que qualquer um por experiência própria sabe, mas neste caso veio de um Software instalado pelo fabricante do meu netbook, um Samsung N150 Plus.

boot_it

Nice hein?

Team Foundation Server 2010 & Novos Conceitos

Tenho andado a explorar o Team Foundation Server, que é algo diferente do antigo Sourcesafe da Microsoft.

Além de mais evoluída esta ferramenta introduz (quer dizer… já não é nova, a novidade é mesmo entre o SourceSafe e o TFS…) alguns conceitos novos, e formas de funcionamento diferentes (muito).

Completo este pequeno artigo, com algumas imagens minhas e eventualmente alguns comentários também, e textos da WikiPedia. Não pretendo aprofundar muito, dado que defendo que a aprendizagem deve partir de cada um…. mas aborda-se aqui os conceitos que julgo importantes, e marcos da diferença entre os dois sistemas.

Team Foundation Server (commonly abbreviated to TFS)

is a Microsoft product offering source control, data collection, reporting, and project tracking, and is intended for collaborative software development projects. It is available either as stand-alone software, or as the server side back end platform for Visual Studio Team System (VSTS).

Team Foundation Server works in a three-tier architecture: the client tier, the application tier and the data tier. The client tier is used for creating and managing projects and accessing the items that are stored and managed for a project. TFS does not include any user interface for this tier, rather it exposes web services which client applications can use to integrate TFS functionality with themselves. These web services are used by applications like Visual Studio Team System to use TFS as data storage back end or dedicated TFS management applications like the included Team Foundation Client. The web services are in theapplication layer. The application layer also includes a web portal and a document repository facilitated by Windows SharePoint Services. The web portal, called the Team Project Portal, acts as the central point of communication for projects managed by TFS. The document repository is used for both project items and the revisions tracked, as well as for aggregated data and generated reports. The data layer, essentially an SQL Server 2005 Standard Edition installation, provides the persistent data storage services for the document repository. The data tier and application tier can exist on different physical or virtual servers as well, provided they are running Windows Server 2003 or better. The data tier is not exposed to the client tier, only the application tier is.

Podemos desde já através da suite VS contemplar bastantes diferenças nos produtos. Dado que a suite 2010 é visualmente bastante diferente da 2008 poderá ocasionar uma agradável lufada de ar fresco á vista…. ou simplesmente dar a ideia de uma cara lavada no Visual Studio. Não obstante tal, o que se quer aqui analizar é mesmo a integração com o Team Foundation Server.

Além do interface do Visual Studio, existe um frontendweb onde se podem fazer ainda várias operações… ora ao que li, pode ser integrado com SharePoint e Sql Server. Na minha versão foi instalado no modo básico, ligado a um Sql Express. Não deixam de ser no entanto interessantes as possibilidades.

Explorando um pouco o interface no Visual Studio,  especialmente para quem apenas está habituado ao Check Out & Check In  verificam-se a existÊncia de novos conceitos. Vamos então ver um pouco deles com a ajuda da nossa bela Wikipedia.

Source control e o mecanismo de repositório de informação.

Team Foundation Server provides a source control repository, called Team Foundation Version Control (TFVC). Unlike Microsoft’s previous source control offering, Visual SourceSafe (VSS), which relied on a file-based storage mechanism, Team Foundation source control stores all code, as well as a record of all changes and current check-outs in a SQL Server database.

Shelving / Unshelving

It supports features such as multiple simultaneous check-outs, conflict resolution, shelving and unshelving (shelving is a way to save a set of pending changes without committing them to source control, while still making them available to other users), branching and merging, and the ability to set security levels on any level of a source tree, alongside the most visible features of document versioning, locking, rollback, and atomic commits. The source control mechanism integrates with Team System’s work items as well; when a check-in (termed “changeset”) occurs, a developer can choose to have his code associated with one or more specific work items, to indicate that the check-in works towards solving specific issues. TFS administrators can enforce check-in policies that require Code Analysis requirements to have passed, as well as to enforce the association of check-ins with work items, or update the state of associated work items (like flagging a bug as “fixed” when checking in code that has the bug fixed). Individual versions of files can be assigned labels, and all files with the same label forms a release group. Unlike VSS, TFS source control repository does not support linking to an item from multiple places in the source folder structure, nor does it allow an item to be “pinned” (allow different references to the same file from different directories to point to different versions in a way that cannot be further edited).

Branching & Merging

TFVC supports branching at entire source code level as well as individual files and directory levels, with each branch being maintained individually. Multiple branches can be merged together, with the built in conflict resolution algorithm merging the changes between two branches of the same file where it can automatically reconcile the differences or flagging them for manual inspection if it cannot. Merge can be performed at “changeset” level as well, instead of the branch level. A successful merge is automatically checked out in the source control repository.

TFVC is not limited to source code only, but using the Windows SharePoint Services infrastructure it is built on, it provides a version-controlled library for other documents in the project as well, including project plans, requirements and feature analysis documents among others. All documents in the source controlled repository can be linked with any work item, and access to them can be controlled by defining access policies.

Outros links interessantes:

Team Foundation Server Concepts on MSDN

Team Foundation Server 2010 Key Concepts

Understanding the Check-out and Check-in Concepts in Source Control Systems

Visual Studio 2010

Saiu no dia 12 de Abril o Visual Studio 2010 , pelo que neste momento, para quem usa não deve ser novidade, mas fica a minha nota.

A nova versão deste poderoso IDE vÊ assim a luz do dia, após uns betas com muitos bugs, mas muitas funcionalidades novas segundo dizem.

New and enhanced features in Visual Studio 2010 help you unleash your creativity. Customise your workspace with multiple monitor support. Create rich applications for SharePoint and the Web. Eliminate the dreaded “no repro” problem with IntelliTrace. Develop for a wide range of .NET Framework versions with precise multi-targeting.

É o lançamento da framework .Net 4.0. Abaixo uma breve descrição retirada da WikiPedia

The Visual Studio 2010 IDE has been redesigned which, according to Microsoft, clears the UI organization and “reduces clutter and complexity.”[71] The new IDE better supports multiple document windows and floating tool windows,[71] while offering better multi-monitor support. The IDE shell has been rewritten using the Windows Presentation Foundation (WPF),[72] whereas the internals have been redesigned using Managed Extensibility Framework (MEF) that offers more extensibility points than previous versions of the IDE that enabled add-ins to modify the behavior of the IDE.[73] The new multi-paradigm programming language ML-variant F# is part of Visual Studio 2010;[74] as is M, the textual modeling language, and Quadrant, the visual model designer, which are a part of the Oslo initiative.[75]

Visual Studio 2010 comes with .NET Framework 4 and supports developing applications targeting Windows 7.[71] It supports IBM DB2 and Oracle databases for more information, in addition to Microsoft SQL Server.[71] It has integrated support for developing Microsoft Silverlight applications, including an interactive designer.[71] Visual Studio 2010 offers several tools to make parallel programming simpler: in addition to the Parallel Extensions for the .NET Framework and the Parallel Patterns Library for native code, Visual Studio 2010 includes tools for debugging parallel applications. The new tools let parallel Tasks and their runtime stacks to be visualized.[76] Tools for profiling parallel applications can be used for visualization of thread wait times and thread migrations across processor cores.[77] Intel and Microsoft have jointly pledged support for a new Concurrency Runtime in Visual Studio 2010[78] and Intel has launched parallelism support in Parallel Studio as an add-on for Visual Studio.[79]

The Visual Studio 2010 code editor now highlights references; whenever a symbol is selected, all other usages of the symbol are highlighted.[80] It also offers a Quick Search feature to incrementally search across all symbols in C++, C# and VB.NET projects. Quick Search supports substring matches and camelCase searches.[80] The Call Hierarchy feature allows the developer to see all the methods that are called from a current method as well as the methods that call the current one.[80] IntelliSense in Visual Studio supports a consume-first mode, which can be opted-into by the developer. In this mode, IntelliSense will not auto-complete identifiers; this allows the developer to use undefined identifiers (like variable or method names) and define those later. Visual Studio 2010 can also help in this by automatically defining them, if it can infer their types from usage.

Parece-me na minha humilde opinião que cada vez trás mais coisas, e demora mais tempo a instalar… cerca de 2 GB no disco após um full install.

Em compensação o UI é bastante agradável e fluido…. Bem mais agradável que o o do VS 2008

E para finalizar, a minha primeira app feita no IDE 😉 – um simples Hello World em C#

Muito potencial concerteza, de certo pelos meus lados nunca o utilizarei todo nem muito menos irei necessitar ou compreender, mas é de certo uma milestone. Pronto… e agora já se pode então fazer umas coisas em WCF com a nova framework… veremos ! 🙂

Velocidades LAN com o Windows 2008 Server R2

Instalei aqui em casa recentemente o Windows 2008 Server R2. Tinha o velho PC com o XP, mas decidi instalar este, dado que serviria para os meus propósitos melhor, e visto a licença ter nos sido disponilizada na MSDN.

Hoje, tentei instalar a AD no mesmo… ora qual não é o meu espanto quando verifico que após o dcpromo estar terminado, as velocidades de transferência de ficheiros entre máquinas não passam de uns 30/40 Mbps ! Portanto, estamos a falar de transferências de um PC que corre Windows 7 x64 para um outro que corre Windows 2008 Server R2.

Ora dado que a rede aqui é a Gigabit, e que habitualmente transferia ficheiros grandes na casa dos 600/700 Mbps (placas com Jumbo Frames 7K, cabos CAT5E, e distãncia dos cabos), achei isto

Chocante !

Após desinstalar a AD as velocidades normalizaram, contudo quer-me a crer que a estabilidade não é a mesma….

Aparentente não sou o único a queixar-me disto. Pelo menos é o que diz o Google. Fica para uma próxima. Até o NAS com um CPU a 300MHZ permitia uns estonteantes 13MB/s… já este com um PC por trás nem vê-los.  Novo produto, novo bug? Ou será que a AD vêm tão segura que fica tão lenta desta forma devido a validações ?

De qualquer das formas o CPU LOAD nem era nada por aí além (estamos a falar de um 2008 Server R2 com um Pentium D920, com 2GB RAM).

Movenext !